使用说明
项目简介
本项目 'ai-dep-graph-builder' 提供了一个 MCP (Model Context Protocol) 服务器的实现,旨在帮助开发者理解和分析代码库的依赖关系。它通过分析代码仓库,构建代码依赖图,并将这些信息存储在图数据库 ArcadeDB 中。然后,MCP 服务器通过标准的 MCP 协议,将这些代码依赖信息以结构化的方式提供给 LLM 客户端,例如 IDE 插件或 AI 助手,从而支持更智能的代码理解、影响分析和开发辅助功能。
主要功能点
- 代码依赖图构建:自动分析 Java 和 JavaScript 代码仓库,提取函数、类、API 接口等代码组件及其依赖关系,构建代码依赖图。
- AI 辅助描述:利用 AI 技术为代码组件生成描述信息,提升代码理解效率。
- 图数据库存储:使用 ArcadeDB 图数据库存储代码依赖图数据,支持高效的查询和检索。
- MCP 服务器接口:实现 MCP 服务器,提供标准的 JSON-RPC 接口,方便 LLM 客户端集成和调用。
- 多种依赖关系检索工具:提供多种工具,例如列出组件信息、查找上游/下游依赖等,帮助用户快速定位代码依赖关系。
- 可视化示例:提供简单的 Web UI 示例,用于展示代码依赖图和检索结果。
- VSCode 扩展集成:提供 VSCode 扩展,方便开发者在 IDE 中直接进行代码依赖分析和检索。
安装步骤
-
克隆仓库
git clone https://github.com/kenspirit/ai-dep-graph-builder.git cd ai-dep-graph-builder -
安装 ArcadeDB 图数据库
- 根据操作系统选择 'download_start_arcadedb.bat' (Windows) 或 'download_start_arcadedb.sh' (Linux/macOS) 脚本,运行脚本下载并启动 ArcadeDB。
- 确保已安装 JDK 17 或更高版本。
- 启动后,可以通过 ArcadeDB Studio 访问数据库管理界面,默认用户名密码为 'root/playwithdata'。
- 在 ArcadeDB Studio 中创建一个数据库,例如命名为 'code'。
-
配置 'sample.config.js' 文件
- 复制 'sample.config.js' 文件,并根据实际情况修改配置:
- 'graph.connectionOptions': 配置 ArcadeDB 数据库连接信息,包括 host, port, database, username, password。
- 'defaultAiProvider': 选择默认使用的 AI 提供商,例如 'MOONSHOT' 或 'BIGMODEL'。
- 'filesMatchingPatterns': 配置需要分析的文件匹配模式,例如 JavaScript 和 Vue 文件。
- 'aiProviders': 配置 AI 提供商的 API 密钥,例如 'MOONSHOT' 和 'BIGMODEL' 的 'apiKey'。
- 复制 'sample.config.js' 文件,并根据实际情况修改配置:
-
(可选) 安装 'sample-project' 依赖
如果需要使用 'sample-project' 目录下的 Web UI 示例,请进入 'sample-project' 目录并安装依赖:
cd sample-project npm install npm build
服务器配置
MCP 客户端 (例如 IDE 扩展) 需要配置 MCP 服务器的启动命令及其参数,以便建立连接。以下是本仓库 MCP 服务器的典型配置信息 (JSON 格式):
{ "mcpServers": { "code-dependency": { "command": "node", // 启动 MCP 服务器的命令,这里使用 Node.js "args": [ "/path/to/ai-dep-graph-builder/mcp-server.js" // MCP 服务器脚本的绝对路径,请替换为实际路径 ], "env": { }, "disabled": false, "autoApprove": [] } } }
请注意:
- '/path/to/ai-dep-graph-builder/mcp-server.js' 需要替换为 'mcp-server.js' 文件在您本地文件系统中的绝对路径。
- 'command' 和 'args' 字段是 MCP 客户端连接 MCP 服务器的关键配置,请确保配置正确。
- 'env', 'disabled', 'autoApprove' 等字段可以根据 MCP 客户端的具体需求进行配置,通常保持默认值即可。
基本使用方法
-
代码依赖分析
-
通过 VSCode 扩展:
- 安装 'vsc-extension' 目录下的 VSCode 扩展 (具体安装方法请参考 README.md)。
- 在 VSCode 中打开代码仓库根目录。
- 右键单击项目根目录,选择 "Analyze code dependency" 菜单项,输入微服务名称。
- 扩展将自动分析代码,并将依赖信息存储到 ArcadeDB 数据库。
-
通过脚本:
- 设置环境变量 'PROJECT_ROOT' 为代码仓库根目录的绝对路径。
- 设置环境变量 'SERVICE_NAME' 为微服务名称。
- (可选) 设置环境变量 'AI_ENABLED' 为 'true' 以启用 AI 描述生成。
- 运行 'node repo-builder.js' (Java 项目) 或 'node repo-builders/repo-builder.js' (JavaScript 项目) 命令进行代码分析。
-
-
代码依赖检索
-
通过 VSCode Copilot Chat:
- 在 VSCode Copilot Chat 中,可以使用 '@code-dependency' 命令检索代码依赖关系。
- 例如,输入 '@code-dependency /dependency downstream' 可以查询当前选中函数的下游依赖。
- 可以使用 '@code-dependency /dependency upstream' 查询上游依赖, '@code-dependency /dependency all' 查询所有依赖。
-
通过 Web UI 示例:
- 启动 'sample-project' 目录下的 Web UI 示例 (如果已安装依赖)。
- 访问 'http://localhost:3000/',在 UI 界面中可以进行代码依赖关系的查询和可视化展示。
-
本仓库提供的 MCP 服务器和相关工具可以帮助开发者更好地理解和管理代码依赖关系,提升开发效率和代码质量。
信息
分类
开发者工具