0%

MCP Run Python:安全的 Python 代码沙盒执行环境

【由DeepSeek辅助编写】

MCP Run Python 是由 PydanticAI 提供的 MCP 服务器,能够在安全、隔离的沙盒环境中执行 Python 代码。它基于 PyodideDeno 技术栈,通过 WebAssembly 实现代码隔离,确保主机系统不受执行代码的影响。

核心特性

  • 安全执行:在沙盒化的 WebAssembly 环境中运行 Python 代码
  • 依赖管理:自动检测并安装代码所需的依赖包
  • 完整输出:捕获标准输出、标准错误及返回值
  • 异步支持:原生支持异步代码执行
  • 错误处理:提供详细的错误报告,便于调试

快速开始

推荐使用 Deno 运行(替代原 npm/npx 方案):

deno run -N -R=node_modules -W=node_modules --node-modules-dir=auto jsr:@pydantic/mcp-run-python stdio

支持三种运行模式:

  • stdio:通过标准输入输出通信(适合本地子进程)
  • sse:基于 HTTP 的服务器推送模式(支持远程连接)
  • warmup:预加载 Python 标准库

使用示例

通过 Python MCP 客户端调用:

from mcp import ClientSession
from mcp.client.stdio import stdio_client

code = """
import numpy as np
arr = np.array([1, 2, 3])
print(arr)
arr
"""

async with ClientSession(...) as session:
    result = await session.call_tool('run_python_code', {'python_code': code})
    print(result.content[0].text)  # 输出执行结果

依赖管理

支持两种依赖声明方式:

  1. 自动推断:通过分析代码中的 import 语句
  2. 元数据注释:遵循 PEP 723 规范
# /// script
# dependencies = ["pydantic", "email-validator"]
# ///

适用场景

  • 需要安全执行用户提交代码的 SaaS 平台
  • 教育类应用的代码评测系统
  • 自动化工作流中的动态脚本执行

MCP Run Python 现已作为 JSR 包 发布,更多用法参考 官方文档

扫码加入技术交流群🖱️
QR code