Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 2 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,23 +115,21 @@ MY_TASKFLOWS=~/my_taskflows MY_DATA=~/codeql_databases CODEQL_DBS_BASE_PATH=/app

For more advanced scenarios like e.g. making custom MCP server code available, you can alter the run script to mount your custom code into the image and configure your toolboxes to use said code accordingly.

Example: a custom MCP server deployment via Docker image:

```sh
export MY_MCP_SERVERS="$PWD"/mcp_servers
export MY_TOOLBOXES="$PWD"/toolboxes
export MY_PERSONALITIES="$PWD"/personalities
export MY_TASKFLOWS="$PWD"/taskflows
export MY_PROMPTS="$PWD"/prompts
export MY_DATA="$PWD"/data

if [ ! -f ".env" ]; then
touch ".env"
fi

docker run \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume "$PWD"/logs:/app/logs \
--mount type=bind,src="$PWD"/env,dst=/app/.env,ro \
--mount type=bind,src="$PWD"/.env,dst=/app/.env,ro \
${MY_DATA:+--mount type=bind,src=$MY_DATA,dst=/app/my_data} \
${MY_MCP_SERVERS:+--mount type=bind,src=$MY_MCP_SERVERS,dst=/app/my_mcp_servers,ro} \
${MY_TASKFLOWS:+--mount type=bind,src=$MY_TASKFLOWS,dst=/app/taskflows/my_taskflows,ro} \
Expand All @@ -141,19 +139,6 @@ docker run \
"ghcr.io/githubsecuritylab/seclab-taskflow-agent" "$@"
```

Our default run script makes the Docker socket available to the image, which contains the Docker cli, so 3rd party Docker based stdio MCP servers also function as normal.

Example: a toolbox configuration using the official GitHub MCP Server via Docker:

```yaml
server_params:
kind: stdio
command: docker
args: ["run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "ghcr.io/github/github-mcp-server"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "{{ env GITHUB_PERSONAL_ACCESS_TOKEN }}"
```

## Personalities

Core characteristics for a single Agent. Configured through YAML files in `personalities/`.
Expand Down
1 change: 0 additions & 1 deletion docker/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ if [ ! -f ".env" ]; then
fi
docker run -i \
--platform linux/amd64 \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume "$PWD/"logs:/app/logs \
--mount type=bind,src="$PWD/".env,dst=/app/.env,ro \
${MY_DATA:+--mount type=bind,src=$MY_DATA,dst=/app/my_data} \
Expand Down
2 changes: 1 addition & 1 deletion taskflows/examples/example_large_list_result_iter.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,6 @@ taskflow:
must_complete: true
repeat_prompt: true
agents:
- echo
- assistant
user_prompt: |
Echo this: The title is {{ RESULT_title }} and the url is {{ RESULT_url }}.
9 changes: 4 additions & 5 deletions toolboxes/github_official.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ seclab-taskflow-agent:
version: 1

server_params:
kind: stdio
command: docker
args: ["run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "ghcr.io/github/github-mcp-server"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "{{ env GITHUB_PERSONAL_ACCESS_TOKEN }}"
kind: streamable
url: https://api.githubcopilot.com/mcp/
headers:
Authorization: "{{ env GITHUB_AUTH_HEADER }}"