mcpField
S
Safe Local Python Executor

Safe Local Python Executor

本地服务
github.com/maxim-saplin云与基础设施4867 周前更新

关于 Safe Local Python Executor

Safe Local Python Executor 是基于 smolagents 中 LocalPythonExecutor 的 stdio MCP 服务,可在本地安全执行 LLM 生成的 Python 代码,无需 Docker 或虚拟机。它面向使用 Claude Desktop、Cursor 等客户端的用户,并限制文件 I/O 与可导入的模块。

主要功能

  1. 01提供 run_python 工具
  2. 02禁止文件 I/O 操作
  3. 03限制可导入的模块列表
  4. 04通过 uv 在虚拟环境中运行
  5. 05无需 Docker 或虚拟机

适用场景

  1. 01为 Claude Desktop 添加代码解释器功能
  2. 02在本地执行 LLM 生成的数学或数据计算代码

MCP 相关

该服务以 stdio 方式运行,向 MCP 客户端暴露 run_python 工具,用于执行 Python 代码。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

安全的本地 Python 执行器

一个 MCP 服务(stdio 传输),封装了 Hugging Face 的 LocalPythonExecutor (来自 smolagents 框架)。它是一个自定义 Python 运行时,在本地运行由大模型生成的 Python 代码时提供基本的隔离和安全性。它不需要 Docker 或 VM。 此软件包允许通过 MCP(模型上下文协议)将 Python 执行器作为工具提供给 Claude Desktop、Cursor 或任何其他兼容 MCP 的客户端等大模型应用。 对于 Claude Desktop 来说,此工具可以轻松补上缺失的代码解释器(ChatGPT 早已将其作为插件提供)。

图片

功能

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

安全性

在你的机器上执行大模型生成的代码时请务必谨慎,避免使用通过命令行或 eval() 运行 Python 的 MCP 服务。最安全的选择是使用 VM 或 Docker 容器,但这需要花费一些精力进行设置,也会占用资源/运行较慢。虽然有第三方服务提供 Python 运行时,但它们需要注册、API 密钥等。

LocalPythonExecutor 在直接使用本地 Python 环境(更容易设置)与远程执行(使用 Docker 容器、VM 或第三方服务,更安全)之间提供了良好的平衡。Hugging Face 团队投入时间,为其编码 Agent 使用的大模型生成代码创建了一种快速、安全的运行方式。此 MCP 服务基于它构建:

为了增加第一层安全保障,smolagents 中的代码执行并不使用原生 Python 解释器。我们从头开始重新构建了一个更安全的 LocalPythonExecutor。

阅读更多内容。

安装和运行

通过 Smithery 安装

若要通过 Smithery 为 Claude Desktop 自动安装 Safe Local Python Executor:

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 -> Settings -> Developer -> 点击“Edit Config”按钮
  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 创建虚拟环境、安装开发依赖并运行测试:

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

README 配图

smithery badge

MseeP.ai Security Assessment Badge

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。