CodeSavant

by twolven
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Provides version control capabilities for tracking and managing code changes, allowing users to revert to previous versions

  • Enables execution of Node.js code using the node command

  • Enables execution of Python code through the system Python interpreter

MCP-CodeSavant

CodeSavant es un proyecto WIP.

CodeSavant es un servidor de Protocolo de Contexto de Modelo (MCP) que ofrece funciones de manipulación, ejecución y control de versiones de código. Permite a los asistentes de IA leer, escribir y ejecutar código, manteniendo un historial de cambios.

Características

  • Leer y escribir archivos de código con operaciones específicas de línea
  • Ejecutar código en múltiples lenguajes de programación (Python, Node.js)
  • Ejecutar comandos de shell en un entorno controlado
  • Realice un seguimiento y gestione los cambios de código con el control de versiones
  • Buscar dentro de los archivos de código
  • Revertir a versiones anteriores del código

Instalación

  1. Clonar el repositorio:
git clone https://github.com/twolven/mcp-codesavant.git cd mcp-codesavant
  1. Instale las dependencias necesarias:
pip install -r requirements.txt
  1. Agregue la configuración del servidor a su config.json de Claude Desktop:
{ "mcpServers": { "codesavant": { "command": "python", "args": ["path/to/codesavant.py"] } } }

Estructura del directorio

El servidor crea y administra la siguiente estructura de directorio:

workspaces/ ├── project1/ │ ├── .code_history.json │ └── [code files] ├── project2/ │ ├── .code_history.json │ └── [code files] └── ...

Referencia de herramientas

Uso detallado

1. leer_archivo_de_código

Leer el contenido de un archivo de código, buscando opcionalmente secciones específicas.

{ "project": "string", // Project name "path": "string", // Path to file relative to project workspace "search": "string" // (Optional) Text/pattern to search for in file }

Respuesta:

{ "success": true, "timestamp": 1234567890, "data": { "content": "string", // File content "start_line": number, // (Only if search used) Starting line of found section "end_line": number // (Only if search used) Ending line of found section } }

2. escribir_archivo_de_código

Escribir o actualizar líneas específicas en un archivo de código.

{ "project": "string", // Project name "path": "string", // Path to file relative to workspace "content": "string", // Content to write (just the lines being changed) "start_line": number, // Starting line number for the change "end_line": number // (Optional) Ending line number for the change }

Respuesta:

{ "success": true, "timestamp": 1234567890, "data": { "diff": { "changes": [ // List of changes made [string, number, number, number, number] // (type, old_start, old_end, new_start, new_end) ], "timestamp": number // When the change was made } } }

3. obtener_historial_de_código

Obtener el historial de cambios de un archivo de código.

{ "path": "string" // Path to file relative to workspace }

Respuesta:

{ "success": true, "timestamp": 1234567890, "data": { "history": [ { "changes": [ // List of changes made [string, number, number, number, number] ], "timestamp": number } ] } }

4. ejecutar_código_comando

Ejecutar un comando de shell relacionado con el código.

{ "command": "string", // Shell command to execute "timeout": number // (Optional) Command timeout in seconds (default: 30) }

Respuesta:

{ "success": true, "timestamp": 1234567890, "data": { "state": "success|error|timeout|cancelled", "output": "string", // Command output "error": "string", // Error message if any "runtime": number, // Execution time in seconds "exit_code": number // Command exit code } }

5. código_de_ejecución

Ejecutar código en el lenguaje especificado.

{ "code": "string", // Code to execute "language": "string", // Programming language ("python" or "node") "timeout": number // (Optional) Execution timeout in seconds (default: 30) }

Respuesta:

{ "success": true, "timestamp": 1234567890, "data": { "state": "success|error|timeout|cancelled", "output": "string", // Code execution output "error": "string", // Error message if any "runtime": number, // Execution time in seconds "exit_code": number // Execution exit code } }

6. revertir a la versión

Revertir un archivo de código a una versión específica.

{ "path": "string", // Path to file relative to workspace "timestamp": number // Timestamp of version to revert to }

Respuesta:

{ "success": true, "timestamp": 1234567890, "data": { "diff": { "changes": [ // List of changes made [string, number, number, number, number] ], "timestamp": number // When the reversion was made } } }

7. líneas de archivo de código de lectura

Leer líneas específicas de un archivo de código.

{ "project": "string", // Project name "path": "string", // Path to file relative to project workspace "start_line": number, // Starting line number to read "end_line": number // (Optional) Ending line number to read }

Respuesta:

{ "success": true, "timestamp": 1234567890, "data": { "content": "string" // Content of the specified lines } }

Manejo de errores

El servidor proporciona respuestas de error detalladas en el siguiente formato:

{ "success": false, "timestamp": 1234567890, "data": null, "error": "Error message" }

Los tipos de error incluyen:

  • CodeFileError : Errores de operación de archivo
  • CodeValidationError : Errores de validación de código
  • CodeExecutionError : Errores de ejecución de código

Soporte de idiomas

Idiomas actualmente admitidos para la ejecución de código:

  • Python (usando el intérprete del sistema Python)
  • Node.js (usando el comando node)

Cada ejecución de lenguaje crea un archivo temporal en el directorio del espacio de trabajo y lo ejecuta con el intérprete apropiado.

Contribuyendo

  1. Bifurcar el repositorio
  2. Crea tu rama de funciones
  3. Confirme sus cambios
  4. Empujar hacia la rama
  5. Crear una nueva solicitud de extracción

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

Autor

Todd Wolven - ( https://github.com/twolven )

Expresiones de gratitud

  • Construido con el Protocolo de Contexto de Modelo (MCP) de Anthropic
  • Desarrollado para su uso con Claude de Anthropic
-
security - not tested
A
license - permissive license
-
quality - not tested

Proporciona capacidades de manipulación, ejecución y control de versiones de código. Permite a los asistentes de IA leer, escribir y ejecutar código, manteniendo un historial de cambios.

  1. Features
    1. Installation
      1. Directory Structure
        1. Tool Reference
          1. Detailed Usage
        2. Error Handling
          1. Language Support
            1. Contributing
              1. License
                1. Author
                  1. Acknowledgments
                    ID: rd4pozqg9r