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
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
{
"mcpServers": {
"mcp-code-editor": {
"command": "mcp-code-editor",
"args": [],
"env": {}
}
}
}
Otros Clientes MCP
{
"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
- Siempre usar
apply_diff_toolsinforce=Trueprimero - Revisar warnings y análisis de dependencias
- Solo usar
force=Truecuando estés seguro - Usar
get_code_definitionpara entender el impacto
Gestión de Procesos
- Usar
check_console_toolconwait_secondsapropiado - Verificar estado con
list_console_processes_tool - Limpiar procesos terminados con
cleanup_terminated_processes_tool
📚 Documentación Adicional
🤝 Contribuciones
Las contribuciones son bienvenidas. Por favor:
- Fork el repositorio
- Crea una rama para tu feature
- Añade tests si es necesario
- Envía un Pull Request
📄 Licencia
MIT License - ver archivo LICENSE para detalles.
🔗 Enlaces
Metadata
Release files for mcp-code-editor 0.1.24
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mcp_code_editor-0.1.24.tar.gz | 62.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mcp_code_editor-0.1.24-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 128.6 kB
Release files / mcp_code_editor-0.1.24.tar.gz
| Download URL | mcp_code_editor-0.1.24.tar.gz |
|---|---|
| Size | 62.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4a14fed037bfee7f4f7042045b5cb85906323efec5a4a8af5a79d41c03b515eb
|
|
BLAKE2b-256 checksum How to use checksums |
933baa61ab2b4415614000c9d594dfa50a28b9c98c7227b4ba860c7a0f00e33c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / mcp_code_editor-0.1.24-py3-none-any.whl
| Download URL | mcp_code_editor-0.1.24-py3-none-any.whl |
|---|---|
| Size | 66.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
84ed22feb9d149548916680fab7a1c548559d21fcbf666c9cfb94df2c17f203b
|
|
BLAKE2b-256 checksum How to use checksums |
e6a4093b06afb51be9b604f183614eba31a1c7ab5e78bb1d3be0f59d0b1c0364
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|