Safe Local Python Executor

Safe Local Python Executor

site icon
2025.04.03 10
Python代码解释器Python 执行环境开发效率
mcp_safe_local_python_executor 是一个基于 MCP(Model Context Protocol)的服务,它封装了 Hugging Face 的 LocalPythonExecutor,提供了一个安全的本地 Python 执行环境。该服务旨在为 LLM 应用(如 Claude Desktop、Cursor 等)提供一个安全的代码解释器工具,允许在本地运行由 LLM 生成的 Python 代码,同时提供基本的安全隔离。
View on GitHub

Overview

基本能力

产品定位

mcp_safe_local_python_executor 是一个安全的本地 Python 执行器,专为 LLM 应用设计,提供代码解释器功能。

核心功能

  • 提供 run_python 工具,用于执行 Python 代码。
  • 比直接使用 Python eval() 更安全的代码执行环境。
  • 通过 uv 在 Python 虚拟环境中运行。
  • 禁止文件 I/O 操作。
  • 限制可导入的模块列表,包括:
  • collections
  • datetime
  • itertools
  • math
  • queue
  • random
  • re
  • stat
  • statistics
  • time
  • unicodedata

适用场景

  • 为 LLM 应用(如 Claude Desktop)提供代码解释器功能。
  • 安全地执行由 LLM 生成的 Python 代码。
  • 快速原型开发和测试 Python 代码片段。

工具列表

  • run_python:执行 Python 代码的工具。

常见问题解答

  • 安全性:虽然比直接使用 eval() 更安全,但仍需谨慎执行 LLM 生成的代码。最安全的选项是使用 VM 或 Docker 容器。
  • 依赖:需要安装 uv 工具。

使用教程

使用依赖

  1. 安装 uv 工具:
  2. macOS: brew install uv
  3. 其他平台参考 官方文档

安装教程

  1. 克隆仓库:git clone <repo_url>
  2. 进入目录:cd mcp_safe_local_python_executor
  3. 启动服务:uv run mcp_server.py

调试方式

  1. 创建虚拟环境:uv venv .venv
  2. 安装开发依赖:uv sync --group dev
  3. 运行测试:python -m pytest tests/

配置 Claude Desktop

  1. 确保已安装 Claude Desktop(从 claude.ai 下载)。
  2. 编辑 Claude Desktop 配置文件:
  3. macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  4. Windows: %APPDATA%\Claude\claude_desktop_config.json
  5. 或通过 Claude Desktop 的设置 -> 开发者 -> 点击 "Edit Config" 按钮。
  6. 添加以下配置:
{
    "mcpServers": {
        "safe-local-python-executor": {
            "command": "uv",
            "args": [
                "--directory", 
                "/path/to/mcp_local_python_executor/",
                "run",
                "mcp_server.py"
            ]
        }
    }
}
  1. 重启 Claude Desktop。
  2. Python 执行器工具将在 Claude 中可用(消息输入字段中会出现锤子图标)。

示例提示

配置完成后,可以使用以下提示:

  • "Calculate the factorial of 5 using Python"
  • "Create a list of prime numbers up to 100"
  • "Solve this equation (use Python): x^2 + 5x + 6 = 0"

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。