DevContainer MCP Server
Gerencie ambientes DevContainer usando prompts em linguagem natural em qualquer editor compatível com MCP.
Documentação
Servidor MCP DevContainer
Um servidor abrangente do Model Context Protocol (MCP) que permite gerenciamento de DevContainers com IA. Este servidor permite que desenvolvedores criem, configurem, compilam, testem e modifiquem ambientes DevContainer usando prompts em linguagem natural através do VS Code, Cursor ou qualquer editor compatível com MCP.
🌟 Recursos
- Processamento de Linguagem Natural: Converta descrições em inglês simples em configurações válidas de
devcontainer.json - Sistema de Modelos: Mais de 11 modelos pré-construídos para stacks de desenvolvimento populares (Node.js, Python, Go, Rust, Java, etc.)
- Gerenciamento de Contêineres: Compile, teste, inicie, pare e monitore DevContainers usando a CLI do DevContainer
- Modificação em Tempo Real: Atualize configurações existentes com base em solicitações em linguagem natural
- Monitoramento de Status: Saúde do contêiner e status da configuração em tempo real
- Suporte Multi-Editor: Compatível com VS Code, Cursor, Claude Desktop e outros clientes MCP
- Ferramenta CLI: Interface de linha de comando autônoma para uso direto
📋 Sumário
- Instalação
- Configuração
- Exemplos de Uso
- Ferramentas Disponíveis
- Modelos
- Ferramenta CLI
- Solução de Problemas
- Referência da API
- Contribuição
🚀 Instalação
Pré-requisitos
- Node.js 18+
- Docker ou Podman
- CLI do DevContainer:
npm install -g @devcontainers/cli
Instalar Pacote
npm install -g devcontainer-mcp-server
Instalação para Desenvolvimento
git clone https://github.com/Siddhant-K-code/mcp-devcontainer.git
cd mcp-devcontainer
npm install
npm run build
⚙️ Configuração
Configuração no VS Code
Adicione ao seu settings.json do VS Code:
{
"mcp.servers": {
"devcontainer": {
"command": "devcontainer-mcp-server",
"args": [],
"env": {}
}
}
}
Configuração no Cursor
Adicione à sua configuração do Cursor:
{
"mcp": {
"servers": {
"devcontainer": {
"command": "devcontainer-mcp-server"
}
}
}
}
Configuração no Claude Desktop
Adicione ao ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) ou equivalente:
{
"mcpServers": {
"devcontainer": {
"command": "devcontainer-mcp-server",
"args": []
}
}
}
📚 Exemplos de Uso
Prompts em Linguagem Natural
Gerar um projeto React TypeScript:
"Create a React TypeScript project with Tailwind CSS on port 3000"
Python Django com PostgreSQL:
"Python Django web application with PostgreSQL database and Redis cache"
Microsserviço Go:
"Go API server with Gin framework, PostgreSQL database, and Docker support on port 8080"
Aplicação full-stack MEAN:
"MEAN stack development environment with MongoDB, Express, Angular, and Node.js"
Saídas Esperadas
O sistema detecta automaticamente as tecnologias e gera configurações apropriadas:
- Linguagens: JavaScript, TypeScript, Python, Go, Rust, Java, PHP, Ruby
- Frameworks: React, Angular, Vue, Express, Django, Flask, Spring, Rails
- Bancos de Dados: PostgreSQL, MySQL, MongoDB, Redis, SQLite, Elasticsearch
- Ferramentas: Docker, Git, ferramentas de desenvolvimento, extensões do VS Code
- Portas: Detecção e encaminhamento automático de portas
🛠️ Ferramentas Disponíveis
1. generate_devcontainer
Gere configuração do DevContainer a partir de linguagem natural.
Parâmetros:
prompt(obrigatório): Descrição em linguagem naturalworkspaceRoot(opcional): Caminho do workspace (padrão: ".")baseTemplate(opcional): Modelo para começar
2. build_devcontainer
Compile o contêiner a partir da configuração.
Parâmetros:
workspaceRoot(opcional): Caminho do workspace (padrão: ".")configPath(opcional): Caminho de configuração personalizadorebuild(opcional): Forçar recompilação (padrão: false)
3. test_devcontainer
Teste a funcionalidade do contêiner.
Parâmetros:
workspaceRoot(opcional): Caminho do workspace (padrão: ".")testCommands(opcional): Matriz de comandos de teste personalizados
4. list_templates
Mostre os modelos disponíveis.
Parâmetros:
category(opcional): Filtrar por categoria
5. modify_devcontainer
Modifique a configuração existente.
Parâmetros:
workspaceRoot(opcional): Caminho do workspace (padrão: ".")modifications(obrigatório): Descrição das alterações desejadas
6. get_devcontainer_status
Verifique o status do contêiner.
Parâmetros:
workspaceRoot(opcional): Caminho do workspace (padrão: ".")
📦 Modelos
Modelos de Backend
- nodejs-typescript: Node.js com suporte a TypeScript
- python: Python com pacotes comuns e depuração
- go: Desenvolvimento Go com ferramentas padrão
- rust: Ambiente Rust com Cargo e depuração
- java: Java com suporte a Maven/Gradle
- php: PHP com Composer e depuração
- ruby: Ruby com suporte a Rails
Modelos de Frontend
- react: Stack de desenvolvimento React moderno com TypeScript e Vite
Modelos Full-Stack
- mean-stack: MongoDB, Express, Angular, Node.js
- docker-compose: Desenvolvimento multi-serviço
Modelos Universais
- universal: Ambiente de desenvolvimento multi-linguagem
Recursos dos Modelos
Cada modelo inclui:
- Imagem base e runtime apropriados
- Ferramentas e depuradores específicos da linguagem
- Extensões recomendadas do VS Code
- Encaminhamento de portas comum
- Comandos de configuração do gerenciador de pacotes
🖥️ Ferramenta CLI
O pacote inclui uma ferramenta CLI autônoma para uso direto:
Gerar Configuração
devcontainer-mcp-cli generate "React TypeScript app with Tailwind CSS"
Compilar Contêiner
devcontainer-mcp-cli build --workspace . --rebuild
Testar Contêiner
devcontainer-mcp-cli test --command "npm test" --command "npm run lint"
Listar Modelos
devcontainer-mcp-cli templates --category backend
Verificar Status
devcontainer-mcp-cli status --workspace .
Modificar Configuração
devcontainer-mcp-cli modify "add Redis support and port 6379"
🐛 Solução de Problemas
Problemas Comuns
CLI do DevContainer não encontrada:
npm install -g @devcontainers/cli
Docker não está em execução:
- Certifique-se de que o Docker Desktop está em execução
- Verifique o status do daemon do Docker:
docker info
Falhas na compilação:
- Verifique a sintaxe do devcontainer.json
- Verifique a disponibilidade da imagem base
- Revise os logs de compilação para erros específicos
Problemas de permissão:
- Certifique-se de que o Docker tem permissões adequadas
- Verifique as permissões do sistema de arquivos para o workspace
Mensagens de Erro
"Nenhum modelo adequado encontrado":
- Tente com um prompt mais específico
- Use
list_templatespara ver as opções disponíveis - Especifique um modelo base explicitamente
"Configuração do DevContainer não encontrada":
- Gere a configuração primeiro com
generate_devcontainer - Verifique se
.devcontainer/devcontainer.jsonexiste
"Tempo limite de compilação excedido":
- Verifique a conexão com a internet para downloads de imagens
- Considere usar imagens base mais leves
- Aumente o tempo limite se necessário para imagens grandes
📖 Referência da API
Conformidade com o Protocolo MCP
O servidor implementa a especificação do Model Context Protocol:
- Registro de ferramentas com esquemas completos
- Tratamento adequado de solicitações/respostas
- Respostas de erro no formato MCP
- Respostas de conteúdo de texto
Formato de Resposta
Todas as ferramentas retornam respostas estruturadas com:
- Status de sucesso/falha
- Saída detalhada e mensagens de erro
- Racional para escolhas de configuração
- Configurações geradas em formato JSON
Tratamento de Erros
Tratamento abrangente de erros para:
- Configurações inválidas
- Falhas na compilação
- Problemas de disponibilidade da CLI
- Erros do sistema de arquivos
- Tempos limite de rede
🧪 Testes
Execute a suíte de testes:
npm test
Execute com cobertura:
npm run test:coverage
Teste componentes específicos:
npm test -- config-generator.test.ts
npm test -- template-manager.test.ts
npm test -- devcontainer-manager.test.ts
🏗️ Desenvolvimento
Estrutura do Projeto
src/
├── index.ts # Main MCP server
├── config-generator.ts # Natural language processing
├── devcontainer-manager.ts # Container operations
├── template-manager.ts # Template management
├── cli.ts # CLI tool
└── __tests__/ # Test suite
Compilar e Executar
npm run build # Compile TypeScript
npm run dev # Development mode
npm run start # Production mode
npm run lint # Code linting
Adicionando Novos Modelos
- Edite
src/template-manager.ts - Adicione a configuração do modelo à matriz de modelos
- Inclua metadados apropriados (linguagens, frameworks, categoria)
- Adicione testes para o novo modelo
- Atualize a documentação
Adicionando Suporte a Linguagens
- Atualize os padrões de linguagem em
config-generator.ts - Adicione padrões de detecção de frameworks
- Mapeie para extensões apropriadas do VS Code
- Crie ou atualize modelos conforme necessário
- Adicione casos de teste
🤝 Contribuição
Aceitamos contribuições! Consulte nossas diretrizes de contribuição:
- Faça um fork do repositório
- Crie um branch de recurso
- Faça suas alterações com testes
- Certifique-se de que todos os testes passem
- Envie um pull request
Fluxo de Trabalho de Desenvolvimento
- Instale as dependências:
npm install - Execute os testes:
npm test - Compile o projeto:
npm run build - Teste a CLI:
npm run cli -- --help
📄 Licença
Licença MIT - consulte o arquivo LICENSE para detalhes.
🙏 Agradecimentos
- CLI do DevContainer para gerenciamento de contêineres
- Model Context Protocol para a especificação do protocolo
- DevContainers do VS Code para os padrões de contêineres