使用说明

项目简介

该项目旨在解决原生 Model Context Protocol (MCP) 服务器基于 stdio 传输的复杂性问题。它提供了一个 WebSocket 包装器,可以将现有的 stdio MCP 服务器转换为可以通过网络访问的服务。这使得 MCP 客户端无需直接管理子进程,简化了客户端的集成,并为多用户场景下的 MCP 服务器管理提供了更便捷的方案。

主要功能点

  • WebSocket 接口: 将 stdio MCP 服务器封装成 WebSocket 服务,允许客户端通过网络进行通信。
  • 进程管理: 服务器负责启动和管理被包装的 stdio MCP 服务器进程。
  • 简化客户端集成: 客户端可以通过 WebSocket 连接到该服务器,无需复杂的进程管理逻辑。
  • 配置灵活: 可以通过命令行参数配置端口和环境变量,并指定要包装的 MCP 服务器命令。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/MCP-Mirror/rgarcia_mcp-server-server.git
    cd rgarcia_mcp-server-server
  2. 安装依赖: 确保你已安装 Bun,然后在项目目录下运行:
    bun install

服务器配置

MCP 客户端需要配置连接到此 WebSocket 包装器服务器的信息,以及指定实际运行的 stdio MCP 服务器的命令。

以下是一个 MCP 客户端连接 WebSocket 包装器服务器时可能需要的配置信息示例 (JSON 格式),假设你要包装 '@modelcontextprotocol/server-puppeteer' 这个 stdio MCP 服务器:

{
  "serverName": "websocket-mcp-wrapper",
  "transport": "websocket",
  "address": "ws://localhost:3001",
  "options": {},
  "server_config": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-puppeteer@latest"]
  }
}

配置参数说明:

  • 'serverName': MCP 服务器的名称,可以自定义。
  • 'transport': 传输协议,这里固定为 'websocket'。
  • 'address': WebSocket 服务器的地址,默认为 'ws://localhost:3001',可以根据实际情况修改。
  • 'options': WebSocket 连接的可选参数,通常为空对象 '{}'。
  • 'server_config': 关键配置,用于指定如何启动被包装的 stdio MCP 服务器。
    • 'command': 启动 stdio MCP 服务器的主命令,例如 'npx' 或 'node'。
    • 'args': 传递给 'command' 的参数列表,例如 '["-y", "@modelcontextprotocol/server-puppeteer@latest"]' 用于运行 'server-puppeteer'。 你需要根据你想要包装的 stdio MCP 服务器,修改 'command' 和 'args' 以确保能够正确启动该服务器。

启动 WebSocket 包装器服务器:

在 'rgarcia_mcp-server-server' 目录下,使用以下命令启动 WebSocket 包装器服务器,并指定端口和要包装的 stdio MCP 服务器命令。 例如,使用端口 3001 并包装 '@modelcontextprotocol/server-puppeteer':

bun run mcp-server -p 3001 -- npx -y @modelcontextprotocol/server-puppeteer@latest

基本使用方法

  1. 启动 WebSocket 包装器服务器 (按照上面的服务器配置说明进行)。
  2. 配置 MCP 客户端: 在你的 MCP 客户端中,配置连接到 'ws://localhost:3001' (或其他你配置的端口) 的 WebSocket 服务器,并按照上面提供的 JSON 配置示例进行配置,确保 'server_config' 中的 'command' 和 'args' 与你希望使用的 stdio MCP 服务器匹配。
  3. 使用 MCP 客户端: 客户端通过 WebSocket 与包装器服务器通信,就像直接与 MCP 服务器通信一样。你可以使用 '@modelcontextprotocol/sdk' 等 MCP 客户端 SDK 来进行交互。 仓库的 'example-client/example-client.ts' 文件提供了一个简单的客户端示例,展示了如何连接和列出工具。

信息

分类

开发者工具