The Docker MCP toolkit is a collection of pre-built MCP servers packaged as Docker containers. These servers provide common functionality (web fetching, file system access, database operations) without requiring you to write or maintain custom MCP server code.Documentation Index
Fetch the complete documentation index at: https://docs.idun-group.com/llms.txt
Use this file to discover all available pages before exploring further.
- No custom code: Pull and run pre-configured MCP servers
- Isolation: Each server runs in its own container with controlled resource limits
- Community-maintained: Implementations follow the MCP specification
- Portable: Works the same in development and production
By the end of this guide, you will have an agent that can retrieve and analyze content from any URL through the Fetch MCP tool.
Prerequisites
Before starting, you need:- A working agent deployed with Idun (see the quickstart)
- Docker Desktop installed and running
Set up the Fetch MCP server
Configure Docker Desktop
Open Docker Desktop and verify:
- Docker Desktop is running
- The
mcp/fetchimage appears in the Images section
Register the MCP server
Add the Fetch server to your standalone, either through the admin panel or in YAML.Admin UI: open
The args breakdown:
/admin/mcp/ and click stdio. Fill in:| Field | Value |
|---|---|
| Name | fetch |
| Command | docker |
| Args | ["run", "-i", "--rm", "mcp/fetch"] |
config.yaml:run: Execute a new container-i: Interactive mode (keeps STDIN open for MCP communication)--rm: Remove container when it stopsmcp/fetch: The Docker image to run
idun serve (YAML). The engine discovers the Fetch server’s tools at boot.Integrate MCP tools in your agent code
Import MCP tools in your agent code:
- ADK
- LangGraph
get_adk_tools() and get_langchain_tools() discover every MCP server in the engine config and make their tools available. You do not need to configure individual tools.Launch the agent
From your agent directory:The engine reads its config from the DB, starts the Fetch MCP server as a Docker container, registers the fetch tool with your agent, and serves the chat UI at
http://localhost:8000/.Verify the MCP server
Check that the Docker container is running:Advanced configuration
Multiple MCP servers
Add more MCP servers through/admin/mcp/ or in the same mcp_servers list in config.yaml. Each entry runs alongside the others and contributes its tools to the registry.
Filesystem access:
Troubleshooting
MCP server fails to connect
MCP server fails to connect
Symptoms: Agent starts but MCP tools are not available.Solutions:
- Verify Docker Desktop is running:
docker info - Check the image exists:
docker images | grep mcp/fetch - Test the container manually:
docker run -i --rm mcp/fetch - Review Docker Desktop logs
Agent does not use the fetch tool
Agent does not use the fetch tool
Symptoms: Agent responds but does not fetch web content.Solutions:
- Check Docker container is running:
docker ps | grep mcp/fetch - Review MCP server logs:
docker logs <container_id> - Try an explicit query: “Use the fetch tool to get https://example.com”
- Restart the agent
- Verify the MCP config saved correctly in
/admin/mcp/or in yourconfig.yaml
Args format invalid
Args format invalid
Symptoms: “Invalid args format” error when saving.Solution: Args must be a properly formatted JSON array.Correct:Incorrect:Incorrect:
Best practices
- Naming: Use descriptive, lowercase names for MCP servers:
fetch,filesystem,database - Incremental testing: Add one MCP server at a time. Test functionality before adding more
- Resource limits: In production, set Docker resource constraints to prevent runaway usage:
- Logging: Configure Docker logging for better observability:
- Credentials: Never hardcode sensitive information in MCP configurations. Use environment variables
- Monitoring: Use observability to track MCP server latency and error rates
Next steps
MCP Servers overview
How the engine discovers and registers MCP tools.
Observability
Trace MCP tool calls alongside agent runs.
Troubleshooting
Diagnose container and transport failures.