Docker MCP Server
README.md
# đł Docker MCP Server
[](https://www.docker.com/)
[](https://nodejs.org/)
[](https://modelcontextprotocol.io/)
[](https://claude.ai/)
**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
```bash
# 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
| Category | Tools | Description |
|----------|--------|-------------|
| **Containers** | `list_containers`, `start_container`, `stop_container`, `restart_container` | Gerenciamento completo de containers |
| **Images** | `list_images`, `pull_image`, `remove_image`, `check_updates` | Controle de imagens Docker |
| **Compose** | `run_docker_compose`, `remove_docker_compose` | Deploy via YAML inline |
| **Networks/Volumes** | `list_networks`, `list_volumes` | Visualização de recursos |
| **Servers** | `list_docker_servers`, `add_docker_server` | Multi-host management |
## đ Claude Integration
### Método 1: Configuração de projeto
Criar `.claude/mcp.json`:
```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)
```bash
DOCKER_SOCKET=/var/run/docker.sock
```
### Docker remoto
```bash
DOCKER_HOST=192.168.1.10
DOCKER_PORT=2375
DOCKER_PROTOCOL=http
```
### MĂșltiplos servidores
```bash
DOCKER_SERVERS=local:socket:/var/run/docker.sock,prod:prod-docker:2376:https
```
## đ Troubleshooting
### Erro de permissĂŁo
```bash
sudo usermod -aG docker $USER
newgrp docker
```
### DependĂȘncias
```bash
rm -rf node_modules package-lock.json
npm install
```
### Debug
```bash
export LOG_LEVEL=debug
npm start
```
## đ Monitoring
```bash
# 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
- đ **[Setup Guide](docs/SETUP.md)** - Guia completo de instalação e configuração
- đ§ **[Troubleshooting](docs/SETUP.md#troubleshooting)** - Solução de problemas comuns
- đ **[Claude Integration](docs/SETUP.md#claude-integration)** - Integração com Claude
- đ ïž **[Available Tools](docs/SETUP.md#available-tools)** - Lista completa de ferramentas
## đ License
MIT License - Ver arquivo [LICENSE](LICENSE) 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](https://github.com/marcelofmatos)
**Baseado em**: [mcp-docker](https://www.npmjs.com/package/mcp-docker) por FlorentB974This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues