返回市场
麦克佩迪德

麦克佩迪德

作者:yonaka1515 星标更新:2025-05-19

项目介绍

MseeP.ai 安全评估徽章

mcp-pyodide

Model Context Protocol (MCP) 的一个 Pyodide 服务器实现。此服务器使大型语言模型(LLMs)能够通过 MCP 接口执行 Python 代码。

<a href="https://glama.ai/mcp/servers/pxls43joly"> <img width="380" height="200" src="https://gips0.baidu.com/it/u=2844058269,2728969156&fm=3081&app=3081&f=PNG?w=760&h=400" alt="mcp-pyodide MCP 服务器" /> </a>

特性

  • 使用 Pyodide 为 LLM 提供 Python 代码执行能力
  • 符合 MCP 规范的服务器实现
  • 支持 stdio 和 SSE 传输模式
  • 用 TypeScript 编写的健壮实现
  • 可作为命令行工具使用

安装

npm install mcp-pyodide

使用方法

作为服务器

import { runServer } from "mcp-pyodide";

// 启动服务器
runServer().catch((error: unknown) => {
  console.error("启动服务器时出错:", error);
  process.exit(1);
});

作为命令行工具

在 stdio 模式下启动(默认):

mcp-pyodide

在 SSE 模式下启动:

mcp-pyodide --sse

SSE 模式

当以 SSE 模式运行时,服务器提供以下端点:

  • SSE 连接:http://localhost:3020/sse
  • 消息处理器:http://localhost:3020/messages

示例客户端连接:

const eventSource = new EventSource("http://localhost:3020/sse");
eventSource.onmessage = (event) => {
  console.log("收到:", JSON.parse(event.data));
};

项目结构

mcp-pyodide/
├── src/
│   ├── formatters/    # 数据格式化处理程序
│   ├── handlers/      # 请求处理程序
│   ├── lib/          # 库代码
│   ├── tools/        # 工具
│   ├── utils/        # 工具函数
│   └── index.ts      # 主入口点
├── build/            # 构建产物
├── pyodide-packages/ # Pyodide 相关包
└── package.json

依赖项

  • @modelcontextprotocol/sdk: MCP SDK (^1.4.0)
  • pyodide: Python 运行环境 (^0.27.1)
  • arktype: 类型验证库 (^2.0.1)
  • express: 支持 SSE 的 Web 框架
  • cors: 支持 SSE 的 CORS 中间件

开发

要求

  • Node.js 18 或更高版本
  • npm 9 或更高版本

设置

# 克隆仓库
git clone <repository-url>

# 安装依赖
npm install

# 构建
npm run build

脚本

  • npm run build: 编译 TypeScript 并设置执行权限
  • npm start: 在 stdio 模式下运行服务器
  • npm run start:sse: 在 SSE 模式下运行服务器

环境变量

  • PYODIDE_CACHE_DIR: Pyodide 缓存目录(默认: "./cache")
  • PYODIDE_DATA_DIR: 挂载数据目录(默认: "./data")
  • PORT: SSE 服务器端口(默认: 3020)

许可证

MIT

贡献指南

  1. 分叉仓库
  2. 创建功能分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -am '添加一些惊人的功能')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 创建拉取请求

重要说明

  • 此项目正在开发中,API 可能会变更
  • 在生产环境中使用前,请彻底测试
  • 由于安全原因,在执行不受信任的代码时要小心
  • 如果需要,使用 SSE 模式时确保正确配置 CORS

支持

请使用问题跟踪器报告问题和提出疑问。