Python Interpreter MCP

Un servidor MCP que proporciona capacidades de ejecución de código Python a través de una interfaz de API REST.

Documentación

Python Interpreter MCP

Un servidor de Model Context Protocol (MCP) que proporciona capacidades de ejecución de código Python a través de una interfaz de API REST.

Descripción general

Este servidor MCP expone una única herramienta execute_python_code que permite a los asistentes de IA y otros clientes MCP ejecutar código Python de forma remota. El servidor actúa como un puente entre los clientes MCP y un servicio de API REST de intérprete de Python.

Características

  • Ejecutar código Python arbitrario a través de MCP
  • Devuelve resultados de ejecución completos, incluidos stdout, stderr, códigos de salida y archivos generados
  • Construido con FastMCP para un desarrollo sencillo de servidores MCP
  • Cliente HTTP asíncrono para una comunicación fiable con el servicio de intérprete de Python

Requisitos previos

  • Python 3.11 o superior
  • Un servicio de API REST de intérprete de Python ejecutándose en localhost:50081 (como BeeAI Code Interpreter)

Instalación

  1. Clona este repositorio:

    git clone <repository-url>
    cd python-interpreter-mcp
    
  2. Instala las dependencias con uv:

    uv sync
    

Uso

Ejecutar el servidor MCP

Inicia el servidor MCP:

python main.py

El servidor se iniciará y expondrá la herramienta execute_python_code a través del protocolo MCP.

Añadir a Claude Desktop

Añade esta configuración a los ajustes MCP de Claude Desktop:

{
  "mcpServers": {
    "python-interpreter": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/python-interpreter-mcp",
        "run",
        "main.py"
      ]
    }
  }
}

Reemplaza /path/to/python-interpreter-mcp con la ruta real a tu directorio de proyecto.

Herramienta: execute_python_code

Ejecuta código Python mediante un servicio de intérprete remoto.

Parámetros:

  • source_code (cadena): El código Python a ejecutar

Devuelve: Un diccionario que contiene:

  • stdout: Salida estándar de la ejecución de Python
  • stderr: Salida de error estándar (si la hay)
  • exit_code: Código de salida del proceso de Python
  • files: Archivos generados durante la ejecución

Ejemplo de uso:

# Through an MCP client
result = await execute_python_code("print('Hello, World!')")
# Returns: {"stdout": "Hello, World!\n", "stderr": "", "exit_code": 0, "files": {}}

Configuración

El servidor está configurado para conectarse a una API REST de intérprete de Python en:

  • URL: http://localhost:50081/v1/execute
  • Método: POST
  • Content-Type: application/json

Para usar un servicio de intérprete diferente, modifica la URL en main.py:23.

Manejo de errores

El servidor gestiona diversas condiciones de error:

  • Errores de solicitud: Problemas de conectividad de red
  • Errores HTTP: Errores del servicio de API (respuestas 4xx/5xx)
  • Errores de tiempo de espera: Ejecución de código de larga duración

Todos los errores se devuelven en el formato de respuesta estándar con mensajes de error apropiados en el campo stderr.

Dependencias

  • fastmcp: Marco de trabajo para servidores MCP
  • httpx: Cliente HTTP asíncrono para la comunicación con la API

Licencia

Licencia MIT