Comprehensive guide for Docker MCP Toolkit Dynamic Tools - discover and use ~170 MCP servers on-demand. Use when working with MCP servers, dynamic tools, database access, APIs, cloud services, or needing external integrations during conversations.
Inherits all available tools
Additional assets for this skill
This skill inherits all available tools. When active, it can use any tool Claude has access to.
This skill provides expert guidance on using Docker MCP Toolkit's Dynamic MCP capabilities to discover and add MCP servers on-demand during conversations.
Use this skill when:
Dynamic MCP enables AI agents to discover and add MCP servers on-demand during conversations, without manual pre-configuration. Instead of pre-configuring every MCP server before starting a session, you can search the MCP Catalog (~170 servers) and add servers as needed.
Key Benefits:
When connected to MCP Gateway, you have access to these primordial tools:
| Tool | Description |
|---|---|
mcp-find | Search for MCP servers in catalog by name or description |
mcp-add | Add a new MCP server to current session |
mcp-config-set | Configure settings for an MCP server |
mcp-remove | Remove an MCP server from session |
mcp-exec | Execute a tool by name that exists in current session |
code-mode | Create JavaScript tool combining multiple MCP servers (experimental) |
// Search using descriptive terms
mcp-find query="postgres" limit=10
mcp-find query="github" limit=5
mcp-find query="database" limit=20
// Common search terms:
// - Databases: "database", "postgres", "mysql", "sqlite", "mongo", "redis"
// - Git: "git", "github", "gitlab"
// - Cloud: "cloud", "aws", "cloudflare", "azure", "gcp"
// - APIs: "api", "openapi", "rest"
// - Web: "web", "scraping", "browser", "fetch"
Important:
query parameter is required (can't list all servers)required_secrets and config_schema infoLook at search results for:
required_secrets: API keys, tokens, connection strings neededconfig_schema: Additional configuration requirementsdescription: What the server does// Add server (case-sensitive name from search)
mcp-add name="SQLite" activate=false
// Server is immediately available
// Tools appear in your tool list
// Only for servers with config_schema
mcp-config-set server="postgres" key="url" value="postgresql://..."
// Secrets handled separately by Docker
// Docker will prompt user for required secrets
After adding, tools are immediately available. Use them directly in conversation.
// User asks: "Can you query my SQLite database?"
// 1. Find SQLite servers
mcp-find query="sqlite" limit=3
// Returns: SQLite, sqlite-mcp-server, simplechecklist
// 2. Add the simple one
mcp-add name="SQLite"
// Adds 6 tools: read_query, write_query, create_table,
// list_tables, describe_table, append_insight
// 3. Use tools
// "read_query" - Execute SELECT queries
// "write_query" - INSERT, UPDATE, DELETE
// "create_table" - Create tables
// "list_tables" - See all tables
// "describe_table" - Get table schema
// User asks: "Create a GitHub issue for this bug"
// 1. Find GitHub servers
mcp-find query="github" limit=5
// Returns: github, github-chat, github-official, deepwiki, hoverfly-mcp-server
// 2. Add GitHub server
mcp-add name="github"
// Requires: github.personal_access_token secret
// Docker will prompt user for token
// 3. Use GitHub tools
// Now have: create_issue, search_repos, read_file, etc.
// User asks: "Connect to my Postgres database"
// 1. Find Postgres servers
mcp-find query="postgres" limit=5
// Returns: postgres, prisma-postgres, dreamfactory-mcp, database-server
// 2. Add Postgres server
mcp-add name="postgres"
// Requires: postgres.url secret (connection string)
// 3. Use tools
// Read-only access: schema inspection, SELECT queries
// Security: No write access by default
// User asks: "Scrape a website and store results in database"
// 1. Add web scraping
mcp-find query="scraping" limit=5
mcp-add name="apify"
// 2. Add database
mcp-find query="sqlite" limit=3
mcp-add name="SQLite"
// 3. Use both
// Scrape with Apify tools → Store with SQLite tools
Search first, add second
Case-sensitive names
mcp-find resultsHandle secrets gracefully
required_secrets need credentialsPrefer MCP over manual
Remove when done
mcp-remove name="SQLite" // Clean up
Check for errors
mcp-config-set when neededmcp-find query="term"config_schema in search resultsmcp-config-set to configuremcp-config-set server="postgres" key="host" value="localhost"mcp-remove, then mcp-addNote: Code mode is experimental and not yet reliable for general use.
Create custom JavaScript functions combining multiple MCP tools:
// Create tool combining postgres + github
code-mode servers=["postgres", "github"] name="db-to-issue"
// Sandbox with access to both servers' tools
// New tool "db-to-issue" registered
// Execute coordinated workflows
Architecture:
code-mode with server list and tool nameSecurity: Sandbox can only interact via MCP tools (already containerized).
If you prefer static configuration only:
docker mcp feature disable dynamic-tools
# Re-enable later:
docker mcp feature enable dynamic-tools
May need to restart MCP clients after changing.
mcp-find to explore ~170 servers// Search catalog
mcp-find query="keyword" limit=10
// Add server
mcp-add name="ServerName" activate=false
// Configure
mcp-config-set server="name" key="setting" value="value"
// Remove
mcp-remove name="ServerName"
// Execute tool
mcp-exec name="tool-name" arguments={...}
Remember: When user mentions MCP or needs external integrations, search the catalog first. The ~170 servers cover most common needs - databases, APIs, cloud services, web scraping, and more. It's almost always better to use an official MCP server than to ask the user to install tools manually.