项目简介

本项目是一个适配器,旨在解决部分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传输协议之间的无缝桥接。

安装步骤

  1. 确保Node.js环境: 本项目是基于Node.js开发的,请确保您的系统已安装Node.js。
  2. 使用npx运行 (推荐): 如果您只是想快速使用,可以在MCP客户端的配置中直接使用'npx'命令来运行该适配器,无需本地安装。
  3. 从源代码构建 (可选): 如果需要本地修改或构建,请克隆仓库,并在项目根目录运行'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文件)。请参考您客户端的文档进行配置。

基本使用方法

  1. 在您的MCP客户端(如Claude Desktop, LibreChat)的配置文件中,按照上述“服务器配置”部分的说明,添加一个指向此适配器的MCP服务器配置条目。
  2. 确保配置中的'URI'指向您实际运行的Streamable HTTP MCP服务器的地址。
  3. 启动或重启您的MCP客户端应用。
  4. 如果配置正确,客户端将启动适配器进程,并通过Stdio与其通信。适配器会将请求转发到您指定的Streamable HTTP MCP服务器。
  5. 您将在客户端界面中看到并能够使用由目标Streamable HTTP MCP服务器提供的资源、工具和Prompt。

信息

分类

AI与计算