这是一个 MCP 服务器(stdio 传输),封装了 Hugging Face 的 LocalPythonExecutor
(来自 smolagents
框架)。它是一个自定义的 Python 运行时,在本地运行由 LLM 生成的 Python 代码时提供基本的隔离/安全性。它不需要 Docker 或虚拟机。这个包允许通过 MCP(模型上下文协议)将 Python 执行器暴露为 LLM 应用程序(如 Claude Desktop、Cursor 或任何其他 MCP 兼容客户端)的工具。对于 Claude Desktop 来说,这个工具是添加缺失的代码解释器(已在 ChatGPT 中作为插件提供了一段时间)的简单方法。
run_python
工具eval()
相比,更安全的 Python 代码执行在您的机器上执行由 LLM 生成的代码时要小心,远离通过命令行或使用 eval()
运行 Python 的 MCP 服务器。最安全的选择是使用虚拟机或 Docker 容器,尽管这需要一些设置工作,并且会消耗资源/速度较慢。有一些第三方服务提供 Python 运行时,但它们需要注册、API 密钥等。
LocalPythonExecutor
在直接使用本地 Python 环境(更容易设置)和在 Docker 容器或虚拟机/第三方服务中远程执行(更安全)之间提供了良好的平衡。Hugging Face 团队投入了时间来创建一个快速且安全的选项,以运行其代码代理使用的 LLM 生成的代码。这个 MCP 服务器在此基础上构建:
为了增加第一层安全性,smolagents 中的代码执行不是由普通的 Python 解释器执行的。我们从头开始重新构建了一个更安全的 LocalPythonExecutor。
阅读更多这里。
要通过 Smithery 自动为 Claude Desktop 安装安全本地 Python 执行器:
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 for Desktop(从 claude.ai 下载)
编辑您的 Claude for Desktop 配置文件:
~/Library/Application Support/Claude/claude_desktop_config.json
%APPDATA%\Claude\claude_desktop_config.json
添加以下配置:
{
"mcpServers": {
"safe-local-python-executor": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp_local_python_executor/",
"run",
"mcp_server.py"
]
}
}
}

配置完成后,您可以使用以下提示:
克隆仓库。使用 uv
创建 venv,安装开发依赖项,运行测试:
uv venv .venv uv sync --group dev python -m pytest tests/