一个MCP服务器(标准I/O传输),封装了Hugging Face的LocalPythonExecutor(来自smolagents框架)。这是一个自定义的Python运行时环境,在本地运行由LLM生成的Python代码时提供基本的隔离和安全性。它不需要Docker或虚拟机。此包允许通过MCP(模型上下文协议)暴露Python执行器作为LLM应用程序(如Claude Desktop、Cursor或其他兼容MCP的客户端)的工具。对于Claude Desktop,这个工具是一种简单的方法来添加缺失的代码解释器(在ChatGPT中已经可用一段时间的插件)。
run_python工具eva()l,更安全地执行Python代码小心在你的机器上执行LLM生成的代码,避免使用通过命令行或eval()运行Python的MCP服务器。最安全的选择是使用虚拟机或Docker容器,尽管这需要一些设置工作,并消耗资源且速度较慢。也有第三方服务提供Python运行时环境,但它们需要注册、API密钥等。
LocalPythonExecutor提供了直接使用本地Python环境(更容易设置)与远程在Docker容器或虚拟机/第三方服务中执行(更安全)之间的良好平衡。Hugging Face团队投入时间创建了一个快速且安全的选项,用于运行其代码代理使用的LLM生成代码。这个MCP服务器在此基础上构建:
为了增加第一层的安全性,smolagents中的代码执行不是由普通的Python解释器完成的。我们从头开始重建了一个更安全的LocalPythonExecutor。
更多详情请参阅这里。
要通过Smithery自动安装Safe Local Python Executor用于Claude Desktop:
npx -y @smithery/cli install @maxim-saplin/mcp_safe_local_python_executor --client claude
uv(例如,在macOS上使用brew install uv,或参考官方文档)cd mcp_safe_local_python_executoruv run mcp_server.py,虚拟环境会自动创建,依赖项(smollagents, mcp)也会被安装确保已安装Claude Desktop(从claude.ai下载)
编辑Claude 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创建虚拟环境,安装开发依赖项,运行测试:
uv venv .venv
uv sync --group dev
python -m pytest tests/