关于 Safe Local Python Executor
Safe Local Python Executor 是基于 smolagents 中 LocalPythonExecutor 的 stdio MCP 服务,可在本地安全执行 LLM 生成的 Python 代码,无需 Docker 或虚拟机。它面向使用 Claude Desktop、Cursor 等客户端的用户,并限制文件 I/O 与可导入的模块。
主要功能
- 01提供 run_python 工具
- 02禁止文件 I/O 操作
- 03限制可导入的模块列表
- 04通过 uv 在虚拟环境中运行
- 05无需 Docker 或虚拟机
适用场景
- 01为 Claude Desktop 添加代码解释器功能
- 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
手动安装
- 安装
uv(例如,在 macOS 上运行brew install uv,或使用官方文档) - 克隆仓库,并切换目录
cd mcp_safe_local_python_executor - 可通过命令行启动服务:
uv run mcp_server.py,系统会自动创建 venv,并安装依赖项(smollagents、mcp)
配置 Claude Desktop
-
确保已安装 Claude for Desktop(从 claude.ai 下载)
-
编辑 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”按钮
- macOS:
-
添加以下配置:
{
"mcpServers": {
"safe-local-python-executor": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp_local_python_executor/",
"run",
"mcp_server.py"
]
}
}
}
- 重启 Claude for Desktop
- Python 执行器工具现在可在 Claude 中使用(你会在消息输入框中看到锤子图标)
示例提示词
配置完成后,你可以使用以下提示词:
- “使用 Python 计算 5 的阶乘”
- “生成一个不超过 100 的素数列表”
- “求解此方程(使用 Python):x^2 + 5x + 6 = 0”
开发
克隆仓库。使用 uv 创建虚拟环境、安装开发依赖并运行测试:
uv venv .venv
uv sync --group dev
python -m pytest tests/
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
