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

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 natural
  • workspaceRoot (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 personalizado
  • rebuild (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_templates para 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.json existe

"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

  1. Edite src/template-manager.ts
  2. Adicione a configuração do modelo à matriz de modelos
  3. Inclua metadados apropriados (linguagens, frameworks, categoria)
  4. Adicione testes para o novo modelo
  5. Atualize a documentação

Adicionando Suporte a Linguagens

  1. Atualize os padrões de linguagem em config-generator.ts
  2. Adicione padrões de detecção de frameworks
  3. Mapeie para extensões apropriadas do VS Code
  4. Crie ou atualize modelos conforme necessário
  5. Adicione casos de teste

🤝 Contribuição

Aceitamos contribuições! Consulte nossas diretrizes de contribuição:

  1. Faça um fork do repositório
  2. Crie um branch de recurso
  3. Faça suas alterações com testes
  4. Certifique-se de que todos os testes passem
  5. Envie um pull request

Fluxo de Trabalho de Desenvolvimento

  1. Instale as dependências: npm install
  2. Execute os testes: npm test
  3. Compile o projeto: npm run build
  4. Teste a CLI: npm run cli -- --help

📄 Licença

Licença MIT - consulte o arquivo LICENSE para detalhes.

🙏 Agradecimentos