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 服务器提供的资源与工具可根据需要继续扩展,以覆盖更多资源、更多工具的调用,以及更丰富的提示渲染能力。

服务器信息