项目简介
本项目是一个适配器,旨在解决部分MCP客户端(如Claude Desktop、LibreChat等)主要支持Stdio传输协议,而新的MCP服务器可能采用Streamable HTTP传输协议的兼容性问题。它作为一个中间层,表现为Stdio MCP服务器与客户端通信,同时作为Streamable HTTP MCP客户端与目标服务器通信,实现请求的双向转发。
主要功能点
- Stdio MCP服务器功能: 接收来自LLM客户端通过标准输入输出(Stdio)发送的MCP请求。
- Streamable HTTP MCP客户端功能: 连接到指定的Streamable HTTP MCP服务器,并将接收到的请求转发过去。
- 请求转发: 透明地转发各种MCP请求,包括列出资源、读取资源内容、列出工具、调用工具、列出Prompt、获取Prompt等。
- 传输协议转换: 实现了Stdio和Streamable HTTP两种MCP传输协议之间的无缝桥接。
安装步骤
- 确保Node.js环境: 本项目是基于Node.js开发的,请确保您的系统已安装Node.js。
- 使用npx运行 (推荐): 如果您只是想快速使用,可以在MCP客户端的配置中直接使用'npx'命令来运行该适配器,无需本地安装。
- 从源代码构建 (可选): 如果需要本地修改或构建,请克隆仓库,并在项目根目录运行'npm install'安装依赖。然后运行'npm run build'来构建可执行文件。
服务器配置
MCP服务器需要被LLM客户端(如Claude Desktop, LibreChat)配置和启动。配置信息通常以JSON或YAML格式提供,包含服务器的名称、启动命令及参数。
配置此适配器时,主要需要提供以下信息:
- 服务器名称 (Server Name): 在客户端界面中显示的MCP服务器名称,例如 '"my-saas-app-development"'。
- 启动命令 (Command): 客户端用来启动此MCP适配器的命令。可以是'npx'(直接运行)或'node'接构建后的脚本路径(本地运行)。例如 '"npx"' 或 '"node"'。
- 启动参数 (Args): 传递给启动命令的参数。使用'npx'时,通常是适配器的包名,例如 '"@pyroprompts/mcp-stdio-to-streamable-http-adapter"'。使用'node'时,是构建后的脚本路径。
- 环境变量 (Env): 启动适配器进程时设置的环境变量。这是配置适配器指向哪个Streamable HTTP MCP服务器的关键。
- 'URI' (必需): 指定目标Streamable HTTP MCP服务器的完整URL,例如 '"http://localhost:3002/mcp"' 或 '"https://api.example.com/mcp"'。
- 'MCP_NAME' (可选): 适配器在客户端中显示的名称。如果配置了多个同类型的服务器,建议设置此项以区分。
- 'BEARER_TOKEN' (可选): 如果目标Streamable HTTP MCP服务器需要认证,在此处提供Bearer Token,适配器将在HTTP请求头中发送此Token。
注意: 具体配置格式和位置取决于您使用的MCP客户端应用(如Claude Desktop的JSON文件,LibreChat的YAML文件)。请参考您客户端的文档进行配置。
基本使用方法
- 在您的MCP客户端(如Claude Desktop, LibreChat)的配置文件中,按照上述“服务器配置”部分的说明,添加一个指向此适配器的MCP服务器配置条目。
- 确保配置中的'URI'指向您实际运行的Streamable HTTP MCP服务器的地址。
- 启动或重启您的MCP客户端应用。
- 如果配置正确,客户端将启动适配器进程,并通过Stdio与其通信。适配器会将请求转发到您指定的Streamable HTTP MCP服务器。
- 您将在客户端界面中看到并能够使用由目标Streamable HTTP MCP服务器提供的资源、工具和Prompt。
信息
分类
AI与计算