安全本地Python执行器是一个使用MCP协议(stdio传输)封装Hugging Face的LocalPythonExecutor
(来自 smolagents
框架)的服务器。它作为一个自定义的Python运行时,在本地运行由大语言模型(LLM)生成的代码时,能提供基本隔离和安全性,且无需Docker或虚拟机。此包允许通过MCP(模型上下文协议)将Python执行器作为工具暴露给LLM应用程序,像Claude Desktop、Cursor或其他任何与MCP兼容的客户端都能使用。对于Claude Desktop而言,这是添加缺失的代码解释器(ChatGPT中早已具备)的简单方法。
uv
(例如,macOS上使用brew install uv
或参考官方文档)。cd mcp_safe_local_python_executor
。uv run mcp_server.py
,此时会自动创建虚拟环境,并安装依赖项(smollagents、mcp)。要使用此MCP服务器,请按照以下步骤配置Claude Desktop:
MCP_SERVER_ADDRESS
设置为http://localhost:5000
。run_python
工具。eval()
更安全地执行代码。需小心处理在你机器上运行由LLM生成的代码,要远离通过命令行或使用eval()
运行Python的MCP服务器。最安全的选择是使用VM或Docker容器,尽管这需要一些设置工作量也更大。有第三方服务提供Python运行时,但它们需要注册和API密钥等。
LocalPythonExecutor
在直接使用本地Python环境(更易于设置)和远程执行在Docker容器、虚拟机/第三方服务(更安全)之间提供了良好的平衡。Hugging Face团队花费了大量时间从头开始构建了一个更安全的本地Python执行器,用于其代码代理:
为了增加第一层安全性,smolagents中代码的执行并不是使用原始的Python解释器。我们从头开始重新构建了一个更安全的LocalPythonExecutor。
了解更多此处。
uv
(例如,macOS上使用brew install uv
或参考官方文档)。cd mcp_safe_local_python_executor
。uv run mcp_server.py
,会自动创建虚拟环境,安装依赖项(smollagents、mcp)。# 安装必要的依赖项
pip install uvicorn fastapi
# 创建一个名为mcp_server.py的新文件,并添加以下内容:
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
app = FastAPI()
static_files = StaticFiles(directory=".")
app.mount("/static", static_files)
@app.get("/")
async def root():
return {"message": "MCP服务器已启动"}
uvicorn mcp_server:app --reload
运行上述脚本后,访问http://localhost:5000
即可测试你的MCP服务器。