项目简介

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 核心功能。

安装步骤

  1. 环境准备:

    • 确保已安装 Python 3.8+
    • 确保已安装 Git
    • macOS 用户需要安装 'libmagic': 'brew install libmagic'
    • Ubuntu/Debian 用户需要安装 'libmagic': 'sudo apt-get update && sudo apt-get install -y libmagic1'
  2. 使用 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 客户端中调用这些工具来分析代码仓库:

  1. 分析仓库结构 (analyze_repository_structure): 获取代码仓库的文件目录树结构,帮助理解仓库组织。

    • 需要参数: 'repo_url' (仓库 URL), 'gitlab_credentials' (GitLab 凭据,可选), 'branch' (分支名称,可选)。
  2. 检查仓库文件 (inspect_repository_files): 获取指定文件的内容,用于查看代码或配置文件。

    • 需要参数: 'repo_url' (仓库 URL), 'file_paths' (文件路径列表), 'gitlab_credentials' (GitLab 凭据,可选), 'branch' (分支名称,可选)。
  3. 枚举仓库分支 (enumerate_branches): 列出仓库的所有分支名称。

    • 需要参数: 'repo_url' (仓库 URL), 'gitlab_credentials' (GitLab 凭据,可选)。
  4. 比较 Git 变更 (compare_git_changes): 比较不同分支或提交之间的代码差异。

    • 需要参数: 'repo_url' (仓库 URL), 'source' (源分支/提交,可选), 'target' (目标分支/提交,可选), 'file_path' (文件路径,可选), 'gitlab_credentials' (GitLab 凭据,可选)。
  5. 获取提交历史 (get_commit_history): 获取仓库的提交历史记录。

    • 需要参数: 'repo_url' (仓库 URL), 'branch' (分支名称,可选), 'max_count' (最大提交数量,可选), 'gitlab_credentials' (GitLab 凭据,可选)。
  6. 安全扫描仓库 (security_scan_repository): 使用 Trivy 扫描器检测仓库的安全漏洞。

    • 需要参数: 'repo_url' (仓库 URL), 'gitlab_credentials' (GitLab 凭据,可选), 'branch' (分支名称,可选)。
  7. 代码质量分析 (analyze_code_quality): 自动检测代码语言并进行代码质量分析,包括静态分析和安全扫描。

    • 需要参数: 'repo_url' (仓库 URL), 'language' (编程语言,可选,自动检测), 'gitlab_credentials' (GitLab 凭据,可选), 'branch' (分支名称,可选)。
  8. 分析 PMD 违规 (analyze_pmd_violations): 使用 Prompt 模板分析 PMD 代码质量分析工具的输出结果,生成总结报告 (Prompt 模板,非工具,在 Prompt 列表中查看和使用)。

    • 需要参数: 'pmd_output' (PMD 工具的输出文本)。

请参考 MCP 客户端的使用文档,了解如何在客户端中配置和调用这些工具,以实现代码仓库的自动化分析和评估。

信息

分类

开发者工具