使用说明

项目简介

Archai 静态代码分析 MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的后端应用,旨在为大型语言模型 (LLM) 客户端提供静态代码分析服务。它集成了代码解析和多种代码质量规则,能够检测Java代码中的架构设计问题和循环依赖等问题。通过 MCP 协议,LLM 可以调用此服务器提供的工具,获取代码分析结果,从而更好地理解和处理代码上下文。

主要功能点

  • 静态代码分析: 提供对 Java 代码的静态分析能力,无需实际运行代码即可检测潜在问题。
  • 架构分析工具: 内置六边形架构分析工具,帮助检查代码是否符合六边形架构原则,提升代码可维护性和可测试性。
  • 循环依赖分析工具: 检测代码模块间的循环依赖关系,避免因循环依赖导致的代码耦合和维护困难。
  • 可配置规则: 内置一系列预定义的代码质量规则,可以根据项目需求扩展和定制规则。
  • MCP 标准接口: 遵循 MCP 协议,通过 JSON-RPC 与客户端通信,易于集成到支持 MCP 协议的 LLM 应用中。
  • Stdio 传输协议: 使用 Stdio 作为默认传输协议,方便部署和运行。

安装步骤

  1. 安装 Bun: 确保你的环境中已安装 Bun JavaScript 运行时环境 (版本 >= v1.2.5,仓库 'README.md' 中指定)。你可以访问 Bun官网 获取安装指南。
  2. 安装依赖: 克隆仓库到本地后,在项目根目录下运行以下命令安装项目依赖:
    bun install

服务器配置

MCP 客户端需要配置以下 JSON 格式信息以连接到 Archai MCP 服务器。请注意,以下配置是根据仓库 'README.md' 和 'mcp.ts' 文件内容生成的,用于指导 MCP 客户端正确启动和连接 Archai MCP 服务器。

{
  "mcpServers": {
    "archai": {
      "command": "bun",
      "args": [
        "run",
        "./mcp.ts" // mcp.ts 文件相对于项目根目录的路径,请根据实际情况调整
      ]
    }
  }
}

配置参数说明:

  • '"mcpServers"': MCP 服务器配置的根节点。
  • '"archai"': 为当前 MCP 服务器配置定义一个名称,客户端可以通过此名称引用该服务器。你可以自定义名称,例如 "static-analyzer"。
  • '"command"': 启动 MCP 服务器的命令。这里使用 'bun' 命令来运行 TypeScript 代码。
  • '"args"': 启动命令的参数列表。
    • '"run"': 'bun run' 命令用于执行指定的脚本或文件。
    • '"./mcp.ts"': 指定要执行的服务器入口文件为项目根目录下的 'mcp.ts'。请确保 'mcp.ts' 文件存在于你克隆仓库的根目录下,如果你的工作目录不是仓库根目录,请根据实际情况调整此路径。

注意: MCP 客户端需要能够找到 'bun' 命令,并确保 'bun' 命令能够正确执行 'mcp.ts' 文件。 你可能需要根据你的系统环境配置 'bun' 到环境变量中,或者使用绝对路径指定 'bun' 命令的位置。

基本使用方法

  1. 启动服务器: 在项目根目录下,使用以下命令启动 Archai MCP 服务器:

    bun run mcp.ts

    服务器成功启动后,将在控制台输出 "Archai Static Analyzer MCP Server running on stdio"。

  2. 配置 MCP 客户端: 在你的 MCP 客户端应用中,根据 服务器配置 章节的说明,配置连接到 Archai MCP 服务器。确保客户端能够通过 Stdio 协议与服务器通信。

  3. 调用工具: 通过 MCP 客户端,你可以调用 Archai MCP 服务器提供的以下工具进行代码分析:

    • hexagonal-architecture-analyzer: 六边形架构分析工具。

      • 描述: "Analyze the hexagonal architecture of the code"
      • 参数:
        • 'filepath': 要分析的文件路径 (字符串类型)。 需要相对于项目根目录的路径。
    • circular-dependency-analyzer: 循环依赖分析工具。

      • 描述: "Analyze the circular dependency of the code"
      • 参数:
        • 'filepath': 要分析的文件路径 (字符串类型)。 需要相对于项目根目录的路径。

    客户端需要构造符合 MCP 协议的 JSON-RPC 请求,指定要调用的工具名称和参数,发送给 Archai MCP 服务器。服务器将返回分析结果。

示例 (假设使用 'hexagonal-architecture-analyzer' 工具):

客户端发送请求 (JSON-RPC 格式, 实际请求格式取决于 MCP 客户端实现):

{
  "jsonrpc": "2.0",
  "method": "tool/hexagonal-architecture-analyzer",
  "params": {
    "projectRoot": "/path/to/your/project", // 你的项目根目录的绝对路径 (需要替换为实际路径)
    "filepath": "src/com/example/YourFile.java" // 要分析的文件相对于项目根目录的路径
  },
  "id": 1
}

服务器返回响应 (JSON-RPC 格式):

{
  "jsonrpc": "2.0",
  "result": {
    "content": [
      {
        "type": "text",
        "text": "use case class must have suffix UseCase\nclass cannot have more than three dependencies" // 分析结果文本
      }
    ]
  },
  "id": 1
}

请根据你的 MCP 客户端的具体使用方式和文档,参考以上信息进行配置和使用。

信息

分类

开发者工具