Safe Local Python Executor
Una herramienta para ejecutar código Python local de forma segura sin necesidad de archivos de datos externos.
Documentación
Safe Local Python Executor
Un servidor MCP (transporte stdio) que envuelve el LocalPythonExecutor de Hugging Face
(del framework smolagents). Es un runtime de Python personalizado que
proporciona aislamiento/seguridad básicos al ejecutar código Python generado por LLMs localmente. No requiere Docker ni VM.
Este paquete permite exponer el ejecutor de Python a través de MCP (Model Context Protocol) como una herramienta para aplicaciones LLM como Claude Desktop, Cursor o cualquier otro cliente compatible con MCP.
En el caso de Claude Desktop, esta herramienta es una forma sencilla de añadir un intérprete de código que falta (disponible como plugin en ChatGPT desde hace bastante tiempo).
Características
- Expone la herramienta
run_python - Ejecución más segura de código Python en comparación con el uso directo de Python
eva()l - Ejecutado mediante uv en un venv de Python
- No se permiten operaciones de E/S de archivos
- Lista restringida de importaciones
- collections
- datetime
- itertools
- math
- queue
- random
- re
- stat
- statistics
- time
- unicodedata
Seguridad
Ten cuidado con la ejecución de código producido por LLM en tu máquina, mantente alejado de servidores MCP que ejecutan Python mediante línea de comandos o usando eval(). La opción más segura es usar una VM o un contenedor Docker, aunque requiere algo de esfuerzo para configurarlo, consume recursos/es más lento. Hay servicios de terceros que proporcionan runtime de Python, aunque requieren registro, claves API, etc.
LocalPythonExecutor proporciona un buen equilibrio entre el uso directo del entorno Python local (que es más fácil de configurar) Y la ejecución remota en un contenedor Docker o una VM/servicio de terceros (que es segura). El equipo de Hugging Face ha invertido tiempo en crear una opción rápida y segura para ejecutar código generado por LLM utilizado por sus agentes de código. Este servidor MCP se basa en ello:
Para añadir una primera capa de seguridad, la ejecución de código en smolagents no se realiza mediante el intérprete Python estándar. Hemos reconstruido un LocalPythonExecutor más seguro desde cero.
Lee más aquí.
Instalación y Ejecución
Instalación mediante Smithery
Para instalar Safe Local Python Executor para Claude Desktop automáticamente mediante Smithery:
npx -y @smithery/cli install @maxim-saplin/mcp_safe_local_python_executor --client claude
Instalación Manual
- Instala
uv(p. ej.brew install uven macOS o usa la documentación oficial) - Clona el repositorio, cambia al directorio
cd mcp_safe_local_python_executor - El servidor se puede iniciar mediante línea de comandos
uv run mcp_server.py, el venv se creará automáticamente, se instalarán las dependencias (smollagents, mcp)
Configurando Claude Desktop
-
Asegúrate de tener Claude for Desktop instalado (descárgalo desde claude.ai)
-
Edita tu archivo de configuración de Claude for Desktop:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - O abre Claude Desktop -> Settings -> Developer -> haz clic en el botón "Edit Config"
- macOS:
-
Añade la siguiente configuración:
{
"mcpServers": {
"safe-local-python-executor": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp_local_python_executor/",
"run",
"mcp_server.py"
]
}
}
}
- Reinicia Claude for Desktop
- La herramienta de ejecución de Python ahora estará disponible en Claude (verás un icono de martillo en el campo de entrada de mensajes)
Ejemplos de Prompts
Una vez configurado, puedes usar prompts como:
- "Calcula el factorial de 5 usando Python"
- "Crea una lista de números primos hasta el 100"
- "Resuelve esta ecuación (usa Python): x^2 + 5x + 6 = 0"
Desarrollo
Clona el repositorio. Usa uv para crear el venv, instalar dependencias de desarrollo y ejecutar pruebas:
uv venv .venv
uv sync --group dev
python -m pytest tests/
