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.16.tar.gz (60.8 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.16-py3-none-any.whl (63.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mcp_code_editor-0.1.16.tar.gz
  • Upload date:
  • Size: 60.8 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.16.tar.gz
Algorithm Hash digest
SHA256 0a75d16e6ac62b4989d5e083e0972c8a72ee1794666393b62a6e4a781dd3e27b
MD5 a4561f0572b220339abcf56350e8cde7
BLAKE2b-256 33d3150b5088fe5306f5085fb1e5df0a8f5cce9c623049af9c1729e88273e14e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mcp_code_editor-0.1.16-py3-none-any.whl
Algorithm Hash digest
SHA256 59bbaf7546bc085c8e8a79025e0626e4bce062e87b6f812b53d74a4ce5562098
MD5 bf1e480622cf6912bfdd07f217e1c75d
BLAKE2b-256 0177b2ef130acf3813627fe97b96566cde292f2f0aa86d9ea5bb68a441c9c504

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