JFL MCP Server Suite
使用说明(Markdown 格式)
一、项目简介
- 本仓库实现了基于 Model Context Protocol (MCP) 的后端服务器能力,核心目标是以标准化的 JSON-RPC 协议向 MCP 客户端暴露资源、工具和上下文相关的能力,以支持 AI 模型在运行时查询和操作外部资源与功能。
二、主要功能点
- MCP 核心协议支持
- 通过 JSON-RPC 2.0 规范处理 initialize、tools/list、tools/call 等方法,返回标准化的服务器能力、工具集合和执行结果。
- 支持错误处理与异步调用场景,返回符合 MCP 的响应结构。
- 多个 MCP 服务器实现
- Context Hub MCP:提供统一上下文获取、搜索、会话、内存查询等工具集合,兼容 Context Hub 的 HTTP API 入口。
- Service Registry MCP:提供对服务注册表的查询、调用工具、以及服务发现等能力。
- Service MCP Server / Peer MCP Server:为具体服务暴露状态、健康、日志、以及对同一生态中其他服务的对等调用能力。
- 服务器对接与扩展
- 服务器实现包含工具注册、工具执行、以及自定义工具(mcp 配置驱动的工具)等能力,便于把业务逻辑暴露为 MCP 客户端可调用的工具。
- 提供对外部服务的调用(如服务管理 API、上下文查询等)的封装,便于在 LLM 的上下文中调用外部系统。
- 数据结构与规范
- Tremendous 参考实现包含对工具、服务器信息、以及可以扩展的上下文结构的定义,便于遵循 MCP 的通用格式进行扩展。
三、安装与运行要点
- 依赖与构建
- 该仓库基于 Node.js/TypeScript。运行前需安装依赖并编译为可执行的 JS 入口。
- 启动 MCP 服务器的一般步骤
- 安装依赖
- 运行 npm install(在仓库根目录执行)。
- 构建/编译
- 运行 TypeScript 编译,输出到可执行的 JS 文件(如 dist/mcp/context-hub-mcp.js、dist/mcp/service-registry-mcp.js 等)。
- 启动服务器
- 例如用 Node 启动某个 MCP 服务器:node dist/mcp/context-hub-mcp.js
- 同时可以为不同服务器启动不同端口(如 4242/3401 等),具体端口依据各服务器实现中的默认端口或环境变量设置。
- 与 MCP 客户端对接
- 服务器通过标准的 MCP 请求/响应格式与客户端通信,客户端通常通过向服务器的启动命令传入参数来建立连接。
- 安装依赖
- 服务器配置(客户端用,非必需在此处实现)
- MCP 客户端在连接时通常需要一份配置 JSON,描述服务器启动命令、参数、以及服务器标识等信息。以下为示例配置思路(非代码形式呈现,便于阅读): { "server_name": "jfl-context-hub-mcp", "command": "node", "args": ["dist/mcp/context-hub-mcp.js", "--port", "4242"], "description": "Context Hub MCP 提供统一上下文访问工具", "notes": "启动后,客户端通过 JSON-RPC 2.0 与该服务器通信" }
- 同类配置可用于 service-registry-mcp、context-hub-mcp、service-peer-mcp 等服务器。
- 基本使用方法
- 启动后,MCP 客户端可按 MCP 协议序列化请求:发送 initialize、随后调用 tools/list 获取服务器支持的工具集合,再逐步调用 tools/call 来执行具体工具并获取结果。
- 客户端通常通过标准输入输出的流进行通信,服务器按行读取 JSON-RPC 请求,处理后输出 JSON-RPC 响应。
- 如需自定义扩展,可在 MCP 服务器内注册新的工具,或实现自定义工具的执行逻辑,以对接特定的业务能力。
- 运行注意
- 各 MCP 服务器在实现中通常包含对外部 API 的封装、以及对自定义工具的处理。启动前请确保相关依赖(如本地的服务注册表、Context Hub、服务管理 API 等)可访问。
- 若将 MCP 服务器投入生产使用,请按需将其与客户端的传输通道(如 Stdio、SSE、WebSocket 等)进行对接和路由,确保安全性与正确的会话管理。
四、服务器配置与对接要点(简述最终配置要点)
- 针对 MCP 客户端需要连接的每个 MCP 服务器,提供一个配置对象,包含:
- server name:服务器标识(如 jfl-context-hub-mcp、service-registry-mcp 等)
- command:启动服务器的可执行命令
- args:启动命令的参数(如端口、配置路径等)
- 注释:注释说明该服务暴露的能力以及如何通过 JSON-RPC 进行请求
- 示例(文本描述,非代码)
- context-hub-mcp:启动命令 node dist/mcp/context-hub-mcp.js,默认端口 4242,暴露 context_get、context_search、memory_search 等工具。
- service-registry-mcp:启动命令 node dist/mcp/service-registry-mcp.js,默认端口 3401,暴露 service_list、service_info、service_call 等工具。
- service-mcp-server:启动命令 node dist/mcp/service-mcp-server.js,暴露对单个服务的标准工具集(status、start、stop、logs、health 等),以及自定义工具。
- peer-mcp-server:启动命令 node dist/mcp/peer-mcp-server.js,暴露 peer 服务发现与调用工具。 注:具体的端口、路径等请依据实际部署环境和编译输出调整。
- 兼容性与扩展
- MCP 服务器实现遵循核心的 JSON-RPC 流程:接收请求、解析方法、返回 payload,以及在错误时返回标准错误码。
- 客户端可以通过已定义的工具集合以及自定义工具进行交互,服务器可扩展新的工具入口和执行逻辑。
五、关键词 上下文管理, JSON-RPC, 服务发现, 工具暴露, 上下文镜像
六、分类ID 5