Skip to main content

A FastMCP server providing powerful code editing tools

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_code_editor-0.1.24.tar.gz (62.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_code_editor-0.1.24-py3-none-any.whl (66.0 kB view details)

Uploaded Python 3

File details

Details for the file mcp_code_editor-0.1.24.tar.gz.

File metadata

  • Download URL: mcp_code_editor-0.1.24.tar.gz
  • Upload date:
  • Size: 62.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for mcp_code_editor-0.1.24.tar.gz
Algorithm Hash digest
SHA256 4a14fed037bfee7f4f7042045b5cb85906323efec5a4a8af5a79d41c03b515eb
MD5 853e142d394dcb92dfae30a184c5274b
BLAKE2b-256 933baa61ab2b4415614000c9d594dfa50a28b9c98c7227b4ba860c7a0f00e33c

See more details on using hashes here.

File details

Details for the file mcp_code_editor-0.1.24-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_code_editor-0.1.24-py3-none-any.whl
Algorithm Hash digest
SHA256 84ed22feb9d149548916680fab7a1c548559d21fcbf666c9cfb94df2c17f203b
MD5 35edc7a9b425654b89c7e923fcf38567
BLAKE2b-256 e6a4093b06afb51be9b604f183614eba31a1c7ab5e78bb1d3be0f59d0b1c0364

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page