本地Python执行器

一个安全的本地Python执行器,为LLM应用提供基本的隔离和安全性,无需Docker或虚拟机。

  • by maxim-saplin
  • Python
  • 本地部署
  • 48 星标
  • 更新于
在 GitHub 查看 maxim-saplin/mcp_safe_local_python_executor

使用说明

安全的本地Python执行器

封装Hugging Face的MCP服务器(stdio传输) LocalPythonExecutor (从 smolagents 框架)。这是一个自定义的Python运行时 在本地运行LLM生成的Python代码时提供基本的隔离/安全性。它不需要Docker或VM。 此包允许通过MCP(模型上下文协议)公开Python执行器,作为Claude Desktop、Cursor或任何其他MCP兼容客户端等LLM应用程序的工具。 对于Claude Desktop,此工具是添加缺失的代码解释器的一种简单方法(作为ChatGPT中的插件已经有一段时间了)。

特性

  • 暴露 run_python 工具
  • 与直接使用Python相比,更安全地执行Python代码 eva()l
  • 在Python venv中通过uv运行
  • 不允许文件I/O操作
  • 进口限制清单
    • 收藏
    • 日期时间
    • itertools
    • 数学
    • 队列
    • 随机
    • 关于
    • 状态
    • 统计
    • 时间
    • 独角兽数据

安全

在您的机器上执行LLM生成的代码时要小心,远离通过命令行或使用 eval()最安全的选择是使用VM或docker容器,尽管它需要一些努力来设置,消耗资源/速度较慢。有第三方服务提供Python运行时,尽管它们需要注册、API密钥等。

LocalPythonExecutor 在直接使用本地Python环境(更容易设置)和在Dokcer容器或VM/第三方服务中远程执行(更安全)之间提供了良好的平衡。Hugginng Face团队投入时间创建了一个快速安全的选项,用于运行其代码代理使用的LLM生成的代码。此MCP服务器在此基础上构建:

为了增加第一层安全性,smolagents中的代码执行不是由vanilla Python解释器执行的。我们从头开始重新构建了一个更安全的LocalPythonExecutor。

阅读更多 这里.

安装和执行

通过Smithery安装

通过以下方式自动安装Claude Desktop的安全本地Python执行器 史密瑟里:

npx -y @smithery/cli install @maxim-saplin/mcp_safe_local_python_executor --client claude

手动安装

  1. 安装 uv (e.h。 brew install uv 在macOS上或使用 官方文件)
  2. 克隆仓库,更改目录 cd mcp_safe_local_python_executor
  3. 服务器可以通过命令行启动 uv run mcp_server.py,将自动创建venv,将安装依赖项(smollagents、mcp)

配置Claude桌面

  1. 确保您已安装Claude for Desktop(从下载 claude.ai)

  2. 编辑您的Claude for Desktop配置文件:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 窗户: %APPDATA%\Claude\claude_desktop_config.json
    • 或者打开克劳德桌面->设置->开发人员->点击“编辑配置”按钮
  3. 添加以下配置:

{
    "mcpServers": {
        "safe-local-python-executor": {
            "command": "uv",
            "args": [
                "--directory", 
                "/path/to/mcp_local_python_executor/",
                "run",
                "mcp_server.py"
            ]
        }
    }
}
  1. 重新启动桌面版的Claude
  2. Python执行器工具现在将在Claude中可用(您将在消息输入字段中看到锤子图标)

示例提示

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

  • “使用Python计算5的阶乘”
  • “创建一个最多100的素数列表”
  • “求解此方程(使用Python):x^2+5x+6=0”

发展

克隆仓库。使用 uv 要创建venv,安装dev依赖项,运行测试:

uv venv .venv
uv sync --group dev
python -m pytest tests/