PT | EN
Tutorial para configurar docker-gateway com servidores MCP rodando dentro de containers Docker.
Versão: 1.0.0 Última Atualização: 2026-01-28
Docker Gateway é um servidor MCP que atua como uma ponte entre o Claude Code e múltiplos servidores MCP rodando dentro de containers Docker.
Quando MCPs rodam dentro do docker-gateway, suas definições de ferramentas ficam encapsuladas no container. Isso significa:
| Configuração | Custo de Tokens | Definições de Tools no Contexto |
|---|---|---|
| Direto no ~/.claude.json | Cada MCP adiciona tokens | Sim, todos os schemas visíveis |
| Dentro do docker-gateway | Sem custo extra | Encapsulado no container |
Por quê? O Claude Code só vê as ferramentas do docker-gateway (mcp-add, mcp-find, etc.), não as ferramentas individuais de cada MCP interno. As ferramentas reais são chamadas através do gateway.
- Docker Desktop 4.37+ instalado e rodando
- Claude Code CLI instalado
- Chaves de API para os serviços MCP desejados
# Inicializar o sistema de catálogo
docker mcp catalog init
# Verificar inicialização
docker mcp catalog lsSaída esperada:
docker-mcp: Docker MCP Catalog
O catálogo contém 313+ servidores MCP disponíveis para habilitar.
# Listar todos os servidores disponíveis
docker mcp catalog show docker-mcp
# Buscar servidor específico
docker mcp catalog show docker-mcp | grep -i apify
docker mcp catalog show docker-mcp | grep -i exa# Habilitar servidores que você quer usar
docker mcp server enable apify-mcp-server
docker mcp server enable exa
docker mcp server enable context7
# Listar servidores habilitados
docker mcp server ls# Definir secrets
docker mcp secret set APIFY_TOKEN "seu-token-apify"
docker mcp secret set EXA_API_KEY "sua-chave-exa"Devido a um bug conhecido (Dez 2025), secrets podem não ser passados corretamente para os containers.
Workaround: Edite ~/.docker/mcp/catalogs/docker-mcp.yaml diretamente:
# Encontre a entrada do seu MCP e adicione os valores de env
apify-mcp-server:
env:
- name: APIFY_TOKEN
value: 'apify_api_xxxxxxxxxxxxx'
- name: TOOLS
value: 'actors,docs,apify/rag-web-browser'
exa:
env:
- name: EXA_API_KEY
value: 'sua-chave-exa-aqui'chmod 600 ~/.docker/mcp/catalogs/docker-mcp.yamlAdicione docker-gateway ao ~/.claude.json:
{
"mcpServers": {
"docker-gateway": {
"type": "stdio",
"command": "docker",
"args": ["mcp", "gateway", "run"]
}
}
}Ou use o CLI do Claude:
claude mcp add docker-gateway -s user -- docker mcp gateway run# Verificar ferramentas disponíveis através do gateway
docker mcp tools ls
# Saída esperada mostra ferramentas do gateway + servidores habilitados
# Exemplo: 58 tools (7 gateway + 51 dos servidores habilitados)No Claude Code:
# Listar status dos MCPs
claude mcp list
# Deve mostrar:
# docker-gateway: docker mcp gateway run - ✓ Connected| Ferramenta | Descrição |
|---|---|
mcp-add |
Adicionar servidor MCP à sessão atual |
mcp-find |
Buscar servidores no catálogo |
mcp-remove |
Remover servidor MCP da sessão |
mcp-exec |
Executar ferramenta de servidor habilitado |
mcp-config-set |
Configurar servidor MCP |
code-mode |
Criar ferramentas JavaScript combinadas |
mcp-create-profile |
Salvar estado atual do gateway |
Uma vez habilitados, as ferramentas dos servidores ficam disponíveis através do gateway:
# Ferramentas Apify (via docker-gateway)
mcp__docker-gateway__search-actors
mcp__docker-gateway__call-actor
mcp__docker-gateway__apify-slash-rag-web-browser
# Ferramentas EXA (via docker-gateway)
mcp__docker-gateway__web_search_exa
mcp__docker-gateway__company_research
# Ferramentas Context7 (via docker-gateway)
mcp__docker-gateway__resolve-library-id
mcp__docker-gateway__query-docs
{
"mcpServers": {
"desktop-commander": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@wonderwhy-er/desktop-commander"]
},
"docker-gateway": {
"type": "stdio",
"command": "docker",
"args": ["mcp", "gateway", "run"]
},
"playwright": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@anthropic/mcp-playwright"]
}
}
}User MCPs (4 servidores):
├── desktop-commander ✓ conectado
├── docker-gateway ✓ conectado (58 ferramentas dentro)
├── playwright ✓ conectado
└── n8n-mcp ✓ conectado
Dentro do docker-gateway:
├── apify-mcp-server (7 ferramentas)
├── exa (8 ferramentas)
├── context7 (2 ferramentas)
└── + ferramentas do gateway (7 ferramentas)
# Verificar se Docker está rodando
docker info
# Verificar logs do gateway
docker mcp gateway run --verboseIsso indica falha de autenticação. Use o workaround:
# Editar catálogo diretamente com credenciais hardcoded
nano ~/.docker/mcp/catalogs/docker-mcp.yaml# Atualizar catálogo
docker mcp catalog update
# Verificar se servidor existe
docker mcp catalog show docker-mcp | grep -i "nome-do-servidor"# Desabilitar todos os servidores
docker mcp server reset
# Resetar catálogo
docker mcp catalog reset
# Reinicializar
docker mcp catalog initColoque estes dentro do docker-gateway (não precisam de acesso ao host):
- Apify (APIs de web scraping)
- EXA (APIs de busca)
- Context7 (APIs de documentação)
- Qualquer integração cloud/SaaS
Mantenha estes no ~/.claude.json diretamente:
- desktop-commander (precisa acesso a arquivos/terminal do host)
- playwright (precisa acesso ao browser do host)
- MCPs de filesystem
# Definir permissões restritivas
chmod 600 ~/.docker/mcp/catalogs/docker-mcp.yaml
chmod 700 ~/.docker/mcp/
# Nunca commitar estes arquivos
echo "~/.docker/mcp/" >> ~/.gitignore_globalTutorial Docker Gateway MCP v1.0.0 - AIOX Framework