AgentOS MCP Server Bridge
使用说明
- 项目简介
- 该仓库提供一个后端服务,用以桥接外部 MCP 服务器,将其工具自动注册为技能供 LLM 客户端调用,同时提供对 MCP 服务器的注册、管理和销毁等运维接口。核心组件包括 MCP 服务器管理、MCP-to-技能桥接、以及将 MCP 服务器的工具映射为可在技能库中调用的函数。
- 主要功能点
- MCP 服务器管理
- 读取系统内置配置,按开启状态连接到外部 MCP 服务器,拉取其工具列表。
- 将每个 MCP 服务器的工具转化为技能 Manifest,注册到本地技能注册中心。
- MCP-to-技能桥接
- 将 MCP 服务器的工具自动暴露为可由 LLM 调用的技能;支持将外部 MCP 的工具通过技能执行逻辑执行并返回结果。
- 服务器端路由与鉴权
- 提供 /mcp 相关 REST API,允许已鉴权用户查看、添加、删除自身的 MCP 配置。
- 数据持久与配置
- 使用本地数据库保存系统 MCP 配置、用户自建 MCP 服务器及其工具列表,并支持在运行时动态注册/注销技能。
- 与技能库的无缝集成
- 通过 SkillRegistry 将 MCP 服务器中的工具映射为技能,注册后可在统一的技能库中查看、安装、卸载和调用。
- MCP 服务器管理
- 安装步骤
- 服务器端
- 确保 Node.js 环境已安装(建议 Node.js 18+)。
- 安装依赖并构建项目(在 server 目录执行 npm install、npm run build)。
- 启动服务:NODE_ENV=production node dist/index.js(或按项目提供的启动方式)。
- 服务器端
- 服务器配置(MCP 客户端需通过该配置与 MCP 服务器建立连接)
- 配置文件为一个 JSON 列表,包含每个 MCP 服务器的启动信息,字段如下:
- name: MCP 服务器的唯一名称,例如 "user-1234abcd-mcp1"。
- command: 启动 MCP 服务器的可执行命令或脚本路径,例如 "/usr/local/bin/mcp-server"。
- args: 启动命令的参数数组,例如 ["--port","5001","--verbose"]。
- env: 运行时环境变量对象,键值对形式,例如 { "MCP_ENV": "prod" }。
- enabled: 是否启用该 MCP 服务器,默认为 true。
- 说明:MCP 客户端在连接 MCP 服务器时需要提供启动信息,服务器端仅存储并读取这些信息,客户端通过该配置来建立与 MCP 服务器的连接。
- 配置示例(仅描述,不给出代码块)
- 名称:example-mcp-01
- 启动命令:/usr/local/bin/mcp-server
- 启动参数:--port 5001 --log=info
- 环境变量:{ "MCP_LOGGER": "info" }
- 启用:true
- 配置文件为一个 JSON 列表,包含每个 MCP 服务器的启动信息,字段如下:
- 基本使用方法
- 启动后,服务端会自动加载系统配置中的 MCP 服务器,尝试连接并注册其工具为技能。
- 管理端口与鉴权:通过 /mcp/routes 进行 MCP 服务器的查询、新增和删除;操作需要经过鉴权(JWT)。
- 客户端使用时,只需在客户端技能调用阶段看到已注册的 MCP 服务器工具作为可用技能即可调用,服务器会将调用请求转发到对应的 MCP 服务器并将结果返回给客户端。