mcp-docker-server

marcelofmatos/mcp-docker-server

3.2

If you are the rightful owner of mcp-docker-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The Docker Model Context Protocol (MCP) Server enables AI systems like Claude to manage Docker containers securely and intuitively using the MCP protocol.

Tools
5
Resources
0
Prompts
0

🐳 Docker MCP Server

Docker Node.js MCP Claude

Docker Model Context Protocol (MCP) Server - Permite que IAs como Claude gerenciem containers Docker através do protocolo MCP de forma segura e intuitiva.

🌟 Features

  • 🔧 Gerenciamento completo de containers: Start, stop, restart, logs, estatĂ­sticas
  • 📩 Controle de imagens: Pull, remove, verificar atualizaçÔes
  • 🐳 Docker Compose: Deploy e remoção de stacks via YAML
  • 🌐 MĂșltiplos servidores: Conectar a vĂĄrios Docker hosts simultĂąneamente
  • 🔒 Segurança: Socket Unix local ou TCP com TLS
  • 📊 Monitoramento: Logs estruturados e mĂ©tricas em tempo real
  • ⚡ Integração Claude: Pronto para uso com Claude Code/Desktop

🚀 Quick Start

# 1. Navegar para o diretĂłrio
cd /home/marcelo/docker/mcp-docker-server

# 2. Instalar dependĂȘncias
npm install

# 3. Configurar ambiente (opcional)
cp config/.env.example .env

# 4. Iniciar servidor
npm start

📋 Prerequisites

  • Node.js >= 18.0.0
  • Docker Engine funcionando
  • UsuĂĄrio no grupo docker
  • Claude Code ou Claude Desktop

đŸ› ïž Available Tools

CategoryToolsDescription
Containerslist_containers, start_container, stop_container, restart_containerGerenciamento completo de containers
Imageslist_images, pull_image, remove_image, check_updatesControle de imagens Docker
Composerun_docker_compose, remove_docker_composeDeploy via YAML inline
Networks/Volumeslist_networks, list_volumesVisualização de recursos
Serverslist_docker_servers, add_docker_serverMulti-host management

🔌 Claude Integration

Método 1: Configuração de projeto

Criar .claude/mcp.json:

{
  "servers": {
    "docker-local": {
      "type": "stdio",
      "command": "node",
      "args": ["src/index.js"],
      "env": {
        "DOCKER_SOCKET": "/var/run/docker.sock"
      },
      "description": "Local Docker management via MCP"
    }
  }
}

Método 2: Claude Desktop global

Ver exemplos em config/claude-desktop-sample.json.

📖 Examples

Listar containers via Claude

"Liste todos os containers Docker ativos e parados"

Deploy Docker Compose via Claude

"Deploy este Docker Compose:

version: '3.8'
services:
  redis:
    image: redis:alpine
    ports:
      - '6379:6379'"

Gerenciar container especĂ­fico

"Reinicie o container 'nginx-proxy' e mostre os logs recentes"

📁 Project Structure

mcp-docker-server/
├── src/
│   └── index.js              # Servidor principal
├── scripts/
│   ├── start-server.sh       # Script de inicialização
│   └── stop-server.sh        # Script de parada
├── config/
│   ├── .env.example          # Configuração de ambiente
│   ├── claude-desktop-sample.json
│   └── env.sample.sh
├── docs/
│   └── SETUP.md             # Documentação completa
├── logs/                    # Logs de execução
├── .claude/
│   └── mcp.json            # Configuração MCP do projeto
└── package.json

⚙ Configuration

Socket Unix (PadrĂŁo)

DOCKER_SOCKET=/var/run/docker.sock

Docker remoto

DOCKER_HOST=192.168.1.10
DOCKER_PORT=2375
DOCKER_PROTOCOL=http

MĂșltiplos servidores

DOCKER_SERVERS=local:socket:/var/run/docker.sock,prod:prod-docker:2376:https

🐛 Troubleshooting

Erro de permissĂŁo

sudo usermod -aG docker $USER
newgrp docker

DependĂȘncias

rm -rf node_modules package-lock.json
npm install

Debug

export LOG_LEVEL=debug
npm start

📊 Monitoring

# Logs em tempo real
tail -f logs/server-*.log

# Status bĂĄsico
timeout 5s npm start < /dev/null

🚹 Security Notes

⚠ IMPORTANTE: O acesso ao socket Docker concede privilĂ©gios equivalentes ao root. Use apenas em ambientes confiĂĄveis.

  • Socket local: Preferir quando possĂ­vel
  • TCP remoto: Sempre usar TLS em produção
  • Firewall: Limitar acesso Ă s portas Docker
  • Containers: Revisar imagens antes de executar

📚 Documentation

  • 📖 - Guia completo de instalação e configuração
  • 🔧 - Solução de problemas comuns
  • 🔌 - Integração com Claude
  • đŸ› ïž - Lista completa de ferramentas

📝 License

MIT License - Ver arquivo para detalhes.

đŸ€ Contributing

  1. Fork o projeto
  2. Criar feature branch (git checkout -b feature/nova-funcionalidade)
  3. Commit as mudanças (git commit -am 'Adiciona nova funcionalidade')
  4. Push to branch (git push origin feature/nova-funcionalidade)
  5. Abrir Pull Request

⭐ Support

Gostou do projeto? Deixe uma estrela ⭐

Encontrou algum problema? Abra uma issue 🐛


Criado por: Marcelo Matos
Baseado em: mcp-docker por FlorentB974