Mcp_safe_local_python_executor

Mcp_safe_local_python_executor

🚀 安全本地Python执行器

安全本地Python执行器是一个使用MCP协议(stdio传输)封装Hugging Face的LocalPythonExecutor(来自 smolagents 框架)的服务器。它作为一个自定义的Python运行时,在本地运行由大语言模型(LLM)生成的代码时,能提供基本隔离和安全性,且无需Docker或虚拟机。此包允许通过MCP(模型上下文协议)将Python执行器作为工具暴露给LLM应用程序,像Claude Desktop、Cursor或其他任何与MCP兼容的客户端都能使用。对于Claude Desktop而言,这是添加缺失的代码解释器(ChatGPT中早已具备)的简单方法。

🚀 快速开始

安装与运行

  1. 安装uv(例如,macOS上使用brew install uv或参考官方文档)。
  2. 克隆仓库,进入目录cd mcp_safe_local_python_executor
  3. 通过命令行运行服务器uv run mcp_server.py,此时会自动创建虚拟环境,并安装依赖项(smollagents、mcp)。

配置Claude Desktop

要使用此MCP服务器,请按照以下步骤配置Claude Desktop:

  1. 打开Claude Desktop的设置。
  2. 在“实验”部分启用“自定义MCP服务器”。
  3. MCP_SERVER_ADDRESS设置为http://localhost:5000
  4. 启动Claude Desktop。

✨ 主要特性

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

🔧 技术细节

安全性

需小心处理在你机器上运行由LLM生成的代码,要远离通过命令行或使用eval()运行Python的MCP服务器。最安全的选择是使用VM或Docker容器,尽管这需要一些设置工作量也更大。有第三方服务提供Python运行时,但它们需要注册和API密钥等。

LocalPythonExecutor在直接使用本地Python环境(更易于设置)和远程执行在Docker容器、虚拟机/第三方服务(更安全)之间提供了良好的平衡。Hugging Face团队花费了大量时间从头开始构建了一个更安全的本地Python执行器,用于其代码代理:

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

了解更多此处

📦 安装指南

  1. 安装uv(例如,macOS上使用brew install uv或参考官方文档)。
  2. 克隆仓库,进入目录cd mcp_safe_local_python_executor
  3. 通过命令行运行服务器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服务器。

  • 0 关注
  • 0 收藏,10 浏览
  • system 提出于 2025-09-30 03:03

相似服务问题