使用说明
项目简介
Archai 静态代码分析 MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的后端应用,旨在为大型语言模型 (LLM) 客户端提供静态代码分析服务。它集成了代码解析和多种代码质量规则,能够检测Java代码中的架构设计问题和循环依赖等问题。通过 MCP 协议,LLM 可以调用此服务器提供的工具,获取代码分析结果,从而更好地理解和处理代码上下文。
主要功能点
- 静态代码分析: 提供对 Java 代码的静态分析能力,无需实际运行代码即可检测潜在问题。
- 架构分析工具: 内置六边形架构分析工具,帮助检查代码是否符合六边形架构原则,提升代码可维护性和可测试性。
- 循环依赖分析工具: 检测代码模块间的循环依赖关系,避免因循环依赖导致的代码耦合和维护困难。
- 可配置规则: 内置一系列预定义的代码质量规则,可以根据项目需求扩展和定制规则。
- MCP 标准接口: 遵循 MCP 协议,通过 JSON-RPC 与客户端通信,易于集成到支持 MCP 协议的 LLM 应用中。
- Stdio 传输协议: 使用 Stdio 作为默认传输协议,方便部署和运行。
安装步骤
- 安装 Bun: 确保你的环境中已安装 Bun JavaScript 运行时环境 (版本 >= v1.2.5,仓库 'README.md' 中指定)。你可以访问 Bun官网 获取安装指南。
- 安装依赖: 克隆仓库到本地后,在项目根目录下运行以下命令安装项目依赖:
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' 命令的位置。
基本使用方法
-
启动服务器: 在项目根目录下,使用以下命令启动 Archai MCP 服务器:
bun run mcp.ts服务器成功启动后,将在控制台输出 "Archai Static Analyzer MCP Server running on stdio"。
-
配置 MCP 客户端: 在你的 MCP 客户端应用中,根据 服务器配置 章节的说明,配置连接到 Archai MCP 服务器。确保客户端能够通过 Stdio 协议与服务器通信。
-
调用工具: 通过 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 客户端的具体使用方式和文档,参考以上信息进行配置和使用。
信息
分类
开发者工具