mcp-code-editor


Namemcp-code-editor JSON
Version 0.1.19 PyPI version JSON
download
home_pageNone
SummaryA FastMCP server providing powerful code editing tools
upload_time2025-07-23 02:34:04
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords mcp code-editor fastmcp development-tools
VCS
bugtrack_url
requirements fastmcp pylint pyflakes
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "mcp-code-editor",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "mcp, code-editor, fastmcp, development-tools",
    "author": null,
    "author_email": "MCP Code Editor Team <mcpcodeeditor@example.com>",
    "download_url": "https://files.pythonhosted.org/packages/57/34/7180f96e66eef16032c10e25ffbe75bd4d6c2d4d986afd5716d105f0e3d1/mcp_code_editor-0.1.19.tar.gz",
    "platform": null,
    "description": "# MCP Code Editor\n\nUn servidor MCP (Model Context Protocol) avanzado que proporciona herramientas de edici\u00f3n de c\u00f3digo inteligentes con an\u00e1lisis AST, gesti\u00f3n de proyectos e integraci\u00f3n de consola interactiva.\n\n## \ud83d\ude80 Caracter\u00edsticas Principales\n\n### \ud83d\udd27 Gesti\u00f3n de Proyectos\n- **An\u00e1lisis autom\u00e1tico de estructura de proyecto** con indexaci\u00f3n AST\n- **Filtrado inteligente de archivos** respetando `.gitignore`\n- **Cach\u00e9 de configuraci\u00f3n** para operaciones r\u00e1pidas\n- **Detecci\u00f3n autom\u00e1tica de tipo de proyecto** (Python, JavaScript, etc.)\n\n### \ud83d\udd0d An\u00e1lisis de C\u00f3digo AST\n- **B\u00fasqueda de definiciones** y ubicaciones de uso\n- **An\u00e1lisis de dependencias** entre funciones y clases\n- **Detecci\u00f3n de cambios estructurales** que pueden romper el c\u00f3digo\n- **M\u00e9tricas de c\u00f3digo** autom\u00e1ticas (conteo de funciones, clases, imports)\n\n### \u270f\ufe0f Edici\u00f3n Inteligente de Archivos\n- **Modificaciones precisas** con sistema diff avanzado\n- **Protecci\u00f3n contra cambios cr\u00edticos** con an\u00e1lisis de impacto\n- **Creaci\u00f3n y eliminaci\u00f3n** de archivos con respaldo autom\u00e1tico\n- **Lectura con n\u00fameros de l\u00ednea** y metadatos AST\n\n### \ud83d\udcda Integraci\u00f3n de Librer\u00edas\n- **Indexaci\u00f3n de librer\u00edas externas** (pandas, numpy, requests, etc.)\n- **B\u00fasqueda en librer\u00edas indexadas** para autocompletado\n- **An\u00e1lisis de compatibilidad** entre librer\u00edas\n\n### \ud83d\udda5\ufe0f Consola Interactiva\n- **Procesos de consola inteligentes** (Python, Node.js, CMD)\n- **Detecci\u00f3n autom\u00e1tica** de prompts vs procesos en segundo plano\n- **Gesti\u00f3n de m\u00faltiples procesos** simult\u00e1neos\n- **Captura de salida** con filtrado por tipo\n\n## \ud83d\udce6 Instalaci\u00f3n\n\n```bash\npip install mcp-code-editor\n```\n\n## \u2699\ufe0f Configuraci\u00f3n MCP Client\n\nAgrega la siguiente configuraci\u00f3n a tu cliente MCP:\n\n### Claude Desktop\n\nEdita el archivo de configuraci\u00f3n:\n- **Windows**: `%APPDATA%/Claude/claude_desktop_config.json`\n- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`\n- **Linux**: `~/.config/claude/claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"mcp-code-editor\": {\n      \"command\": \"mcp-code-editor\",\n      \"args\": [],\n      \"env\": {}\n    }\n  }\n}\n```\n\n### Otros Clientes MCP\n\n```json\n{\n  \"servers\": {\n    \"mcp-code-editor\": {\n      \"command\": \"mcp-code-editor\",\n      \"args\": [],\n      \"cwd\": \"/ruta/a/tu/proyecto\"\n    }\n  }\n}\n```\n\n## \ud83d\udee0\ufe0f Herramientas Disponibles\n\n### Gesti\u00f3n de Proyectos\n\n#### `setup_code_editor`\nAnaliza la estructura del proyecto y construye el \u00edndice AST.\n```\nsetup_code_editor(\n    path=\"/ruta/al/proyecto\",\n    analyze_ast=True\n)\n```\n\n#### `project_files`\nObtiene archivos del proyecto con filtros opcionales.\n```\nproject_files(\n    filter_extensions=[\".py\", \".js\"],\n    max_depth=3,\n    format_as_tree=True\n)\n```\n\n### An\u00e1lisis de C\u00f3digo\n\n#### `get_code_definition`\nBusca definiciones y ubicaciones de uso de cualquier identificador.\n```\nget_code_definition(\n    identifier=\"function_name\",\n    definition_type=\"function\",\n    include_usage=True\n)\n```\n\n#### `read_file_with_lines`\nLee archivos con n\u00fameros de l\u00ednea y metadatos AST para Python.\n```\nread_file_with_lines(\n    path=\"archivo.py\",\n    start_line=10,\n    end_line=50\n)\n```\n\n### Edici\u00f3n de Archivos\n\n#### `apply_diff_tool`\nAplica modificaciones precisas con an\u00e1lisis de dependencias autom\u00e1tico.\n```\napply_diff_tool(\n    path=\"archivo.py\",\n    blocks=[\n        {\n            \"start_line\": 15,\n            \"end_line\": 17,\n            \"search_content\": \"def old_function():\",\n            \"replace_content\": \"def new_function():\"\n        }\n    ],\n    force=False\n)\n```\n\n#### `create_file_tool`\nCrea nuevos archivos con contenido.\n```\ncreate_file_tool(\n    path=\"nuevo_archivo.py\",\n    content=\"print('Hello World')\",\n    overwrite=False\n)\n```\n\n#### `delete_file_tool`\nElimina archivos con opci\u00f3n de respaldo.\n```\ndelete_file_tool(\n    path=\"archivo_obsoleto.py\",\n    create_backup=True\n)\n```\n\n### Integraci\u00f3n de Librer\u00edas\n\n#### `index_library_tool`\nIndexa librer\u00edas externas para an\u00e1lisis.\n```\nindex_library_tool(\n    library_name=\"pandas\",\n    include_private=False\n)\n```\n\n#### `search_library_tool`\nBusca definiciones en librer\u00edas indexadas.\n```\nsearch_library_tool(\n    library_name=\"pandas\",\n    query=\"DataFrame\",\n    definition_type=\"class\"\n)\n```\n\n#### `list_indexed_libraries_tool`\nLista todas las librer\u00edas indexadas.\n```\nlist_indexed_libraries_tool()\n```\n\n### Consola Interactiva\n\n#### `start_console_process_tool`\nInicia procesos de consola interactivos.\n```\nstart_console_process_tool(\n    command=\"python -u -i\",\n    working_dir=\"/ruta/al/proyecto\",\n    name=\"python_session\"\n)\n```\n\n#### `send_to_console_tool`\nEnv\u00eda entrada a procesos de consola con detecci\u00f3n inteligente.\n```\nsend_to_console_tool(\n    process_id=\"process_id\",\n    input_text=\"print('Hello')\",\n    wait_for_response=True,\n    force_send=False\n)\n```\n\n#### `check_console_tool`\nObtiene instant\u00e1nea de salida de consola.\n```\ncheck_console_tool(\n    process_id=\"process_id\",\n    wait_seconds=2,\n    lines=50,\n    filter_type=\"stdout\"\n)\n```\n\n#### `list_console_processes_tool`\nLista procesos de consola activos.\n```\nlist_console_processes_tool(\n    include_terminated=False,\n    summary_only=True\n)\n```\n\n#### `terminate_console_process_tool`\nTermina procesos de consola.\n```\nterminate_console_process_tool(\n    process_id=\"process_id\",\n    force=False,\n    timeout=10\n)\n```\n\n## \ud83d\udd10 Caracter\u00edsticas de Seguridad\n\n### Protecci\u00f3n Inteligente\n- **An\u00e1lisis de impacto** antes de modificaciones cr\u00edticas\n- **Bloqueo autom\u00e1tico** de cambios que pueden romper m\u00faltiples archivos\n- **Advertencias de dependencias** y archivos afectados\n- **Sugerencias de revisi\u00f3n** basadas en el an\u00e1lisis AST\n\n### Detecci\u00f3n de Entrada Inteligente\n- **Prevenci\u00f3n autom\u00e1tica** de env\u00edo de comandos a procesos en segundo plano\n- **Detecci\u00f3n de prompts** vs procesos ejecut\u00e1ndose\n- **Modo force** para se\u00f1ales de control (Ctrl+C)\n\n## \ud83d\udca1 Casos de Uso\n\n### Desarrollo Automatizado\n```\n1. Configurar proyecto: setup_code_editor\n2. Analizar estructura: project_files\n3. Buscar funci\u00f3n: get_code_definition\n4. Modificar c\u00f3digo: apply_diff_tool\n5. Probar cambios: start_console_process_tool\n```\n\n### Refactoring Inteligente\n```\n1. Encontrar todas las ubicaciones: get_code_definition\n2. Analizar dependencias: apply_diff_tool (sin force)\n3. Revisar impacto: analizar warnings\n4. Aplicar cambios: apply_diff_tool (con force si necesario)\n```\n\n### Exploraci\u00f3n de C\u00f3digo\n```\n1. Indexar librer\u00edas: index_library_tool\n2. Buscar en librer\u00edas: search_library_tool\n3. Leer c\u00f3digo con contexto: read_file_with_lines\n4. Analizar dependencias: get_code_definition\n```\n\n## \ud83d\udc1b Mejores Pr\u00e1cticas\n\n### Comandos de Consola Recomendados\n- **Python**: `python -u -i` (modo unbuffered + interactivo)\n- **Node.js**: `node` (REPL por defecto)\n- **Windows CMD**: `cmd`\n- **PowerShell**: `powershell`\n- **Bash**: `bash`\n\n### Workflow de Edici\u00f3n Segura\n1. Siempre usar `apply_diff_tool` sin `force=True` primero\n2. Revisar warnings y an\u00e1lisis de dependencias\n3. Solo usar `force=True` cuando est\u00e9s seguro\n4. Usar `get_code_definition` para entender el impacto\n\n### Gesti\u00f3n de Procesos\n- Usar `check_console_tool` con `wait_seconds` apropiado\n- Verificar estado con `list_console_processes_tool`\n- Limpiar procesos terminados con `cleanup_terminated_processes_tool`\n\n## \ud83d\udcda Documentaci\u00f3n Adicional\n\n- [Gu\u00eda de API MCP](https://modelcontextprotocol.io/)\n- [FastMCP Framework](https://github.com/jlowin/fastmcp)\n- [Repositorio del Proyecto](https://github.com/alejoair/mcp-code-editor)\n\n## \ud83e\udd1d Contribuciones\n\nLas contribuciones son bienvenidas. Por favor:\n\n1. Fork el repositorio\n2. Crea una rama para tu feature\n3. A\u00f1ade tests si es necesario\n4. Env\u00eda un Pull Request\n\n## \ud83d\udcc4 Licencia\n\nMIT License - ver archivo [LICENSE](LICENSE) para detalles.\n\n## \ud83d\udd17 Enlaces\n\n- **PyPI**: https://pypi.org/project/mcp-code-editor/\n- **GitHub**: https://github.com/alejoair/mcp-code-editor\n- **Documentaci\u00f3n**: https://alejoair.github.io/mcp-code-editor/\n- **Issues**: https://github.com/alejoair/mcp-code-editor/issues\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A FastMCP server providing powerful code editing tools",
    "version": "0.1.19",
    "project_urls": {
        "Bug Reports": "https://github.com/alejoair/mcp-code-editor/issues",
        "Changelog": "https://github.com/alejoair/mcp-code-editor/releases",
        "Documentation": "https://alejoair.github.io/mcp-code-editor/",
        "Homepage": "https://github.com/alejoair/mcp-code-editor",
        "Source": "https://github.com/alejoair/mcp-code-editor"
    },
    "split_keywords": [
        "mcp",
        " code-editor",
        " fastmcp",
        " development-tools"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d74071a94eebc8f1b1eb402b9cfc2e9f40ffc162b4e7aef363a8f66980b60605",
                "md5": "fc5e3c24c99c5b62e865e24ce2a1480b",
                "sha256": "97a22fa14ca949d5cf7282de2021eb2f9d083ca40c3d9dfba5803a755e4f64ab"
            },
            "downloads": -1,
            "filename": "mcp_code_editor-0.1.19-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "fc5e3c24c99c5b62e865e24ce2a1480b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 63724,
            "upload_time": "2025-07-23T02:34:03",
            "upload_time_iso_8601": "2025-07-23T02:34:03.509693Z",
            "url": "https://files.pythonhosted.org/packages/d7/40/71a94eebc8f1b1eb402b9cfc2e9f40ffc162b4e7aef363a8f66980b60605/mcp_code_editor-0.1.19-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "57347180f96e66eef16032c10e25ffbe75bd4d6c2d4d986afd5716d105f0e3d1",
                "md5": "bb72d4127dae92668af2053b4a33afdd",
                "sha256": "e45856f53f84a5abadd86a03e17450b0739a34a00f7b6927d4b07a3ed9e24edb"
            },
            "downloads": -1,
            "filename": "mcp_code_editor-0.1.19.tar.gz",
            "has_sig": false,
            "md5_digest": "bb72d4127dae92668af2053b4a33afdd",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 60970,
            "upload_time": "2025-07-23T02:34:04",
            "upload_time_iso_8601": "2025-07-23T02:34:04.670760Z",
            "url": "https://files.pythonhosted.org/packages/57/34/7180f96e66eef16032c10e25ffbe75bd4d6c2d4d986afd5716d105f0e3d1/mcp_code_editor-0.1.19.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-23 02:34:04",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "alejoair",
    "github_project": "mcp-code-editor",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "fastmcp",
            "specs": [
                [
                    ">=",
                    "2.8.0"
                ]
            ]
        },
        {
            "name": "pylint",
            "specs": [
                [
                    ">=",
                    "3.0.0"
                ]
            ]
        },
        {
            "name": "pyflakes",
            "specs": [
                [
                    ">=",
                    "3.0.0"
                ]
            ]
        }
    ],
    "lcname": "mcp-code-editor"
}
        
Elapsed time: 1.49316s