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

服务器信息