Termos MCP 服务器实现
使用说明内容(Markdown格式)
-
项目简介 Termos 的 MCP 服务器实现是一套用于 Model Context Protocol 的后端服务。它允许 MCP 客户端读取资源、注册并执行工具、以及获取和渲染 Prompt 模板。通过 JSON-RPC 形式的 MCP 通信,服务器端负责会话管理、能力声明,以及对接多种传输协议(如 SSE、StdIO、以及网关代理等),为大型语言模型的上下文服务提供稳定、可扩展的底层能力。
-
主要功能点
- MCP 请求/响应支持:实现了基于 MCP 的资源、工具、Prompts 的注册、查询、执行等核心能力。
- 传输模式支持:提供 SSE/HTTP 代理和 STDIO 两种传输方式的接入能力,方便在不同部署形态下与客户端对接。
- 资源与工具托管:方便向 MCP 客户端托管数据资源与可调用的工具,支持外部接入和权限控制。
- 安全与鉴权基础:通过网关、OAuth 代理、以及令牌机制实现对外部服务的受控访问,便于接入平台级鉴权。
- 容器化与扩展性:模块化模块注册、动态 MCP 服务器组合,以及通过网关与代理实现跨平台协作。
- 与网关的集成:与 Termos 网关、与插件平台(如 OAuth、MCP 代理、输入存储等)无缝协作,形成端到端的 MCP 服务链。
-
安装与运行
- 该仓库为一个完整的 Termos 生态系统,包含网关、工作器和 CLI 等组件。通常以容器化或本地多进程方式部署,确保 Redis、网络代理、以及 MCP 客户端/服务之间的连通性。
- 依赖环境:Node.js 运行时( Bun 兼容环境优先),Redis 服务,必要时配套的云原生组件(如 Kubernetes),以及在需要时的云代理(如 Cloudflare Tunnel 等)。
- 启动流程大致为:启动网关网关服务(包含 MCP 代理、OAuth、平台集成等),启动工作器集群(包含对 MCP 的实现和支持工具),暴露 MCP HTTP/SSE 接口供 MCP 客户端连接。
-
服务器配置(MCP 客户端所需的连接信息) 注:MCP 客户端需要配置要连接的 MCP 服务器信息,包含服务器名称、启动方式以及必要的参数。以下示例仅用于描述配置字段,不作为直接代码实现。
-
方案 A:HTTP/SSE 服务器(推荐在云端网关对外暴露的 MCP 服务) 服务器名称: "Termos Process Manager MCP" 类型: "sse" URL: "https://your-gateway-domain:443" // MCP 服务入口(网关暴露的 MCP 接入点) 头部(可选): { "Authorization": "Bearer <TOKEN>", "X-Mcp-Id": "process-manager" } 描述: "通过 SSE 传输的 MCP 服务,用于进程管理相关的工具与资源的访问" 说明: MCP 客户端通过指定上述 URL 与头信息建立向服务器的连接,执行工具、获取资源等。
-
方案 B:STDIO 启动模式的本地 MCP 服务器 服务器名称: "Termos Local MCP (Process Manager)" 类型: "stdio" 命令: "node" 参数: [ "path/to/your/mcp-server-entry.js" ] 说明: 通过在本地容器/进程中启动一个标准输入输出的 MCP 服务器。此模式需要明确的启动命令与参数,并且通常在容器内部或受控沙箱中运行。
-
方案 C:作为网关内嵌 MCP 服务的一种引用 服务器名称: "Termos Embedded MCP (Gateway)" 类型: "sse" URL: "http(s)://gateway-host:gateway-port" // 与网关内部的 MCP 服务对接 头部: { "X-Mcp-Id": "embedded-mcp" } 说明: 直接通过网关暴露的 MCP 端点进行对接,适合网关/代理一体化部署场景。
-
-
基本使用方法
- 连接与调用
- 通过配置将 MCP 客户端指向 MCP 服务器的入口(HTTPS SSE URL 或 STDIO 启动命令)。
- 使用客户端的 RPC 调用格式向 MCP 服务器发送资源读取、工具调用、Prompts 获取等请求。
- 权限与安全
- 使用网关鉴权令牌,确保对外暴露的 MCP 服务具备合适的令牌保护。
- 如使用 OAuth/MCP 授权,按网关提供的授权流程完成配置。
- 运行与扩展
- 根据需要添加更多 MCP 服务器到配置中(例如不同的工具集合、不同的资源集)。
- 通过网关的统一消费者对 MCP 的响应进行路由和渲染,确保跨平台的一致性。
- 监控与诊断
- 通过 Tempo/OpenTelemetry 进行分布式追踪,监控 MCP 请求的端到端生命周期。
- 使用网关的健康、指标端点对 MCP 服务进行健康检查与性能观测。
- 连接与调用
-
重要提示
- MCP 客户端配置应与仓库中实现的服务器能力保持一致,确保 server 的 type、url/order 配置与 server 端实际暴露的能力匹配。
- 对于多服务器、不同传输模式的场景,请在客户端配置中清晰区分每个服务器的 type、url 或 command/args,以便正确建立连接。
-
备注 本项目包含了用于 MCP 的服务端实现、网关代理、以及相关的权限、鉴权、以及代理转发等组件。若要独立部署 MCP 服务,请确保将 MCP 服务暴露在可访问的入口(HTTP/SSE),并在客户端配置中正确指向该入口。