Phylactery MCP Gateway

使用说明(简明实用的使用指南)

  • 项目简介

    • Phylactery 的 MCP 网关模块实现了一个 MCP 服务器,它可以与多个后端 MCP 服务器进行交互,聚合它们提供的工具并向 MCP 客户端暴露统一的接口。
  • 主要功能点

    • 初始化与握手:向每个后端 MCP 服务器发送 initialize,并接收能力声明。
    • 工具管理:通过 tools/list 获取后端可用工具列表,并对工具名进行前缀以避免冲突;通过 tools/call 将模型的工具调用分发到对应的后端服务器。
    • 支持多服务器协作:可同时连接多个 MCP 服务器,汇总它们的工具成为一个统一的 MCP 服务端对外暴露。
    • JSON-RPC 交互:遵循 MCP 的 JSON-RPC 请求/响应格式,处理请求并返回相应的响应。
    • 运行模式:提供 --spec 进行工具发现展示,提供 --serve 进入长期运行的 NDJSON 转发桥接模式。
    • 错误处理与日志:对调用异常、未知工具、服务器错误等情况给出清晰的错误信息。
  • 安装与运行步骤

    • 构建源码(需具备 Rust 开发环境):
      • 在仓库目录下执行构建命令将生成可执行文件。
    • 启动 MCP 网关(示例模式):
      • 运行网关,进入服务模式,在标准输入/输出上通过 MCP 客户端进行交互。
    • 使用 MCP 客户端对接:
      • MCP 客户端只需要知道网关提供的服务即可,通过命令行工具的 --spec 显示可用工具,并通过 --serve 进入服务端交互。
  • 服务器配置(示例,供 MCP 客户端了解如何配置真实的 MCP 服务器) 说明:以下 JSON 配置示例描述一个或多个 MCP 服务器的启动信息,包含服务器名称、启动命令及参数。实际使用中请将该配置写入你的 config.toml(MCP 客户端会读取该配置以连接相应 MCP 服务器),本文仅提供用来理解字段的 JSON 展示。

    [ { "name": "filesystem", "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user"], "env": {} } ]

    备注:

    • name:MCP 服务器的唯一名称,用于在网关内部前缀工具名称以区分来自不同服务器的工具。
    • command:启动 MCP 服务器的可执行文件或脚本(如 npx、自定义服务程序等)。
    • args:启动命令的参数列表,按顺序排列。
    • env:环境变量设置,按 key-value 的方式提供,必要时可展开环境变量引用。
    • 实际使用中可增加多个 MCP 服务器,每个对象代表一个服务器,网关将统一暴露其聚合后的工具集。

服务器信息