首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
首页
学习
活动
专区
圈层
工具
MCP广场
MCP广场 >详情页
mcp_safe_local_python_executor2025-05-280分享
github
标准I/O MCP服务器包装了来自Hugging Face的`smolagents`框架的自定义Python运行时(LocalPythonExecutor)。该运行时结合了易于设置的优点(与docker、虚拟机、云运行时相比),同时提供了保护措施,并限制了运行时内允许的操作和导入。
By maxim-saplin
2025-05-280
github
详情内容

安全本地 Python 执行器

smithery 徽章

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

image

特性

  • 暴露 run_python 工具
  • 与直接使用 Python eval() 相比,更安全的 Python 代码执行
  • 通过 uv 在 Python venv 中运行
  • 不允许文件 I/O 操作
  • 受限的导入列表
    • collections
    • datetime
    • itertools
    • math
    • queue
    • random
    • re
    • stat
    • statistics
    • time
    • unicodedata

安全性

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

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

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

阅读更多这里

安装与执行

通过 Smithery 安装

要通过 Smithery 自动为 Claude Desktop 安装安全本地 Python 执行器:

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

手动安装

  1. 安装 uv(例如在 macOS 上使用 brew install uv 或参考官方文档
  2. 克隆仓库,切换目录 cd mcp_safe_local_python_executor
  3. 可以通过命令行启动服务器 uv run mcp_server.py,venv 将自动创建,依赖项(smollagents, mcp)将自动安装

配置 Claude Desktop

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

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

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • 或者打开 Claude Desktop -> 设置 -> 开发者 -> 点击“编辑配置”按钮
  3. 添加以下配置:

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

示例提示

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

  • "使用 Python 计算 5 的阶乘"
  • "创建 100 以内的质数列表"
  • "解这个方程(使用 Python):x^2 + 5x + 6 = 0"

开发

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

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

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档