mcp-吡啶
一个用于模型上下文协议 (MCP) 的 Pyodide 服务器实现。该服务器支持大型语言模型 (LLM) 通过 MCP 接口执行 Python 代码。
特征
- 使用 Pyodide 实现 LLM 的 Python 代码执行功能
- 符合 MCP 的服务器实现
- 支持 stdio 和 SSE 传输模式
- 用 TypeScript 编写的健壮实现
- 可用作命令行工具
安装
用法
作为服务器
import { runServer } from "mcp-pyodide";
// Start the server
runServer().catch((error: unknown) => {
console.error("Error starting server:", error);
process.exit(1);
});
作为命令行工具
以 stdio 模式启动(默认):
以 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)
执照
麻省理工学院
贡献
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature
) - 提交您的更改(
git commit -am 'Add some amazing feature'
) - 推送到分支(
git push origin feature/amazing-feature
) - 创建拉取请求
重要提示
- 该项目正在开发中,API 可能会发生变化
- 在生产使用前进行彻底测试
- 出于安全原因,执行不受信任的代码时务必谨慎
- 使用 SSE 模式时,请确保根据需要正确配置 CORS
支持
请使用问题跟踪器来查找问题和疑问。