CodeGB MCP 服务器
- 项目简介
- CodeGB 提供一个基于 MCP 的本地服务器,用于向本地的 MCP 客户端(如 Claude/Cursor 等)提供统一的上下文信息、工具能力和资源存取。
- 服务端实现了核心 MCP 协议逻辑、工具定义与执行、以及与本地图数据库的交互,确保客户端可以通过 JSON-RPC 传输请求并获得规范化的响应。
- 主要功能点
- MCP 工具定义与注册:query、context、impact、cypher、list_repos 等工具及其输入模版。
- 请求/响应处理:支持根据工具名称和参数执行相应操作,返回结构化的 JSON 内容。
- 资源与图数据管理:将 Java 代码解析生成的知识图保存至本地存储(Kuzu/KG 图),并提供读取/查询能力。
- 客户端互操作性:通过标准 MCP 客户端实现进行工具调用、上下文查询、影响分析、以及直接 Cypher 查询等。
- 可扩展传输:示例实现通过 stdio(标准输入输出)传输 MCP 请求,后续可扩展为多种传输协议(如 SSE、WebSocket)。
- 安装步骤
- 确保环境中已安装 Node.js 18+ 与 pnpm。
- 在仓库根目录执行依赖安装(如 pnpm install)。
- 构建代码(如 pnpm build)。
- 启动 MCP 服务器(stdio),示例启动方式是在本地工作区执行:将 JAVA_KG_DB_PATH 指向本地索引目录并运行 MCP 服务器启动命令。
- 服务器配置(供 MCP 客户端参考的 JSON 字段含义与示例)
- serverName: 代码中的服务器标识,如 codegb。
- command: 启动 MCP 服务器的命令,例如 pnpm。
- args: 启动命令所需参数数组,例如 ["exec","tsx","packages/mcp-server/src/cli.ts"]。
- cwd: MCP 服务器工作目录,即 CodeGB 项目根目录的绝对路径。
- env: 启动环境变量,至少包含 JAVA_KG_DB_PATH,指向本地的知识图数据库目录。 示例字段含义(仅作参考,实际请按客户端配置模板填写):
- serverName: "codegb"
- command: "pnpm"
- args: ["exec","tsx","packages/mcp-server/src/cli.ts"]
- cwd: "/ABS/PATH/TO/CodeGB"
- env: { "JAVA_KG_DB_PATH": "/ABS/PATH/TO/.javakg" }
- 基本使用方法
- 启动服务器后,MCP 客户端通过 JSON-RPC 形式向服务器发起请求,例如读取资源、调用工具、获取 Prompts 等。
- 客户端通过以下流程可以实现完整工作流:
- 连接服务器并获取可用工具清单(list_tools)。
- 调用 query 工具进行关键词检索,得到匹配的 Class/Method/Field 等结果及分数。
- 调用 context 工具获取某个符号的上下文信息(包括方法、字段、调用关系等)。
- 调用 impact 工具进行依赖分析(上游/下游、深度控制)。
- 使用 cypher 工具直接执行内存中的 Cypher 查询以进行快速验证或统计。
- 服务器端提供了 list_repos 工具以列出已索引的仓库,方便客户端管理与导航。
- 备注
- 本实现基于本地开发环境,适用于离线/半离线工作流,如需部署到服务器或云环境,可进一步扩展传输层(如 WebSocket、SSE)以及鉴权、会话管理等能力。