关于 mcp-pyodide
mcp-pyodide 是一个基于 Pyodide 的 MCP 服务,使 LLM 能通过 MCP 接口执行 Python 代码。它使用 TypeScript 编写,支持 stdio 和 SSE 两种传输模式,项目目前仍处于开发阶段。
主要功能
- 01基于 Pyodide 执行 Python 代码
- 02支持 stdio 与 SSE 传输模式
- 03使用 TypeScript 实现
- 04提供命令行工具
适用场景
- 01让 LLM 执行 Python 代码并返回结果
- 02在 SSE 模式下通过网页客户端连接服务
MCP 相关
该项目是一个 MCP 服务,向 LLM 客户端暴露 Python 代码执行能力,并通过 stdio 或 SSE 与客户端通信。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-pyodide
一个基于 Pyodide 的模型上下文协议(MCP)服务实现。此服务支持大模型通过 MCP 接口执行 Python 代码。
功能
- 使用 Pyodide 为大模型提供 Python 代码执行能力
- 符合 MCP 规范的服务实现
- 支持 stdio 和 SSE 两种传输模式
- 使用 TypeScript 编写的健壮实现
- 可作为命令行工具使用
安装
npm install mcp-pyodide
使用方法
作为服务运行
import { runServer } from "mcp-pyodide";
// Start the server
runServer().catch((error: unknown) => {
console.error("Error starting server:", 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("Received:", JSON.parse(event.data));
};
项目结构
mcp-pyodide/
├── src/
│ ├── formatters/ # Data formatting handlers
│ ├── handlers/ # Request handlers
│ ├── lib/ # Library code
│ ├── tools/ # Utility tools
│ ├── utils/ # Utility functions
│ └── index.ts # Main entry point
├── build/ # Build artifacts
├── pyodide-packages/ # Pyodide-related packages
└── 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 或更高版本
设置
# Clone the repository
git clone <repository-url>
# Install dependencies
npm install
# Build
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
参与贡献
- Fork 此仓库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交更改(
git commit -am 'Add some amazing feature') - 推送到该分支(
git push origin feature/amazing-feature) - 创建 Pull Request
重要说明
- 此项目仍在开发中,API 可能会发生变化
- 在生产环境中使用前,请进行全面测试
- 出于安全考虑,执行不受信任的代码时请务必谨慎
- 使用 SSE 模式时,如有需要,请确保正确配置 CORS
支持
如有问题或疑问,请使用 Issue 跟踪器。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
