JUHE API Marketplace
alejoair avatar
MCP Server

MCP Code Editor

A FastMCP server providing powerful code editing tools including precise file modifications with diff-based operations, file creation and reading with line numbers, and more tools for code editing workflows.

0
GitHub Stars
8/23/2025
Last Updated
MCP Server Configuration
1{
2 "name": "mcp-code-editor",
3 "command": "mcp-code-editor",
4 "args": [],
5 "env": {}
6}
JSON6 lines

README Documentation

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

  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

🤝 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 para detalles.

🔗 Enlaces

Quick Install

Quick Actions

Key Features

Model Context Protocol
Secure Communication
Real-time Updates
Open Source