使用说明

项目简介

Pyodide Server 是一个基于 Model Context Protocol (MCP) 的服务器实现,它使用 Pyodide 运行时环境,为大型语言模型 (LLM) 提供执行 Python 代码的能力,并允许 LLM 访问服务器文件系统上挂载的资源。该服务器旨在作为 LLM 应用的后端,通过 MCP 协议提供标准化的上下文信息和功能调用接口。

主要功能点

  • Python 代码执行: 允许 LLM 调用工具执行任意 Python 代码,并捕获代码输出,支持设置执行超时。
  • Python 包安装: 支持 LLM 通过工具动态安装 Python 包,扩展 Python 环境的功能。
  • 资源管理: 允许服务器挂载本地文件系统目录作为资源,并提供工具供 LLM 查询挂载点和浏览目录内容。
  • 文件读取: 支持 LLM 读取挂载目录中的文件资源,特别是图片文件,并以 Base64 编码格式返回。
  • 多传输协议: 支持 Stdio 和 SSE 两种传输模式,满足不同应用场景的需求。
  • 工具发现: 提供标准 MCP 接口,允许 MCP 客户端发现服务器提供的工具列表。
  • 资源发现: 提供标准 MCP 接口,允许 MCP 客户端发现服务器提供的资源列表。

安装步骤

  1. 安装 Node.js 和 npm: 确保你的系统已安装 Node.js (版本 18 或更高) 和 npm (版本 9 或更高)。
  2. 安装 mcp-pyodide: 打开终端,运行以下命令全局安装 'mcp-pyodide':
    npm install -g mcp-pyodide

服务器配置

MCP 客户端需要配置以下信息以连接 Pyodide Server。以下是不同传输模式的配置示例:

1. Stdio 模式 (默认)

{
  "serverName": "Pyodide Server (Stdio)",
  "command": "mcp-pyodide",
  "args": [],
  "transport": "stdio"
}
  • 'serverName': 服务器名称,可自定义。
  • 'command': 启动服务器的命令,这里是 'mcp-pyodide'。
  • 'args': 启动参数,Stdio 模式下为空数组。
  • 'transport': 传输协议,设置为 'stdio'。

2. SSE 模式

{
  "serverName": "Pyodide Server (SSE)",
  "command": "mcp-pyodide",
  "args": ["--sse"],
  "transport": "sse",
  "sseEndpoint": "http://localhost:3020/sse",
  "messageHandlerEndpoint": "http://localhost:3020/messages"
}
  • 'serverName': 服务器名称,可自定义。
  • 'command': 启动服务器的命令,这里是 'mcp-pyodide'。
  • 'args': 启动参数,SSE 模式下为 '["--sse"]'。
  • 'transport': 传输协议,设置为 'sse'。
  • 'sseEndpoint': SSE 连接端点,默认为 'http://localhost:3020/sse'。
  • 'messageHandlerEndpoint': 消息处理端点,默认为 'http://localhost:3020/messages'。

环境变量配置 (可选)

可以通过环境变量自定义服务器行为:

  • 'PYODIDE_CACHE_DIR': Pyodide 包缓存目录,默认为 './cache'。
  • 'PYODIDE_DATA_DIR': 数据挂载目录,默认为 './data'。服务器启动时会将此目录挂载到 Pyodide 文件系统中。
  • 'PORT': SSE 服务器端口,默认为 '3020'。

基本使用方法

  1. 启动服务器:

    • Stdio 模式: 在终端中直接运行命令 'mcp-pyodide'。
    • SSE 模式: 在终端中运行命令 'mcp-pyodide --sse'。
  2. 配置 MCP 客户端: 根据你选择的传输模式,将上述相应的服务器配置信息填入 MCP 客户端的服务器配置中。

  3. 使用 LLM 调用工具和访问资源: 通过 MCP 客户端向 Pyodide Server 发送 MCP 请求,例如调用 'execute-python' 工具执行 Python 代码,或调用 'read-image' 工具读取挂载目录中的图片。具体工具和资源的使用方法请参考 MCP 协议文档和客户端的指南。

注意: 在 SSE 模式下,请确保客户端能够访问服务器的 SSE 和消息处理端点 (默认 'http://localhost:3020/sse' 和 'http://localhost:3020/messages')。如果需要跨域访问,请确保服务器已配置正确的 CORS 设置。

信息

分类

AI与计算