项目简介
MCP Server Runner 是一个 WebSocket 服务器,旨在为现有的 Model Context Protocol (MCP) 服务器提供 WebSocket 接入能力。它作为一个桥梁,使得 Web 应用程序和其他网络客户端能够通过 WebSocket 连接,方便地与 MCP 服务器进行通信和交互。该项目本身 不是 MCP 服务器的完整实现,而是一个 MCP 服务器的运行器,负责启动、管理 MCP 服务器进程,并通过 WebSocket 协议转发客户端请求和服务器响应。
主要功能点
- WebSocket 服务:提供 WebSocket 服务器端点,接受客户端连接。
- MCP 服务器进程管理:负责启动和管理后端的 MCP 服务器进程。
- 双向通信桥接:在 WebSocket 客户端和 MCP 服务器之间建立双向通信通道,透明地传递 JSON-RPC 消息。
- 配置灵活:通过环境变量配置 MCP 服务器的启动命令和参数。
- 单客户端支持:目前仅支持单个客户端连接。
- 优雅关闭:支持在接收到关闭信号时,安全地停止 WebSocket 服务器和 MCP 服务器进程。
安装步骤
- 安装 Rust 环境:确保您的系统已安装 Rust 编程语言环境(Rust 1.70 或更高版本)。您可以访问 rustup.rs 了解安装方法。
- 克隆仓库:使用 'git clone https://github.com/MCP-Mirror/yonaka15_mcp-server-runner' 命令克隆仓库到本地。
- 构建项目:在仓库根目录下,运行 'cargo build' 命令编译项目。
服务器配置
MCP Server Runner 的配置主要通过环境变量进行。您需要配置 MCP 服务器的启动命令和参数,以及 WebSocket 服务器的监听地址和端口。以下是 MCP 客户端需要配置的关键信息(JSON 格式):
{ "server name": "mcp-server-runner", "command": "设置 PROGRAM 环境变量", "args": "设置 ARGS 环境变量,多个参数以逗号分隔", "transport": "WebSocket", "address": "ws://服务器IP:端口", "备注": "请将 '服务器IP' 和 '端口' 替换为实际的 WebSocket 服务器地址和端口。" }
环境变量说明:
- 'PROGRAM' (必需): 指定要运行的 MCP 服务器可执行文件 的路径。例如,如果您要运行 '@modelcontextprotocol/server-github',并且使用 'npx' 启动,则设置为 'npx'。
- 'ARGS': 传递给 MCP 服务器的 命令行参数,多个参数之间用逗号分隔。例如,对于 '@modelcontextprotocol/server-github',可以设置为 '-y,@modelcontextprotocol/server-github'。
- 'HOST': WebSocket 服务器监听的 IP 地址,默认为 '0.0.0.0'(监听所有可用网络接口)。
- 'PORT': WebSocket 服务器监听的端口,默认为 '8080'。
- 其他环境变量:您可以设置额外的环境变量,这些变量将 传递给 MCP 服务器进程。例如,'GITHUB_PERSONAL_ACCESS_TOKEN' 等 MCP 服务器可能需要的配置。
配置示例:
假设您要运行 '@modelcontextprotocol/server-github' MCP 服务器,并希望通过 WebSocket 访问。您需要设置以下环境变量:
export PROGRAM=npx export ARGS=-y,@modelcontextprotocol/server-github export PORT=8080 export GITHUB_PERSONAL_ACCESS_TOKEN=your_github_token # (如果 @modelcontextprotocol/server-github 需要)
基本使用方法
- 配置环境变量:根据您的 MCP 服务器需求,设置 'PROGRAM', 'ARGS' 等环境变量。
- 启动 WebSocket 服务器:在仓库根目录下,运行 'cargo run' 命令启动 MCP Server Runner。
- 连接 WebSocket 客户端:使用支持 WebSocket 协议的客户端,连接到 'ws://localhost:8080'(或您配置的 'HOST' 和 'PORT')。客户端发送的符合 MCP 协议的 JSON-RPC 请求将被转发到后端的 MCP 服务器,服务器的响应会通过 WebSocket 返回给客户端。
注意:
- 该项目仅作为 MCP 服务器的 WebSocket 运行器,您需要 自行准备和配置 MCP 服务器的实现 (通过 'PROGRAM' 和 'ARGS' 环境变量指定)。
- 目前仅支持 单客户端连接。
- 默认情况下 未启用 SSL/TLS,如果需要安全连接,请考虑使用反向代理。
信息
分类
开发者工具