mcp-pyodide

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Used as the web framework for SSE (Server-Sent Events) support, providing endpoints for SSE connection and message handling

  • The server runs on Node.js, requiring version 18 or higher for development

  • Used for package management and running scripts for the MCP server

mcp-吡啶

一个用于模型上下文协议 (MCP) 的 Pyodide 服务器实现。该服务器支持大型语言模型 (LLM) 通过 MCP 接口执行 Python 代码。

特征

  • 使用 Pyodide 实现 LLM 的 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)

执照

麻省理工学院

贡献

  1. 分叉存储库
  2. 创建功能分支( git checkout -b feature/amazing-feature
  3. 提交您的更改( git commit -am 'Add some amazing feature'
  4. 推送到分支( git push origin feature/amazing-feature
  5. 创建拉取请求

重要提示

  • 该项目正在开发中,API 可能会发生变化
  • 在生产使用前进行彻底测试
  • 出于安全原因,执行不受信任的代码时务必谨慎
  • 使用 SSE 模式时,请确保根据需要正确配置 CORS

支持

请使用问题跟踪器来查找问题和疑问。

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

一个 Pyodide 服务器,用于通过模型上下文协议 (MCP) 由大型语言模型 (LLM) 执行 Python 代码。

  1. Features
    1. Installation
      1. Usage
        1. As a Server
        2. As a Command-line Tool
        3. SSE Mode
      2. Project Structure
        1. Dependencies
          1. Development
            1. Requirements
            2. Setup
            3. Scripts
          2. Environment Variables
            1. License
              1. Contributing
                1. Important Notes
                  1. Support
                    ID: pxls43joly