- 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
Create the MCP server in the Manager
Access the Manager web interface at
http://localhost:3000.- Click MCP Servers in the main navigation
- Click Create MCP Server
- Fill in the configuration:
| Field | Value | Description |
|---|---|---|
| Name | fetch | Identifier for this MCP server |
| Transport | stdio | Communication via standard I/O |
| Command | docker | Docker CLI command |
| Args | ["run", "-i", "--rm", "mcp/fetch"] | Docker run arguments as JSON array |
- Click Save
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
Attach the MCP server to your agent
- Navigate to Agents in the main navigation
- Find your agent and click Edit
- Scroll to the MCP Servers section
- Click Add MCP Server and select fetch from the dropdown
- Click Save
Integrate MCP tools in your agent code
Set the environment variables so the engine can fetch config and authenticate:Import MCP tools in your agent code:
- ADK
- LangGraph
get_adk_tools() and get_langchain_tools() discover all MCP servers attached to your agent and make their tools available. You do not need to configure individual tools.Launch the agent
Navigate to your agent directory and start the engine:The engine will:
- Fetch agent config from the Manager API
- Initialize your agent framework
- Start the Fetch MCP server as a Docker container
- Register the fetch tool with your agent
- Start the API server 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 the Manager UI to give your agent access to additional tools. Filesystem access:| Field | Value |
|---|---|
| Name | filesystem |
| Transport | stdio |
| Command | npx |
| Args | ["-y", "@modelcontextprotocol/server-filesystem", "/allowed/path"] |
| Field | Value |
|---|---|
| Name | custom |
| Transport | stdio |
| Command | docker |
| Args | ["run", "-i", "--rm", "your-registry/your-mcp:latest"] |
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 MCP config saved correctly in the Manager UI
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