Ignis 文档型 MCP 服务器
使用说明(简明易懂,面向开发者和系统集成方)
- 项目简介
- Ignis 的 MCP 服务器实现一个文档型后端,向 LLM 客户端提供对 Ignis Monorepo 的文档资源、代码相关工具、以及文档内容的统一访问能力。服务器通过 MCP 标准将资源、工具和 Prompts 暴露给客户端,支持通过 JSON-RPC 进行访问。
- 服务器核心功能包括:托管文档资源、注册和执行工具(如文档搜索、包概览、代码搜索等)、以及提供文档内容的获取接口。还实现了对会话、能力声明和多传输协议的基础支持(如 stdio / WebSocket 等)。
- 主要功能点
- 资源管理(Resources):以 ignis:// 文档为资源入口,客户端可以读取文档元数据、获取文档片段等。
- 工具(Tools):一组 MCP Tool,支持搜索文档、获取文档内容、获取包概览、列出文档等;工具通过统一的 Tool 接口暴露,客户端可调用并获得结构化输出。
- Prompt/模板(Prompts):通过文档服务器提供对 Prompt 的定制化渲染与调用,使 LLM 的交互模式可配置。
- MCP JSON-RPC 通信:利用 MCPServer 提供的端点与客户端进行请求/响应的 JSON-RPC 交互。
- STDI/O 以及其他传输:服务器实现了多路传输能力,便于在不同运行环境中接入。
- 安装与运行步骤
- 需求环境:Node.js 18 及以上(或 Bun 运行环境亦可),并具备对 TS/JS 的执行能力(如使用 ts-node、babel 编译或事先编译为 JS)。
- 编译与运行(示例性描述,实际环境请按项目约定执行):
- 将 TypeScript 代码编译为 JavaScript(生成 dist 目录)。
- 以 Node 运行编译后的入口脚本来启动 MCP 服务器。
- 启动参数(用于 MCP 客户端配置服务器连接信息时需要的字段):
- serverName: ignis-docs
- command: node
- args: ["dist/docs/mcp-server/index.js", "<可选分支名>"](分支名用于获取指定分支的文档内容等,示例中使用 main / 传入的分支名)
- 服务器配置(给 MCP 客户端的配置示例,JSON 形式,非代码片段)
- 服务器名称: ignis-docs
- 启动命令: node
- 参数示例: ["dist/docs/mcp-server/index.js", "main"]
- 注释说明:
- serverName 指定 MCP 服务器在客户端侧的标识,Ignis 的文档 MCP 服务器对外暴露的名称为 ignis-docs。
- command/args 用于客户端在本地启动服务器进程时的命令与参数,客户端配置中不需要包含敏感信息,仅用于连接与通信。
- 基本使用方法(简化流程)
- 客户端在启动后可通过 MCP 的标准请求向服务器读取文档资源、查询文档内容、执行代码/文档相关工具等。
- 常见操作包括:
- 获取文档列表列表(listDocs、listCategories 等工具)
- 查询文档内容(getDocContent:提供文档 ID,返回完整 Markdown 内容)
- 进行文档相关的代码搜索(searchCode、listProjectFiles 等工具)
- 集成要点:
- 客户端通过 MCP 的 JSON-RPC 请求调用服务器暴露的工具和资源。
- 服务器端负责会话管理、能力声明,以及对请求的路由分发和输出格式的验证。