使用说明

项目简介

本项目 '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 中直接进行代码依赖分析和检索。

安装步骤

  1. 克隆仓库

    git clone https://github.com/kenspirit/ai-dep-graph-builder.git
    cd ai-dep-graph-builder
  2. 安装 ArcadeDB 图数据库

    • 根据操作系统选择 'download_start_arcadedb.bat' (Windows) 或 'download_start_arcadedb.sh' (Linux/macOS) 脚本,运行脚本下载并启动 ArcadeDB。
    • 确保已安装 JDK 17 或更高版本。
    • 启动后,可以通过 ArcadeDB Studio 访问数据库管理界面,默认用户名密码为 'root/playwithdata'。
    • 在 ArcadeDB Studio 中创建一个数据库,例如命名为 'code'。
  3. 配置 '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'。
  4. (可选) 安装 '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 客户端的具体需求进行配置,通常保持默认值即可。

基本使用方法

  1. 代码依赖分析

    • 通过 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 项目) 命令进行代码分析。
  2. 代码依赖检索

    • 通过 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 服务器和相关工具可以帮助开发者更好地理解和管理代码依赖关系,提升开发效率和代码质量。

信息

分类

开发者工具