DevContainer MCP Server
Gestiona entornos DevContainer usando indicaciones en lenguaje natural en cualquier editor compatible con MCP.
Documentación
Servidor MCP de DevContainer
Un servidor integral del Protocolo de Contexto de Modelos (MCP) que permite la gestión de DevContainers impulsada por IA. Este servidor permite a los desarrolladores crear, configurar, compilar, probar y modificar entornos DevContainer usando indicaciones en lenguaje natural a través de VS Code, Cursor o cualquier editor compatible con MCP.
🌟 Características
- Procesamiento de Lenguaje Natural: Convierte descripciones en inglés sencillo en configuraciones válidas de
devcontainer.json - Sistema de Plantillas: Más de 11 plantillas preconstruidas para stacks de desarrollo populares (Node.js, Python, Go, Rust, Java, etc.)
- Gestión de Contenedores: Compila, prueba, inicia, detiene y monitorea DevContainers usando la CLI de DevContainer
- Modificación en Vivo: Actualiza configuraciones existentes basándose en solicitudes en lenguaje natural
- Monitoreo de Estado: Estado de salud del contenedor y de la configuración en tiempo real
- Soporte Multi-Editor: Compatible con VS Code, Cursor, Claude Desktop y otros clientes MCP
- Herramienta CLI: Interfaz de línea de comandos independiente para uso directo
📋 Tabla de Contenidos
- Instalación
- Configuración
- Ejemplos de Uso
- Herramientas Disponibles
- Plantillas
- Herramienta CLI
- Solución de Problemas
- Referencia de API
- Contribuciones
🚀 Instalación
Requisitos Previos
- Node.js 18+
- Docker o Podman
- CLI de DevContainer:
npm install -g @devcontainers/cli
Instalar Paquete
npm install -g devcontainer-mcp-server
Instalación de Desarrollo
git clone https://github.com/Siddhant-K-code/mcp-devcontainer.git
cd mcp-devcontainer
npm install
npm run build
⚙️ Configuración
Configuración de VS Code
Agrega a tu settings.json de VS Code:
{
"mcp.servers": {
"devcontainer": {
"command": "devcontainer-mcp-server",
"args": [],
"env": {}
}
}
}
Configuración de Cursor
Agrega a tu configuración de Cursor:
{
"mcp": {
"servers": {
"devcontainer": {
"command": "devcontainer-mcp-server"
}
}
}
}
Configuración de Claude Desktop
Agrega a ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) o equivalente:
{
"mcpServers": {
"devcontainer": {
"command": "devcontainer-mcp-server",
"args": []
}
}
}
📚 Ejemplos de Uso
Indicaciones en Lenguaje Natural
Generar un proyecto React TypeScript:
"Create a React TypeScript project with Tailwind CSS on port 3000"
Python Django con PostgreSQL:
"Python Django web application with PostgreSQL database and Redis cache"
Microservicio Go:
"Go API server with Gin framework, PostgreSQL database, and Docker support on port 8080"
Aplicación full-stack MEAN:
"MEAN stack development environment with MongoDB, Express, Angular, and Node.js"
Salidas Esperadas
El sistema detecta automáticamente las tecnologías y genera configuraciones apropiadas:
- Lenguajes: JavaScript, TypeScript, Python, Go, Rust, Java, PHP, Ruby
- Frameworks: React, Angular, Vue, Express, Django, Flask, Spring, Rails
- Bases de Datos: PostgreSQL, MySQL, MongoDB, Redis, SQLite, Elasticsearch
- Herramientas: Docker, Git, herramientas de desarrollo, extensiones de VS Code
- Puertos: Detección y reenvío automático de puertos
🛠️ Herramientas Disponibles
1. generate_devcontainer
Genera configuración de DevContainer a partir de lenguaje natural.
Parámetros:
prompt(obligatorio): Descripción en lenguaje naturalworkspaceRoot(opcional): Ruta del espacio de trabajo (predeterminado: ".")baseTemplate(opcional): Plantilla desde la cual comenzar
2. build_devcontainer
Compila el contenedor a partir de la configuración.
Parámetros:
workspaceRoot(opcional): Ruta del espacio de trabajo (predeterminado: ".")configPath(opcional): Ruta de configuración personalizadarebuild(opcional): Forzar recompilación (predeterminado: false)
3. test_devcontainer
Prueba la funcionalidad del contenedor.
Parámetros:
workspaceRoot(opcional): Ruta del espacio de trabajo (predeterminado: ".")testCommands(opcional): Arreglo de comandos de prueba personalizados
4. list_templates
Muestra las plantillas disponibles.
Parámetros:
category(opcional): Filtrar por categoría
5. modify_devcontainer
Modifica la configuración existente.
Parámetros:
workspaceRoot(opcional): Ruta del espacio de trabajo (predeterminado: ".")modifications(obligatorio): Descripción de los cambios deseados
6. get_devcontainer_status
Verifica el estado del contenedor.
Parámetros:
workspaceRoot(opcional): Ruta del espacio de trabajo (predeterminado: ".")
📦 Plantillas
Plantillas de Backend
- nodejs-typescript: Node.js con soporte de TypeScript
- python: Python con paquetes comunes y depuración
- go: Desarrollo de Go con herramientas estándar
- rust: Entorno de Rust con Cargo y depuración
- java: Java con soporte de Maven/Gradle
- php: PHP con Composer y depuración
- ruby: Ruby con soporte de Rails
Plantillas de Frontend
- react: Stack de desarrollo React moderno con TypeScript y Vite
Plantillas Full-Stack
- mean-stack: MongoDB, Express, Angular, Node.js
- docker-compose: Desarrollo de múltiples servicios
Plantillas Universales
- universal: Entorno de desarrollo multi-lenguaje
Características de las Plantillas
Cada plantilla incluye:
- Imagen base y tiempo de ejecución apropiados
- Herramientas y depuradores específicos del lenguaje
- Extensiones recomendadas de VS Code
- Reenvío de puertos común
- Comandos de configuración del gestor de paquetes
🖥️ Herramienta CLI
El paquete incluye una herramienta CLI independiente para uso directo:
Generar Configuración
devcontainer-mcp-cli generate "React TypeScript app with Tailwind CSS"
Compilar Contenedor
devcontainer-mcp-cli build --workspace . --rebuild
Probar Contenedor
devcontainer-mcp-cli test --command "npm test" --command "npm run lint"
Listar Plantillas
devcontainer-mcp-cli templates --category backend
Verificar Estado
devcontainer-mcp-cli status --workspace .
Modificar Configuración
devcontainer-mcp-cli modify "add Redis support and port 6379"
🐛 Solución de Problemas
Problemas Comunes
CLI de DevContainer no encontrada:
npm install -g @devcontainers/cli
Docker no está ejecutándose:
- Asegúrate de que Docker Desktop esté ejecutándose
- Verifica el estado del demonio de Docker:
docker info
Fallos de compilación:
- Verifica la sintaxis de devcontainer.json
- Confirma la disponibilidad de la imagen base
- Revisa los registros de compilación para errores específicos
Problemas de permisos:
- Asegúrate de que Docker tenga los permisos adecuados
- Verifica los permisos del sistema de archivos para el espacio de trabajo
Mensajes de Error
"No se encontró una plantilla adecuada":
- Intenta con una indicación más específica
- Usa
list_templatespara ver las opciones disponibles - Especifica una plantilla base explícitamente
"Configuración de DevContainer no encontrada":
- Genera la configuración primero con
generate_devcontainer - Verifica que
.devcontainer/devcontainer.jsonexista
"Tiempo de compilación agotado":
- Verifica la conexión a internet para descargas de imágenes
- Considera usar imágenes base más ligeras
- Aumenta el tiempo de espera si es necesario para imágenes grandes
📖 Referencia de API
Cumplimiento del Protocolo MCP
El servidor implementa la especificación del Protocolo de Contexto de Modelos:
- Registro de herramientas con esquemas completos
- Manejo adecuado de solicitudes/respuestas
- Respuestas de error en formato MCP
- Respuestas de contenido de texto
Formato de Respuesta
Todas las herramientas devuelven respuestas estructuradas con:
- Estado de éxito/fallo
- Salida detallada y mensajes de error
- Razonamiento para las elecciones de configuración
- Configuraciones generadas en formato JSON
Manejo de Errores
Manejo integral de errores para:
- Configuraciones inválidas
- Fallos de compilación
- Problemas de disponibilidad de CLI
- Errores del sistema de archivos
- Tiempos de espera de red
🧪 Pruebas
Ejecuta el conjunto de pruebas:
npm test
Ejecuta con cobertura:
npm run test:coverage
Prueba componentes específicos:
npm test -- config-generator.test.ts
npm test -- template-manager.test.ts
npm test -- devcontainer-manager.test.ts
🏗️ Desarrollo
Estructura del Proyecto
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 y Ejecutar
npm run build # Compile TypeScript
npm run dev # Development mode
npm run start # Production mode
npm run lint # Code linting
Agregar Nuevas Plantillas
- Edita
src/template-manager.ts - Agrega la configuración de la plantilla al arreglo de plantillas
- Incluye metadatos apropiados (lenguajes, frameworks, categoría)
- Agrega pruebas para la nueva plantilla
- Actualiza la documentación
Agregar Soporte de Lenguajes
- Actualiza los patrones de lenguaje en
config-generator.ts - Agrega patrones de detección de frameworks
- Asigna las extensiones apropiadas de VS Code
- Crea o actualiza plantillas según sea necesario
- Agrega casos de prueba
🤝 Contribuciones
¡Damos la bienvenida a las contribuciones! Consulta nuestras pautas de contribución:
- Haz un fork del repositorio
- Crea una rama de características
- Realiza tus cambios con pruebas
- Asegúrate de que todas las pruebas pasen
- Envía una solicitud de extracción
Flujo de Trabajo de Desarrollo
- Instala las dependencias:
npm install - Ejecuta las pruebas:
npm test - Compila el proyecto:
npm run build - Prueba la CLI:
npm run cli -- --help
📄 Licencia
Licencia MIT - consulta el archivo LICENCIA para más detalles.
🙏 Agradecimientos
- CLI de DevContainer para la gestión de contenedores
- Protocolo de Contexto de Modelos para la especificación del protocolo
- DevContainers de VS Code para los estándares de contenedores