项目简介
Argus 是一个基于 Model Context Protocol (MCP) 构建的后端服务器,旨在为大型语言模型(LLM)客户端提供代码仓库分析和安全评估能力。它集成了多种代码分析工具和安全扫描器,可以帮助用户深入了解代码仓库的结构、质量和潜在的安全风险。通过 MCP 协议,Argus 可以方便地与各种 LLM 应用集成,为代码相关的智能任务提供强大的上下文支持。
主要功能点
- 多语言代码分析: 支持 Go, Java, Python, JavaScript/TypeScript 等多种编程语言的代码分析,并能自动检测代码语言。
- 代码质量评估: 集成 gocyclo, golangci-lint, PMD, Pylint, ESLint 等静态分析工具,评估代码质量和复杂度。
- 安全漏洞扫描: 集成 Trivy 漏洞扫描器,检测代码仓库中潜在的安全漏洞。
- Git 操作: 支持分支枚举、提交历史分析、Diff 比较、仓库结构可视化等 Git 操作。
- 灵活的 MCP 配置: 通过 JSON-RPC 协议与客户端通信,支持工具注册、Prompt 模板定义等 MCP 核心功能。
安装步骤
-
环境准备:
- 确保已安装 Python 3.8+
- 确保已安装 Git
- macOS 用户需要安装 'libmagic': 'brew install libmagic'
- Ubuntu/Debian 用户需要安装 'libmagic': 'sudo apt-get update && sudo apt-get install -y libmagic1'
-
使用 uvx 安装 Argus:
uvx https://github.com/athapong/argus argus- 'uvx' 是一个用于安装和运行 Python 应用的工具,如果您的环境中没有安装 'uvx',请先安装 'uvx'。
服务器配置
以下 JSON 配置信息用于 MCP 客户端连接 Argus 服务器。请将以下配置添加到您的 MCP 客户端配置中,以便客户端能够找到并启动 Argus 服务器。
{ "serverName": "Argus", "command": "uvx", "args": [ "--from", "git+https://github.com/athapong/argus", "argus" ], "alwaysAllow": [ "analyze_repository_structure", "inspect_repository_files", "enumerate_branches", "compare_git_changes", "get_commit_history", "security_scan_repository", "analyze_code_quality", "analyze_pmd_violations" ], "timeout": 300 }
配置参数说明:
- 'serverName': 服务器名称,可以自定义,例如 "Argus"。
- 'command': 启动服务器的命令,这里使用 'uvx' 命令。
- 'args': 传递给 'uvx' 命令的参数,用于指定 Argus 的安装源和应用名称。
- '--from git+https://github.com/athapong/argus': 指定从 GitHub 仓库 'https://github.com/athapong/argus' 安装。
- 'argus': 指定安装的应用名称为 'argus'。
- 'alwaysAllow': 允许客户端直接调用的工具列表,列出的工具无需用户确认即可执行。
- 'analyze_repository_structure': 分析仓库结构。
- 'inspect_repository_files': 检查仓库文件内容。
- 'enumerate_branches': 枚举仓库分支。
- 'compare_git_changes': 比较 Git 变更。
- 'get_commit_history': 获取提交历史。
- 'security_scan_repository': 安全扫描仓库。
- 'analyze_code_quality': 代码质量分析。
- 'analyze_pmd_violations': 分析 PMD 违规(Prompt 模板)。
- 'timeout': 服务器命令执行超时时间,单位为秒。
基本使用方法
Argus 通过 MCP 协议提供以下主要工具,您可以在 MCP 客户端中调用这些工具来分析代码仓库:
-
分析仓库结构 (analyze_repository_structure): 获取代码仓库的文件目录树结构,帮助理解仓库组织。
- 需要参数: 'repo_url' (仓库 URL), 'gitlab_credentials' (GitLab 凭据,可选), 'branch' (分支名称,可选)。
-
检查仓库文件 (inspect_repository_files): 获取指定文件的内容,用于查看代码或配置文件。
- 需要参数: 'repo_url' (仓库 URL), 'file_paths' (文件路径列表), 'gitlab_credentials' (GitLab 凭据,可选), 'branch' (分支名称,可选)。
-
枚举仓库分支 (enumerate_branches): 列出仓库的所有分支名称。
- 需要参数: 'repo_url' (仓库 URL), 'gitlab_credentials' (GitLab 凭据,可选)。
-
比较 Git 变更 (compare_git_changes): 比较不同分支或提交之间的代码差异。
- 需要参数: 'repo_url' (仓库 URL), 'source' (源分支/提交,可选), 'target' (目标分支/提交,可选), 'file_path' (文件路径,可选), 'gitlab_credentials' (GitLab 凭据,可选)。
-
获取提交历史 (get_commit_history): 获取仓库的提交历史记录。
- 需要参数: 'repo_url' (仓库 URL), 'branch' (分支名称,可选), 'max_count' (最大提交数量,可选), 'gitlab_credentials' (GitLab 凭据,可选)。
-
安全扫描仓库 (security_scan_repository): 使用 Trivy 扫描器检测仓库的安全漏洞。
- 需要参数: 'repo_url' (仓库 URL), 'gitlab_credentials' (GitLab 凭据,可选), 'branch' (分支名称,可选)。
-
代码质量分析 (analyze_code_quality): 自动检测代码语言并进行代码质量分析,包括静态分析和安全扫描。
- 需要参数: 'repo_url' (仓库 URL), 'language' (编程语言,可选,自动检测), 'gitlab_credentials' (GitLab 凭据,可选), 'branch' (分支名称,可选)。
-
分析 PMD 违规 (analyze_pmd_violations): 使用 Prompt 模板分析 PMD 代码质量分析工具的输出结果,生成总结报告 (Prompt 模板,非工具,在 Prompt 列表中查看和使用)。
- 需要参数: 'pmd_output' (PMD 工具的输出文本)。
请参考 MCP 客户端的使用文档,了解如何在客户端中配置和调用这些工具,以实现代码仓库的自动化分析和评估。
信息
分类
开发者工具