CodeKG MCP 服务器

使用说明(Markdown 格式)

  • 项目简介

    • CodeKG MCP 服务器将 CodeKG 的核心能力以 MCP 服务的形式对外暴露,核心功能包括资源读取与管理、工具注册与执行,以及 Prompt 模板的渲染与上下文包生成,方便 AI 客户端(如 Claude Code、Kilo Code、GitHub Copilot 等)通过 MCP 与后端进行交互。
  • 主要功能点

    • MCP 服务端:实现按 MCP 规范的请求/响应处理,提供对资源、工具、Prompts 的统一访问接口。
    • 资源与数据能力:托管代码图的结构信息、查询结果、片段包等上下文数据,供 LLM 客户端获取参考。
    • 工具注册与调用:LLM 客户端可通过 MCP 调用服务器暴露的工具,如查询代码库、打包片段、获取节点、分析仓库等。
    • Prompt 与模板渲染:定义并渲染 Prompts,支持混合语义与结构化的交互方式,方便在 LLM 中嵌入上下文。
    • 多传输协议支持:服务器端设计上支持包括 stdio、SSE、WebSocket 等传输,方便在不同环境中部署。
    • 会话与能力声明:对会话进行管理,并暴露服务器能力信息,确保安全和可扩展性。
  • 安装步骤

    • 直接从该仓库获取:将代码下载或克隆到本地。
    • 依赖安装:请在 Python 环境中安装必要依赖(仓库通常通过 Poetry/pip 安装,此处以实际项目为准)。
    • MCP 服务器启动:运行 CodeKG 提供的 MCP 启动命令,例如通过代码行接口启动 MCP 服务器并指向目标代码仓库,以便服务器加载图数据并对外暴露 MCP 能力。
    • 运行环境准备:
      • 确保本地仓库中已经生成了图数据和向量索引所需的数据库文件(如 Graph(SQLite) + LanceDB 索引),以及 MCP 配置文件(若有)。
      • 确保权限、端口、传输协议等配置已就绪,以便客户端能够正确连接。
  • 服务器配置(供 MCP 客户端使用的配置信息示例) 说明:以下信息为 MCP 客户端配置示例,描述服务器名称、启动命令及参数等要点,实际使用时请将路径替换为你系统中的实际路径。

    • Per-repo 配置( Claude Code / Kilo Code 使用的 .mcp.json): { "mcpServers": { "codekg": { "command": "codekg", "args": ["mcp", "--repo", "/absolute/path/to/repo"] } } } 注释:command 指向 MCP 服务器的执行入口,args 为启动服务器所需的参数,--repo 指定需要分析的代码仓库路径。

    • Per-repo 配置( Claude Code / Kilo Code 继续使用的示例,与上类似): { "mcpServers": { "codekg": { "command": "codekg", "args": ["mcp", "--repo", "/absolute/path/to/repo"] } } }

    • Cline(全局设置,示例 cline_mcp_settings.json): { "mcpServers": { "codekg-my-repo": { "command": "/absolute/path/to/venv/bin/codekg-mcp", "args": ["--repo", "/absolute/path/to/repo"] } } }

    • Claude Desktop(macOS,示例 claude_desktop_config.json): { "mcpServers": { "codekg": { "command": "/absolute/path/to/venv/bin/codekg-mcp", "args": ["--repo", "/absolute/path/to/repo"] } } }

    • GitHub Copilot(.vscode/mcp.json,示例): { "servers": { "codekg": { "type": "stdio", "command": "/absolute/path/to/.venv/bin/codekg-mcp", "args": [ "--repo", "/absolute/path/to/repo", "--db", "/absolute/path/to/repo/.codekg/graph.sqlite", "--lancedb", "/absolute/path/to/repo/.codekg/lancedb" ] } } }

  • 基本使用方法

    • 启动 MCP 服务器后,客户端通过 JSON-RPC 请求调用以下工具:
      • query_codebase(q, ...): 语义 + 结构混合查询
      • pack_snippets(q, ...): 生成带有源代码片段的上下文包
      • get_node(node_id): 获取指定节点信息
      • graph_stats(): 获取图的统计信息
      • callers(node_id): 精确的调用者查询
      • explain(node_id): 自然语言解释节点
      • analyze_repo(): 对仓库进行全面分析,输出 JSON 结果
    • 客户端示例工作流程
      • 向 MCP 发送请求,查询某一主题的节点
      • 根据返回结果组装上下文信息,供 LLM 使用
      • 如需查看资源或元信息,可调用 get_node / graph_stats 等工具
    • 服务器与客户端的交互要求
      • 客户端需能够通过配置文件正确定位到 MCP 服务器的地址、端口以及传输协议
      • MCP 服务器端实现应在接收到请求后返回标准的 JSON-RPC 响应,包含请求的结果数据或错误信息
  • 其他注意事项

    • MCP 服务器端可能需要在启动时加载代码图及向量索引,确保相关数据库文件(如 Graph.sqlite、lancedb 索引)已经就绪。
    • 为了安全性与稳定性,生产环境应考虑认证、授权、日志与监控等机制。
  • 关键词 CodeKG, 语义检索, 静态分析, JSON-RPC, 知识图谱

  • 分类ID 6

服务器信息