LFX Changelog MCP Server
使用说明(Markdown 格式):
-
项目简介
- 这是一个完整的 MCP 服务器实现,基于 Model Context Protocol(MCP)构建,提供资源(Resources)、工具(Tools)注册与执行,以及 Prompt 模板渲染等功能,供 LLM 客户端通过 MCP 协议进行上下文查询和外部功能调用。服务器通过不同传输通道(如标准输入/输出、SSE、WebSocket 等)与客户端进行 JSON-RPC 交互,并管理会话、能力声明等元信息。
-
主要功能点
- 公共资源与工具暴露:提供公开的资源接口(如公开的产品、公开的变更日志)以及无需认证即可调用的工具。
- 管理工具与私有工具:提供管理员专用工具,用于创建、更新、删除产品与变更日志等操作,并通过 API Key 进行权限控制。
- Prompts 与上下文:集成与渲染用于 LLM 的提示模板,支持将外部数据整合进对话上下文。
- 安全与授权:通过 API Key/认证机制,区分公开与受保护的工具和资源,并实现 RBAC 与最小权限原则。
- 多传输协议:设计上支持多种传输方式(如 Stdio、SSE、WebSocket 等),便于在不同运行环境中部署。
-
安装步骤
- 克隆仓库并进入项目根目录。
- 安装依赖并构建整个工作区(Monorepo:Yarn、Turborepo)。
- 构建 MCP 服务包:将 @lfx-changelog/mcp-server 代码编译成可执行输出。
- 运行 MCP 服务器:启动编译产物,服务器会通过 STDIO 传输与 MCP 客户端通信,默认 BASE_URL 为 http://localhost:4204(如有需要,可通过环境变量覆盖)。
- 运行后,服务器将监听并通过 MCP 传输与客户端进行 JSON-RPC 的交互。
-
服务器配置(用于 MCP 客户端连接的 JSON 配置示例说明) 说明:MCP 客户端需要的配置通常包含服务器名称、启动命令及参数等信息,用于与 MCP 服务器建立连接。下面给出基于仓库信息的准确描述,便于按需填写客户端配置。该配置仅用于描述,不是代码。
{ "serverName": "lfx-changelog-mcp", "command": "node", "args": ["dist/index.js"], "env": { "BASE_URL": "http://localhost:4204" } // 注释:BASE_URL 用于 MCP 服务器内部获取 OpenAPI/资源等接口地址,客户端本身不需要直接依赖该字段,仅用作服务器运行时的内部配置。 }
说明:
- serverName:MCP 服务器在该环境中的唯一标识。
- command:启动 MCP 服务器的命令(这里以 Node 为例,需先将 TypeScript 源码编译成 dist 目录下的可执行文件)。
- args:启动命令的参数,通常指向编译后的入口(dist/index.js)。
- env(可选):运行时环境变量,必需设定 BASE_URL,以便 MCP 服务器获取自身服务地址。
- 客户端通常不需要读取或使用此配置,只需知道服务器名称、启动命令与参数即可进行连接。
-
基本使用方法
- 启动 MCP 服务器后,LLM 客户端通过 MCP 协议与服务器通信,获取资源、执行工具、渲染 Prompts。
- 客户端可以请求公开资源(如公开的产品、公开的变更日志),或调用 Admin 工具进行受保护的操作(需提供 API Key 或认证信息)。
- 通过 MCP 提供的工具与资源,LLM 可以完成如检索、创建、更新、发布变更日志等工作流。
-
重要注意
- MCP 服务器本身需要一个后端 API 作为数据源(应用后端 API),本实现中通过 ApiClient 调用应用的公开/受保护 REST API 以获取数据并返回给 MCP 客户端。
- 运行环境需确保 Node.js 版本、数据库和后端 API 可用,且在本地进行集成测试时可通过 OpenSearch/数据索引等服务模拟生产环境。
-
参考与扩展
- MCP 服务器提供的资源与工具可根据需要继续扩展,以覆盖更多资源、更多工具的调用,以及更丰富的提示渲染能力。