RFK Jr Gateway MCP 服务器使用说明

项目简介

RFK Jr Gateway 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在连接 MCP 客户端与 RFK Jr (可能是指某种后端服务或API端点)。它通过读取配置文件,动态地将 RFK Jr 端点提供的 API 接口注册为 MCP 的工具 (Tools),并将端点的 Prompt 注册为 MCP 的 Prompt 模板 (Prompts)。此外,它还提供了一个 MCP 资源 (Resource) 用于列出所有可用的端点信息。

主要功能点

  • 动态工具注册: 根据配置文件中指定的 API 端点的 OpenAPI 规范,自动注册 MCP 工具,使得 LLM 可以调用这些端点的功能。
  • Prompt 模板: 支持为每个 API 端点注册 Prompt 模板,允许 LLM 使用预定义的 Prompt 与端点交互。
  • 资源管理: 提供 '/endpoints://list' 资源,列出所有配置的 API 端点及其 URL。
  • 端点信息查询: 提供 'get_endpoint_info' 工具,用于查询特定端点的详细信息,包括标题、描述、版本和可用的操作。
  • 灵活配置: 通过 YAML 配置文件管理后端 API 端点,方便扩展和修改。
  • 支持 STDIO 和 SSE 传输协议: 可以根据需要选择不同的 MCP 传输方式。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/debedb/mcprfkgw
    cd mcprfkgw
  2. 安装依赖: 确保已安装 Python 3.10 或更高版本,然后运行以下命令安装项目依赖:
    pip install -r requirements.txt

服务器配置

MCP 客户端需要配置连接到 RFK Jr Gateway MCP 服务器的命令和参数。以下是基于仓库信息生成的配置信息,以 JSON 格式提供:

{
  "serverName": "RFK Jr Gateway",
  "command": "uv",
  "args": [
    "run",
    "--with", "fastmcp",  // 包含 fastmcp 库
    "--with", "pyyaml",   // 包含 pyyaml 库,用于读取 YAML 配置文件
    "--with", "httpx",    // 包含 httpx 库,用于 HTTP 请求
    "--with", "pydantic", // 包含 pydantic 库,用于数据验证
    "fastmcp",            // 使用 fastmcp 运行器
    "run",                // 运行命令
    "server.py"           // 服务器入口文件
  ],
  "transport": "stdio"  // 默认使用 STDIO 传输,也可以配置为 "sse"
}

参数注释:

  • 'serverName': MCP 服务器的名称,可以自定义。
  • 'command': 运行 MCP 服务器的命令,这里使用 'uv' (可能是指 'uvicorn' 或类似的 ASGI 服务器运行器,但根据 inspector 的配置,直接使用 'uv' 命令)。
  • 'args': 传递给 'uv' 命令的参数列表:
    • 'run': 'uv' 的运行子命令。
    • '--with fastmcp --with pyyaml --with httpx --with pydantic': 使用 '--with' 参数引入项目所需的依赖库,确保运行环境中包含这些库。
    • 'fastmcp': 指定使用 'fastmcp' 运行器来执行服务器代码。
    • 'run server.py': 指示 'fastmcp' 运行器执行 'server.py' 文件,启动 MCP 服务器。
  • 'transport': 指定 MCP 使用的传输协议,默认为 'stdio' (标准输入输出)。如果需要使用 SSE (Server-Sent Events),可以将 'transport' 设置为 '"sse"',并可能需要修改启动命令以适应 HTTP 模式 (参考 'server.py' 中的 HTTP 模式启动逻辑,可能需要设置 'FASTMCP_HTTP=1' 环境变量和监听端口)。

配置文件 (rfkjr.yaml):

RFK Jr Gateway 服务器需要一个 YAML 配置文件来指定要桥接的 RFK Jr 端点。默认情况下,服务器会查找 '/Users/gregory/g/projects/llm/roma/rfk_jr/rfkjr.yaml' 文件,也可以通过设置 'CONFIG_PATH' 环境变量来指定其他路径。

示例配置文件 'rfkjr.yaml':

inna_cpt:
    url: http://127.0.0.1:7001  # RFK Jr 端点 URL
canvas:
    url: canvas # 被忽略的端点示例,url 为 canvas 或以 # 开头的端点会被忽略
# another_endpoint:
#    url: #http://another-api.com # 注释掉的端点示例

请根据实际的 RFK Jr 端点信息修改 'rfkjr.yaml' 文件。

基本使用方法

  1. 启动 MCP 服务器:

    • STDIO 模式 (默认): 在仓库根目录下,直接使用 MCP 客户端配置中提供的 'command' 和 'args' 启动服务器。例如,使用 MCP Inspector 时,可以直接填入配置信息。
    • SSE 模式: 如果需要使用 SSE 传输,需要设置 'FASTMCP_HTTP=1' 环境变量并启动服务器。具体启动命令可能需要参考 'server.py' 中的 HTTP 模式启动逻辑,并确保 MCP 客户端配置的 'transport' 为 '"sse"'。
  2. 使用 MCP 客户端连接服务器: 配置 MCP 客户端,使其连接到 RFK Jr Gateway MCP 服务器。客户端应该能够发现服务器提供的资源 ('endpoints://list') 和工具 (例如 'inna_cpt_...',工具名称会根据配置文件中的端点名称和 OpenAPI 操作 ID 生成)。

  3. 调用工具和资源: 通过 MCP 客户端,可以:

    • 调用注册的工具,执行 RFK Jr 端点提供的 API 功能。
    • 访问 'endpoints://list' 资源,获取可用端点列表。
    • 调用 'get_endpoint_info' 工具,查询特定端点的详细信息。
    • 使用注册的 Prompt 模板,定制与 RFK Jr 端点的交互方式。

注意事项

  • 确保 'rfkjr.yaml' 配置文件路径正确,并且配置了有效的 RFK Jr 端点 URL。
  • 如果 RFK Jr 端点需要身份验证或其他特殊配置,需要在 'server.py' 代码中进行相应的修改。
  • 'uv' 命令的可用性取决于运行环境,如果无法使用 'uv',可能需要替换为其他 ASGI 服务器运行器,并相应调整 MCP 客户端的配置。

信息

分类

网页与API