返回市场
MCP本地安全Python执行器

MCP本地安全Python执行器

作者:maxim-saplin38 星标更新:2025-07-17

项目介绍

安全本地Python执行器

一个MCP服务器(标准I/O传输),封装了Hugging Face的LocalPythonExecutor(来自smolagents框架)。这是一个自定义的Python运行时环境,在本地运行由LLM生成的Python代码时提供基本的隔离和安全性。它不需要Docker或虚拟机。此包允许通过MCP(模型上下文协议)暴露Python执行器作为LLM应用程序(如Claude Desktop、Cursor或其他兼容MCP的客户端)的工具。对于Claude Desktop,这个工具是一种简单的方法来添加缺失的代码解释器(在ChatGPT中已经可用一段时间的插件)。

<img width="1032" alt="image" src="https://gips3.baidu.com/it/u=3344789872,130807450&fm=3081&app=3081&f=PNG?w=2064&h=1856" />

功能

  • 暴露run_python工具
  • 相比直接使用Python eva()l,更安全地执行Python代码
  • 通过uv在Python虚拟环境中运行
  • 不允许进行文件I/O操作
  • 限制的导入列表
    • collections
    • datetime
    • itertools
    • math
    • queue
    • random
    • re
    • stat
    • statistics
    • time
    • unicodedata

安全性

小心在你的机器上执行LLM生成的代码,避免使用通过命令行或eval()运行Python的MCP服务器。最安全的选择是使用虚拟机或Docker容器,尽管这需要一些设置工作,并消耗资源且速度较慢。也有第三方服务提供Python运行时环境,但它们需要注册、API密钥等。

LocalPythonExecutor提供了直接使用本地Python环境(更容易设置)与远程在Docker容器或虚拟机/第三方服务中执行(更安全)之间的良好平衡。Hugging Face团队投入时间创建了一个快速且安全的选项,用于运行其代码代理使用的LLM生成代码。这个MCP服务器在此基础上构建:

为了增加第一层的安全性,smolagents中的代码执行不是由普通的Python解释器完成的。我们从头开始重建了一个更安全的LocalPythonExecutor。

更多详情请参阅这里

安装和执行

通过Smithery安装

要通过Smithery自动安装Safe Local Python Executor用于Claude Desktop:

npx -y @smithery/cli install @maxim-saplin/mcp_safe_local_python_executor --client claude

手动安装

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

配置Claude Desktop

  1. 确保已安装Claude Desktop(从claude.ai下载)

  2. 编辑Claude Desktop配置文件:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • 或打开Claude Desktop -> 设置 -> 开发者 -> 点击“编辑配置”按钮
  3. 添加以下配置:

{
    "mcpServers": {
        "safe-local-python-executor": {
            "command": "uv",
            "args": [
                "--directory", 
                "/path/to/mcp_local_python_executor/",
                "run",
                "mcp_server.py"
            ]
        }
    }
}
  1. 重启Claude Desktop
  2. Python执行器工具现在将在Claude中可用(你会在消息输入字段中看到锤子图标)

示例提示

配置完成后,你可以使用如下提示:

  • "使用Python计算5的阶乘"
  • "创建一个包含100以内所有素数的列表"
  • "解决这个方程(使用Python):x^2 + 5x + 6 = 0"

开发

克隆仓库。使用uv创建虚拟环境,安装开发依赖项,运行测试:

uv venv .venv
uv sync --group dev
python -m pytest tests/

<a href="https://glama.ai/mcp/servers/@maxim-saplin/mcp_safe_local_python_executor"> <img width="380" height="200" src="https://gips3.baidu.com/it/u=1406755228,2825456284&fm=3081&app=3181&f=PNG?w=760&h=400" /> </a>

smithery badge

MseeP.ai Security Assessment Badge