inkeep-mcp
使用说明(Markdown 格式)
-
项目简介
- 该仓库实现了一个 MCP 服务器端,用于向 MCP 客户端暴露文档源注册、资源查询以及对文档站点的查询能力。服务器通过标准的 JSON-RPC 调用在 stdin/stdout 上与客户端通信,支持初始化、列出工具、执行工具、以及简易的问答查询流程。
-
主要功能点
- 注册与管理文档源:通过注册表管理已知的文档站点(别名、URL、描述),并可添加/移除站点。
- 工具暴露与执行:实现工具清单(list_documentation_sources)和查询工具(ask_documentation),允许 MCP 客户端请求并执行对已注册站点的文档查询。
- MCP 初始化与能力声明:实现 initialize 请求,返回协议版本、服务器信息与能力信息,便于客户端初始化并了解可用工具。
- 以 Inkeep 客户端为基础的站点查询能力:内部通过 InkeepClient 与站点交互,完成对文档的检索与问答。
- 适配多种传输场景:以标准输入输出的 JSON-RPC 形式进行通信,可与支持 MCP 的客户端(如 Claude Desktop、Gemini CLI 等)对接。
-
安装步骤
- 克隆仓库并进入项目目录
- 安装依赖(依据 requirements.txt 或 poetry 等工具安装所需依赖)
- 运行 MCP 服务器脚本 mcp_server.py,让客户端通过标准输入输出与之交互
- 通过客户端配置连接到该 MCP 服务器
-
服务器配置(MCP 客户端需要的启动配置) 说明:以下 JSON 用于 MCP 客户端在本地启动并与服务器建立连接时的配置。实际使用时,请将 absolute/path 替换为你的实际路径,serverName 与命令参数按下述示例填写。
{ "serverName": "inkeep", "command": "python3", "args": ["/absolute/path/to/inkeep-mcp/mcp_server.py"], "env": {"PYTHONUNBUFFERED": "1"} }
注释说明:
- serverName: MCP 客户端用于标识该服务器的名称,建议与仓库名称保持一致。
- command: 启动服务器所需的命令,例如 python3。
- args: 启动命令的参数,需提供服务器脚本的完整路径。
- env: 启动环境变量,在此示例中设置 PYTHONUNBUFFERED 以确保输出流实时刷新。
-
基本使用方法
- 启动与初始化
- MCP 客户端按配置启动服务器进程,发送 initialize 请求以获取服务器的协议版本、能力与服务器信息。
- 列出与管理文档源
- 使用 list 工具查看当前已注册的站点及其描述。
- 使用 add 命令添加新的站点别名及 URL,或使用 remove 命令删除不再需要的站点。
- 对话与查询
- 您可以对已注册站点发起 ask_documentation 的调用,提供 source(别名或 URL)与 question,服务器将返回相关文档查询的结果文本。
- 兼容性与清理
- 支持“clean”操作清除指定源的本地缓存配置(若客户端实现了对应流程)。
- 典型工作流
- 客户端启动后,通过 initialize 确认服务能力。
- 客户端通过 tools/list 获取可用站点列表。
- 客户端通过 tools/call 请求 ask_documentation,传入 source 与 question,即时获取官方文档的回答文本。
- 启动与初始化
-
关键词
- 文档检索, 知识源管理, JSON-RPC 流式通信, 跨站点查询, LLM 上下文服务
-
分类
- 5