Skip to main content
Glama

MCP Code Editor

by alejoair
README.md8.08 kB
# MCP Code Editor Un servidor MCP (Model Context Protocol) avanzado que proporciona herramientas de edición de código inteligentes con análisis AST, gestión de proyectos e integración de consola interactiva. ## 🚀 Características Principales ### 🔧 Gestión de Proyectos - **Análisis automático de estructura de proyecto** con indexación AST - **Filtrado inteligente de archivos** respetando `.gitignore` - **Caché de configuración** para operaciones rápidas - **Detección automática de tipo de proyecto** (Python, JavaScript, etc.) ### 🔍 Análisis de Código AST - **Búsqueda de definiciones** y ubicaciones de uso - **Análisis de dependencias** entre funciones y clases - **Detección de cambios estructurales** que pueden romper el código - **Métricas de código** automáticas (conteo de funciones, clases, imports) ### ✏️ Edición Inteligente de Archivos - **Modificaciones precisas** con sistema diff avanzado - **Protección contra cambios críticos** con análisis de impacto - **Creación y eliminación** de archivos con respaldo automático - **Lectura con números de línea** y metadatos AST ### 📚 Integración de Librerías - **Indexación de librerías externas** (pandas, numpy, requests, etc.) - **Búsqueda en librerías indexadas** para autocompletado - **Análisis de compatibilidad** entre librerías ### 🖥️ Consola Interactiva - **Procesos de consola inteligentes** (Python, Node.js, CMD) - **Detección automática** de prompts vs procesos en segundo plano - **Gestión de múltiples procesos** simultáneos - **Captura de salida** con filtrado por tipo ## 📦 Instalación ```bash pip install mcp-code-editor ``` ## ⚙️ Configuración MCP Client Agrega la siguiente configuración a tu cliente MCP: ### Claude Desktop Edita el archivo de configuración: - **Windows**: `%APPDATA%/Claude/claude_desktop_config.json` - **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json` - **Linux**: `~/.config/claude/claude_desktop_config.json` ```json { "mcpServers": { "mcp-code-editor": { "command": "mcp-code-editor", "args": [], "env": {} } } } ``` ### Otros Clientes MCP ```json { "servers": { "mcp-code-editor": { "command": "mcp-code-editor", "args": [], "cwd": "/ruta/a/tu/proyecto" } } } ``` ## 🛠️ Herramientas Disponibles ### Gestión de Proyectos #### `setup_code_editor` Analiza la estructura del proyecto y construye el índice AST. ``` setup_code_editor( path="/ruta/al/proyecto", analyze_ast=True ) ``` #### `project_files` Obtiene archivos del proyecto con filtros opcionales. ``` project_files( filter_extensions=[".py", ".js"], max_depth=3, format_as_tree=True ) ``` ### Análisis de Código #### `get_code_definition` Busca definiciones y ubicaciones de uso de cualquier identificador. ``` get_code_definition( identifier="function_name", definition_type="function", include_usage=True ) ``` #### `read_file_with_lines` Lee archivos con números de línea y metadatos AST para Python. ``` read_file_with_lines( path="archivo.py", start_line=10, end_line=50 ) ``` ### Edición de Archivos #### `apply_diff_tool` Aplica modificaciones precisas con análisis de dependencias automático. ``` apply_diff_tool( path="archivo.py", blocks=[ { "start_line": 15, "end_line": 17, "search_content": "def old_function():", "replace_content": "def new_function():" } ], force=False ) ``` #### `create_file_tool` Crea nuevos archivos con contenido. ``` create_file_tool( path="nuevo_archivo.py", content="print('Hello World')", overwrite=False ) ``` #### `delete_file_tool` Elimina archivos con opción de respaldo. ``` delete_file_tool( path="archivo_obsoleto.py", create_backup=True ) ``` ### Integración de Librerías #### `index_library_tool` Indexa librerías externas para análisis. ``` index_library_tool( library_name="pandas", include_private=False ) ``` #### `search_library_tool` Busca definiciones en librerías indexadas. ``` search_library_tool( library_name="pandas", query="DataFrame", definition_type="class" ) ``` #### `list_indexed_libraries_tool` Lista todas las librerías indexadas. ``` list_indexed_libraries_tool() ``` ### Consola Interactiva #### `start_console_process_tool` Inicia procesos de consola interactivos. ``` start_console_process_tool( command="python -u -i", working_dir="/ruta/al/proyecto", name="python_session" ) ``` #### `send_to_console_tool` Envía entrada a procesos de consola con detección inteligente. ``` send_to_console_tool( process_id="process_id", input_text="print('Hello')", wait_for_response=True, force_send=False ) ``` #### `check_console_tool` Obtiene instantánea de salida de consola. ``` check_console_tool( process_id="process_id", wait_seconds=2, lines=50, filter_type="stdout" ) ``` #### `list_console_processes_tool` Lista procesos de consola activos. ``` list_console_processes_tool( include_terminated=False, summary_only=True ) ``` #### `terminate_console_process_tool` Termina procesos de consola. ``` terminate_console_process_tool( process_id="process_id", force=False, timeout=10 ) ``` ## 🔐 Características de Seguridad ### Protección Inteligente - **Análisis de impacto** antes de modificaciones críticas - **Bloqueo automático** de cambios que pueden romper múltiples archivos - **Advertencias de dependencias** y archivos afectados - **Sugerencias de revisión** basadas en el análisis AST ### Detección de Entrada Inteligente - **Prevención automática** de envío de comandos a procesos en segundo plano - **Detección de prompts** vs procesos ejecutándose - **Modo force** para señales de control (Ctrl+C) ## 💡 Casos de Uso ### Desarrollo Automatizado ``` 1. Configurar proyecto: setup_code_editor 2. Analizar estructura: project_files 3. Buscar función: get_code_definition 4. Modificar código: apply_diff_tool 5. Probar cambios: start_console_process_tool ``` ### Refactoring Inteligente ``` 1. Encontrar todas las ubicaciones: get_code_definition 2. Analizar dependencias: apply_diff_tool (sin force) 3. Revisar impacto: analizar warnings 4. Aplicar cambios: apply_diff_tool (con force si necesario) ``` ### Exploración de Código ``` 1. Indexar librerías: index_library_tool 2. Buscar en librerías: search_library_tool 3. Leer código con contexto: read_file_with_lines 4. Analizar dependencias: get_code_definition ``` ## 🐛 Mejores Prácticas ### Comandos de Consola Recomendados - **Python**: `python -u -i` (modo unbuffered + interactivo) - **Node.js**: `node` (REPL por defecto) - **Windows CMD**: `cmd` - **PowerShell**: `powershell` - **Bash**: `bash` ### Workflow de Edición Segura 1. Siempre usar `apply_diff_tool` sin `force=True` primero 2. Revisar warnings y análisis de dependencias 3. Solo usar `force=True` cuando estés seguro 4. Usar `get_code_definition` para entender el impacto ### Gestión de Procesos - Usar `check_console_tool` con `wait_seconds` apropiado - Verificar estado con `list_console_processes_tool` - Limpiar procesos terminados con `cleanup_terminated_processes_tool` ## 📚 Documentación Adicional - [Guía de API MCP](https://modelcontextprotocol.io/) - [FastMCP Framework](https://github.com/jlowin/fastmcp) - [Repositorio del Proyecto](https://github.com/alejoair/mcp-code-editor) ## 🤝 Contribuciones Las contribuciones son bienvenidas. Por favor: 1. Fork el repositorio 2. Crea una rama para tu feature 3. Añade tests si es necesario 4. Envía un Pull Request ## 📄 Licencia MIT License - ver archivo [LICENSE](LICENSE) para detalles. ## 🔗 Enlaces - **PyPI**: https://pypi.org/project/mcp-code-editor/ - **GitHub**: https://github.com/alejoair/mcp-code-editor - **Documentación**: https://alejoair.github.io/mcp-code-editor/ - **Issues**: https://github.com/alejoair/mcp-code-editor/issues

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/alejoair/mcp-code-editor'

If you have feedback or need assistance with the MCP directory API, please join our Discord server