mcpField
A
argus

argus

本地服务
github.com/ironclawdevs27开发工具512 周前更新

关于 argus

argus 是面向 AI 辅助开发的 Chrome 网页 QA MCP 服务,可审计应用的实际渲染结果并返回分级问题;Aegis 会在数据外发时隐藏敏感信息。

主要功能

  1. 01检查 JavaScript、网络、无障碍与安全等问题
  2. 02比较环境和视觉基线
  3. 03追踪新增、已解决及持续存在的问题
  4. 04通过 Aegis 隐去敏感输出
  5. 05支持 CI、命令行和 Slack 报告

适用场景

  1. 01在代码离开开发者机器前检查本地应用
  2. 02发现开发环境与预发布环境之间的回归
  3. 03引导 Agent 执行审计、修复和复查循环

MCP 相关

提供 MCP 工具,用于审计 Chrome 标签页、比较环境、查看问题和验证 GitHub 拉取请求。Aegis 会在工具响应到达 Agent 前过滤敏感信息。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ironclawdevs27-argus": {
"command": "npx",
"args": [
"-y",
"argusqa-os"
],
"env": {
"TARGET_DEV_URL": "<TARGET_DEV_URL>",
"TARGET_STAGING_URL": "<TARGET_STAGING_URL>",
"SLACK_BOT_TOKEN": "<SLACK_BOT_TOKEN>",
"FIGMA_API_TOKEN": "<FIGMA_API_TOKEN>",
"ARGUS_REDACT_SENSITIVE": "<ARGUS_REDACT_SENSITIVE>"
}
}
}
}
启动命令npx -y argusqa-os
需要配置的环境变量
TARGET_DEV_URLBase URL of the dev environment to audit (e.g. http://localhost:3000)
TARGET_STAGING_URLBase URL of the staging environment — used by argus_compare for dev vs staging diff. Omit to use CSS analysis mode.
SLACK_BOT_TOKEN密钥Slack bot token (xoxb-...) for posting reports. Omit to generate a local report.html instead.
FIGMA_API_TOKEN密钥Figma personal access token — enables argus_design_audit to fetch design specs from a Figma frame and compare them against the live DOM (13 fidelity finding types). Omit to skip design fidelity audits.
ARGUS_REDACT_SENSITIVEAegis confidentiality egress boundary. Default ON: every tool response is redacted so secrets, PII, and exploit detail never cross into the calling agent's context (the local on-disk report keeps full fidelity). Set to 0 for byte-identical pre-Aegis output.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmargusqa-os10.0.0

工具

9

收录的工具列表 · 更新于 2 周前

参数类型必填说明
urlstring是要审计的完整 URL,包括协议和路径(例如 http://localhost:3000/checkout)。运行中的 Chrome 实例必须能够访问该 URL。
cacheboolean否为 true 时,如果存在此 URL 的缓存结果(来自本会话中先前的 argus_audit 调用),则返回该结果而不重新爬取。可在修复循环中使用,以较低成本重新读取上次审核结果。缓存按会话隔离,最多 20 条,采用 LRU 淘汰。
criticalboolean否为 true 时,将 console.error 调用提升为 critical 严重级别。对于登录、结账、仪表板等业务关键路由,任何错误都属于阻断问题,应设为 true。

详细介绍

Argus — AI 辅助开发的 QA 层

你的 AI Agent 编写代码。Argus 检查它实际构建了什么。

MCP Server

npm Harness License: MIT

只需在 MCP 配置中添加一行,即可让 Claude(或任何 MCP Agent)使用真正的 Chrome 审计引擎 — 67 个审计类别 · 149 种问题类型 · 无需编写或维护测试文件。 借助 Aegis,它发现的问题绝不会将你的秘密泄露给大模型。

▶ 查看实际效果 → argus-qa.com

快速开始 · 修复循环 · 问题检测范围 · 适配你的技术栈 · MCP 工具 · 完整设置 · 参考


Argus 为何存在

如今,AI Agent 编写了大部分代码 — 而它们判断工作是否完成的依据是代码能否编译且看起来已完成,而不是浏览器中实际发生了什么。第三次点击时未捕获的异常。通过 HTTP 发送凭据的表单。4 秒的 LCP。暗色模式下消失的按钮。在无限循环中被反复请求的 API 端点。

Argus 弥合了这一差距。 它通过 Chrome DevTools Protocol 驱动真正的 Chrome,对本地运行的应用进行检查,并向 Agent(或你)提供一份按严重程度排序的结构化错误报告。Agent 修复;Argus 重新检查;在代码离开你的设备之前,整个循环就已完成。

🧪 永远无需测试文件Argus 审计的是渲染后的应用 — DOM、控制台、网络、像素 — 而不是源代码。无需编写任何内容,也无需在 Agent 重构时维护测试
🤖 专为 Agent 循环打造Claude 唯一可通过 MCP 原生调用的 QA 引擎。审计 → 修复 → 重新审计,无需离开对话
🔒 默认保障 Agent 安全Aegis:在每个出口边界对发现结果进行脱敏 — 秘密、个人身份信息和漏洞利用细节绝不会进入大模型的上下文窗口(OWASP LLM02,默认开启,故障关闭)
🧰 也可作为常规 QA 工具使用CLI 批量审计、GitHub Action PR 门禁、附带截图的 Slack 报告、开发环境与预发布环境差异对比、监视模式 — 可搭配 Agent 使用,也可独立使用

快速开始

无需安装。 首次运行时,npx 会获取 Argus。

1 — 在项目根目录的 .mcp.json 中添加两行:

{
  "mcpServers": {
    "chrome-devtools": { "command": "npx", "args": ["-y", "chrome-devtools-mcp@latest"] },
    "argus":           { "command": "npx", "args": ["-y", "argusqa-os"] }
  }
}

或通过 Claude Code 命令行添加:

claude mcp add chrome-devtools -- npx -y chrome-devtools-mcp@latest
claude mcp add argus -- npx -y argusqa-os

2 — 启动 Chrome(自动检测你的 Chrome 并设置正确的标志):

npx -y -p argusqa-os argus-chrome
更喜欢手动启动 Chrome?(macOS / Windows / Linux 命令)
# macOS
open -a "Google Chrome" --args --remote-debugging-port=9222 --headless=new

# Windows (PowerShell)
& "C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --headless=new --no-sandbox --disable-gpu --user-data-dir="$env:TEMP\chrome-argus"

# Linux
google-chrome --remote-debugging-port=9222 --headless=new --no-sandbox

3 — 向你的 Agent 提问:

Run argus_audit on http://localhost:3000

就是这样。发现的问题会以结构化形式返回,并按严重程度排序 — 可直接显示在对话中、发送到 Slack,或保存为本地 report.html。遇到问题?运行 npx -y -p argusqa-os argus-doctor,即可通过一条命令诊断你的设置。


修复循环

Argus 在 Agent 编码会话中的工作方式如下:

You:    Build me a checkout page with a card form.
Agent:  [writes the code, dev server renders it]

You:    Run argus_audit on http://localhost:3000/checkout
Argus:  ● 2 critical · 3 warnings
        ● uncaught TypeError in checkout.js (visible on submit)
        ● form posts over HTTP — security_no_https
        ▲ card inputs missing labels + autocomplete (a11y/WCAG)
        ▲ LCP 4.1s — hero image unoptimized
        ▲ duplicate POST /api/cart ×7 — likely render loop

Agent:  [fixes all five]

You:    Run argus_get_context
Argus:  ✓ resolved: 5 · persisting: 0 · new: 0

argus_get_context 会与之前的快照进行差异比较,让 Agent 准确了解修复了什么、破坏了什么,以及还剩下什么 — 无需重新阅读大段输出。

“但我的 Agent 已经能驱动浏览器了……” — 确实如此。驱动不等于判断。原始浏览器 MCP(Playwright MCP、裸用的 chrome-devtools-mcp)为 Agent 提供了手和眼睛;Agent 随后必须在每次会话中重新推导要检查的内容,把上下文消耗在翻查控制台日志上。Argus 则是在此之上的判断层:包含 149 种已编码的问题类型,并具备阈值、严重程度策略、跨运行基线、偶发问题过滤、重复项去重和根因提示 — 一次调用即可返回,默认脱敏。


Argus 能捕获的问题

32 个分析引擎、149 种不同的问题类型,无需维护测试文件:

类别检测内容
JavaScript未捕获的异常、未处理的 Promise 拒绝、关键路由上的 console.error
网络与 APIHTTP 5xx、401/403 身份验证失败、重复 API 调用(无限循环)、4xx 错误、失效链接
性能LCP > 2500ms、CLS > 0.1、TTFB > 800ms、慢速 API > 1s/3s、载荷 > 500KB/2MB、JS 包 > 500KB
无障碍axe-core(80 多条 WCAG 规则)、色盲模拟、缺失 ARIA、键盘焦点、标题层级
SEO缺少 meta 描述、OG 标签、canonical、viewport、h1
安全localStorage/URL 中的身份验证令牌、eval()、缺少 CSP/X-Frame-Options、CSP 违规、外部脚本缺少 SRI、源码映射暴露、开放重定向、npm CVE
CSS级联覆盖、组件样式泄漏、未使用的规则、React 内联样式冲突
内容作为可见文本的 null/undefined、Lorem ipsum、失效图片、空数据列表
响应式在 375px/768px 下出现水平溢出、触控目标 < 44×44px
内存通过 V8 堆快照检测分离的 DOM 节点、导航过程中的堆增长
视觉通过 pixelmatch 进行像素级截图回归(≥0.1% 警告,≥5% 严重)
Figma设计与实现的一致性——13 种属性类型(颜色、间距、排版、阴影等)
表单缺少 required、autocomplete、aria-describedby;未标注的输入框
字体FOIT、FOUT、缺少回退字体、加载缓慢 > 1s、格式不理想
动效违反 prefers-reduced-motion、autoplay 未提供暂停控件
主题深色模式缺失——静态 CSS 变量、缺少 prefers-color-scheme 处理
网络基线与已保存的 HAR 基线相比,新增请求、缺少请求、状态码回归
环境差异开发环境与预发布环境的差异——截图差异、DOM 更改、控制台/网络回归

此外,每项发现都会经过后处理:

后处理器增补内容
智能基线过滤在多次运行中反复变化的发现会标记为 noisy,并降级为 info——纯粹基于跨运行启发式判断,不调用 API(设置 ARGUS_NOISE_FILTER=0 可禁用)
根因关联为新发现标注最可能导致问题的近期 git 提交和文件(设置 ARGUS_ROOT_CAUSE=0 可禁用)

所有发现都会归类为 critical / warning / info,并发送到相应的 Slack 频道,或显示在本地 HTML 报告中。有关每项发现的严重性表格和检测方法,请参阅 REFERENCE.md。


适配你的技术栈

Argus 检查的是渲染后的输出,而不是源代码,因此从设计上就与框架无关。只要能在 Chrome 中运行,Argus 就能检查:

SPA 框架React、Vue、Angular、Svelte/SvelteKit、Solid、Preact、Astro……
元框架Next.js、Nuxt、Remix、Gatsby,以及框架感知的额外功能:Next.js 和 React Router 路由发现、基于导入图的 PR 映射(“此组件发生更改 → 仅检查渲染该组件的路由”)、感知单体仓库路径
服务端渲染Rails、Django、Laravel、Flask、Spring、PHP——以及任何向浏览器提供 HTML 的技术
静态页面 / 无框架纯 HTML/CSS/JS、文档站点、落地页
API(通过页面)响应架构验证、对页面发出的每个请求进行状态/耗时检查

**如实说明其局限:**仅支持 Chrome/Chromium 渲染(不涉及 Safari/Firefox 引擎差异),仅支持 Web(不支持原生移动/桌面应用),后端服务通过页面生成的流量进行检查,而不是作为独立的 API 测试套件进行检查。


保密性 — Aegis 出站边界

默认开启。 Argus 会审计你的应用,查找机密信息和漏洞,因此它的发现结果恰恰是你最不希望离开本机的数据。它们跨越任何外部边界之前,Aegis 都会对其进行脱敏。对于采用 AI Agent 的团队,这正是“我们在使用 AI QA 工具”与“我们能准确告诉安全负责人它为何安全”之间的区别。

发送到外部接收端的发现结果——MCP 工具响应(会进入发起调用的 Agent 的上下文窗口,并传输到该 Agent 的模型提供商)、Slack 消息、GitHub PR 评论及其 ::error 注释、托管版/CI HTML 报告或 CI 日志——都会被精简为按需展示的内容:敏感发现结果只会以其 type + route + severity 和一个 🔒 标记的形式传出,绝不会包含原始载荷(message、evidence、请求/响应正文、标头、Cookie、堆栈)。URL 会去除查询字符串后再展示(令牌可能藏在其中)。良性发现结果会保留其消息,但仍会对消息进行清理,以去除其中意外嵌入的机密信息或个人身份信息(PII)。

原则行为
保留本地完整性磁盘上的 JSON 报告和本地打开的 HTML 会保留 100% 的详细信息——脱敏只会在数据传出时删除详细信息
故障时默认阻止如果分类器出错或发现结果形态未知,Aegis 会增加脱敏,不会减少
默认拒绝只有安全字段的显式允许列表中的字段才会传出;新字段在被主动加入允许列表前不会泄露任何信息
5 层检测类别规则 ∪ 13 个机密信息正则表达式 ∪ 统计稀有度(熵 / 令牌效率)∪ 7 个通过 Luhn 校验的 PII 规则 ∪ 上下文增强
选择退出ARGUS_REDACT_SENSITIVE=0 → 输出与启用 Aegis 前逐字节一致

这会在 Argus 自身的边界处实施 OWASP LLM02:2025 — 敏感信息泄露缓解措施(数据最小化、脱敏、默认拒绝的出站过滤)。可选的仅限本地重新填充保险库(ARGUS_REDACT_VAULT=1)可生成可逆且不含信息的令牌,用于生成差异稳定的工件;使用 npm run report:rehydrate 可在本地还原。完整的行为变更说明请参阅 CHANGELOG.md。


MCP 工具

向 Claude(或任何 MCP 客户端)提问——无需终端:

工具描述
argus_audit快速检查 — JS、网络、无障碍、SEO、安全、CSS、内容
argus_audit_full深度检查 — 增加 Lighthouse、响应式检查、内存泄漏检测、悬停状态错误
argus_compare比较开发环境与预发布环境 — 截图、发现结果差异、环境回归
argus_get_context捕获打开的标签页中所有异常 — 与上次快照进行 resolved / new / persisting 差异比较(修复循环)
argus_watch_snapshot在不导航的情况下对打开的标签页拍摄快照(保留身份验证/表单状态)
argus_last_report返回上次 JSON 报告,不重新运行
argus_design_auditFigma URL → 13 种设计令牌发现结果类型(颜色、间距、排版、阴影等)
argus_visual_diff截图基线比较。传入 updateBaseline: true 可重置。
argus_pr_validate获取 GitHub PR 差异 → 将变更文件映射到受影响的路由 → 定向审计 → 考虑基线的阻止决策(仅阻止 PR 引入的发现结果)+ 幂等 PR 评论 + Check Run → { blocked, findings, baseline, reporting }

每个工具响应在到达 Agent 前,都会经过 Aegis 出站边界处理;如果有敏感详细信息被隐藏,还会附带可选的 redaction 附加信息({ redacted, total })。

示例提示词:

Run argus_audit on http://localhost:3000/checkout
Run argus_audit_full on http://localhost:3000/dashboard
Run argus_compare
Run argus_get_context

经实战检验,而非凭感觉检验

Argus 自身的正确性也通过审计你时所用的方式来保障:

  • 171 个区块的集成测试框架中,998/998 项硬性断言全部通过,使用真实 Chrome 测试 64 个固定页面——包括每个类别的负向对照(误报为零)、全部 9 个 MCP 工具的黄金响应架构,以及一个上游漂移哨兵,可在版本升级时捕获 chrome-devtools-mcp API 变更
  • 562 个无需 Chrome 的单元测试(Vitest)+ 基于属性的解析器模糊测试
  • npm audit:0 个漏洞 · 每个 PR 均运行 CodeQL + Dependabot · Socket.dev:漏洞/质量/许可证评分均为 100/100/100
  • 会话文件和捕获的令牌均以 0600 权限写入,仅所有者可访问

完整设置

前置条件
要求版本
Node.jsv20.19+
Chrome稳定版(桌面或无头模式)
Claude Code最新版(npm install -g @anthropic-ai/claude-code)——或任何 MCP 客户端
Slack 工作区可选——不配置时使用本地 report.html 模式

选项 A — MCP 服务 (推荐 Claude Code 用户使用)

无需本地安装。使用上面的快速开始,然后添加目标 URL:

# .env in your project root
TARGET_DEV_URL=http://localhost:3000
TARGET_STAGING_URL=https://staging.example.com   # optional — enables argus_compare

可选 — Slack 通知:

  1. 前往 api.slack.com/apps → 创建新应用 → 将其命名为 BugBot
  2. OAuth & Permissions → Bot Token Scopes:chat:write、files:write、files:read
  3. 安装到工作区 → 复制 xoxb-... 令牌
  4. 创建频道 #bugs-critical、#bugs-warnings、#bugs-digest,并在每个频道中运行 /invite @BugBot
SLACK_BOT_TOKEN=xoxb-...
SLACK_CHANNEL_CRITICAL=C0000000000
SLACK_CHANNEL_WARNINGS=C0000000001
SLACK_CHANNEL_DIGEST=C0000000002

不使用 Slack 时:Argus 会自动生成 reports/report.html 并在浏览器中打开——无需额外配置。


选项 B — npm 包(CI / 开发依赖)
npm install --save-dev argusqa-os
npx argus init   # interactive wizard — detects framework, discovers routes, writes .env
npm run crawl    # run after Chrome is started

选项 C — 克隆仓库(贡献者 / 完整源代码)
git clone https://github.com/ironclawdevs27/Argus.git
cd Argus
npm install
npm run init     # interactive setup wizard

手动设置(跳过向导):

cp .env.example .env
# Fill in TARGET_DEV_URL and optional Slack tokens

然后在 src/config/targets.js 中配置路由:

export const routes = [
  { path: '/',          name: 'Home',      critical: true,  waitFor: 'main' },
  { path: '/login',     name: 'Login',     critical: true,  waitFor: 'form' },
  { path: '/dashboard', name: 'Dashboard', critical: true,  waitFor: '[data-testid="dashboard"]' },
  { path: '/settings',  name: 'Settings',  critical: false, waitFor: null },
];
  • critical: true — 此路由上的错误会发送到 #bugs-critical
  • waitFor — Argus 在捕获前等待的 CSS 选择器(表示页面已就绪)

CLI 命令

npm run chrome         # Launch Chrome with --remote-debugging-port=9222 (auto-detects binary)
npm run doctor         # Pre-flight check: Chrome reachable, .mcp.json valid, .env has TARGET_DEV_URL
npm run crawl          # Batch audit of all configured routes
npm run compare        # Dev vs staging diff (CSS-only if no staging URL)
npm run watch          # Passive monitor — polls open Chrome tab every 1s
npm run report:html    # Generate reports/report.html from last JSON audit
npm run report:pdf     # Export HTML report to A4 PDF (requires: npm install puppeteer)
npm run server         # Start Slack slash-command server (port 3001)
npm run init           # Interactive setup wizard
npm run test:unit          # 562 unit tests — no Chrome required
npm run test:harness       # 171-block correctness harness — requires Chrome
npm run test:harness:log   # same, but tees full output to harness-results.txt
npm run test:coverage      # merged unit + harness coverage gate (requires Chrome)

监视模式 — 在你(或你的 Agent)开发时实时监控:

# Terminal 1: start your app
npm run dev

# Terminal 2: start Argus watcher
npm run watch
# Ctrl+C → stops monitor and writes reports/report.html

Slack 斜杠命令(可在任意频道中按需调用):

/argus-retest https://staging.example.com/checkout

要通过隧道公开服务:cloudflared tunnel --url http://localhost:3001(免费,无需账户)。将生成的 URL 设置为 Slack App → Slash Commands 中的 Request URL。


GitHub Actions CI — PR 门禁

Argus 以复合 GitHub Action 的形式提供:每次 PR 触发时,它都会将差异映射到受影响的路由并进行审计,仅当发现 PR 引入的问题时才阻止合并(考虑基线)——同时生成幂等的 PR 评论和 Check Run。

将以下内容添加到仓库的机密中(Settings → Secrets → Actions):

机密必需值
TARGET_STAGING_URL是你的预发布环境基础 URL
SLACK_BOT_TOKEN否xoxb-... 令牌(仅 HTML 模式时省略)
SLACK_CHANNEL_CRITICAL否*频道 ID(配置 Slack 时需要)
SLACK_CHANNEL_WARNINGS否*频道 ID
SLACK_CHANNEL_DIGEST否*频道 ID
GITHUB_TOKEN否Actions 自动注入,用于 PR 评论 + Check Run

随附的 工作流 会在推送到 main、每天 UTC 时间上午 6 点以及手动触发时运行。如果发现严重问题,流水线将失败。


环境变量

完整参考(点击展开)
变量默认值描述
TARGET_DEV_URL—必填。 开发环境的基础 URL
TARGET_STAGING_URL—预发布环境 URL——启用 argus_compare;省略则仅使用 CSS 模式
SLACK_BOT_TOKEN—xoxb-... 令牌。省略则使用本地 report.html 模式
SLACK_SIGNING_SECRET—用于验证 /argus-retest 斜杠命令
SLACK_CHANNEL_CRITICAL—严重错误的频道 ID
SLACK_CHANNEL_WARNINGS—警告的频道 ID
SLACK_CHANNEL_DIGEST—信息/每日摘要的频道 ID
PORT3001Slack 斜杠命令服务端口
REPORT_OUTPUT_DIR./reportsJSON 报告的写入位置
ARGUS_CONCURRENCY1用于路由爬取的并行 MCP 客户端数
ARGUS_LOG_LEVELinfotrace / debug / info / warn / error
ARGUS_LOG_PRETTY—在开发环境中设为 1,以输出易读日志
ARGUS_RETRY_ATTEMPTS3navigate/fill MCP 调用的最大重试次数
ARGUS_WATCH_INTERVAL_MS1000监视模式轮询间隔(ms)
ARGUS_WATCH_UI_PORT3002监视模式 Web 仪表板端口
ARGUS_SOURCE_DIR—应用源代码路径——启用环境变量/功能标记/失效路由分析,并且启用框架感知的 PR 路由映射(导入图:更改的组件/样式表 → 仅呈现该组件的路由)
ARGUS_ENV_FILE—用于代码库交叉引用的应用 .env 路径
SCREENSHOT_DIFF_THRESHOLD0.5环境对比的像素差异百分比阈值
GITHUB_TOKEN—用于 PR 评论和检查运行
GITHUB_REPOSITORY—owner/repo 格式
GITHUB_PR_NUMBER—由 Actions 根据 PR 上下文自动注入
ARGUS_CRITICAL_THRESHOLD1阻止合并前允许新增的严重问题数(0 = 永不阻止)
ARGUS_DIFF_IMAGE_URL—要嵌入 PR 评论的视觉差异图片 URL
OTEL_EXPORTER_OTLP_ENDPOINT—Jaeger / Grafana Tempo 的 OTLP 收集器
FIGMA_API_TOKEN—argus_design_audit 必填
FONT_SLOW_MS1000慢速 Web 字体加载阈值(ms)
A11Y_CONTRAST_AA4.5CVD 模拟的 WCAG AA 最低对比度
ARGUS_REDACT_SENSITIVEONAegis 出站数据脱敏。0 会禁用(输出与 Aegis 之前的版本逐字节一致)
ARGUS_REDACT_MODEmask匹配内容的样式:mask / label / hash / token / drop
ARGUS_REDACT_HTML本地为 off / CI 中为 ON1 也会对托管的 HTML 报告进行脱敏
ARGUS_REDACT_VAULTOFF1(配合 ARGUS_REDACT_MODE=token)会将可逆的 AEGIS_<hmac16> 令牌写入本地 0600 密钥库;使用 npm run report:rehydrate 还原

故障排除

遇到任何问题,首先运行:npx -y -p argusqa-os argus-doctor——它会检查 Chrome 是否可访问、MCP 配置是否有效以及必需的环境变量键是否齐全,并为每项故障给出确切的修复方法。

Chrome DevTools MCP 无法连接

claude mcp add chrome-devtools -- npx chrome-devtools-mcp@latest
# Restart Claude Code after adding

Slack 消息未能发送

  • 令牌必须以 xoxb- 开头(不能是 xoxp-、xoxe- 或 xapp-)
  • 在每个频道中运行 /invite @BugBot
  • 必需的权限范围:chat:write、files:write、files:read

截图为空白

  • 页面尚未加载完成——在 src/config/targets.js 中增大 pageSettleMs,或为该路由添加 waitFor 选择器

/argus-retest 返回 "dispatch_failed"

  • 隧道 URL 已更改——在 Slack App → Slash Commands 中更新 Request URL,然后重新安装

CSS 分析结果为空

  • 页面可能需要身份验证——确保你已在 Argus 控制的 Chrome 实例中登录

CI 流水线立即失败


Argus 与 Playwright / Cypress 的区别

Argus 是一个互补层,并非单元测试或 E2E 测试的替代品:

Playwright / Cypress原生浏览器 MCP(Playwright MCP、chrome-devtools-mcp)Argus
用途测试你的逻辑和 API 契约为 Agent 提供浏览器的操作能力和观察能力让 Agent(以及你)判断哪些地方出了问题
你能获得什么你编写的脚本的通过 / 失败结果原始 DOM / 控制台 / 网络访问能力149 种编码后的问题类型、严重程度、基线、噪声过滤、根因提示
维护测试文件,永无止境每次会话都要重新提示执行检查零维护——审计渲染后的应用
运行时机在测试套件中Agent 想到要检查时按需运行、在 CI 中作为 PR 门禁,或持续运行(监视模式)
输出通过 / 失败Agent 注意到的任何内容包含屏幕截图的结构化报告——可发送到 Slack、HTML、PR 评论——并对机密信息进行脱敏

已知限制

全部 998 项测试框架断言均已通过(998/998)——目前没有已知的 MCP 或 Chrome 层限制。Lighthouse 以无头模式运行(修复 lighthouse_audit 参数后);其余软断言(性能跟踪、依赖 GC 的堆增长)仅在每周严格软断言流程(harness-strict.yml)中通过 ARGUS_HARNESS_STRICT_SOFT 提升为计入结果的硬断言。范围限制:仅支持 Chrome / Chromium,仅支持 Web 应用——请参阅适配你的技术栈。


托管版 Argus——创始会员

想要获得审计、历史记录、趋势、计划任务和团队仪表板,而无需运行 Chrome 或 npm?Argus Cloud 已开放创始会员早期体验:每月 $19,永久锁定此价格(常规价格为 $29)。

成为创始会员 → argus-qa.com

本页上的开源引擎始终采用 MIT 许可且功能完整——托管版提供的是便利和记忆能力,而非检测功能。


项目结构

src/
  argus.js              — single-page audit entry point
  mcp-server.js         — 9 MCP tools exposed to Claude / any MCP client
  orchestration/        — crawl loop, Slack/GitHub dispatch, env comparison, watch mode
  utils/                — 32 analysis engines (accessibility, security, performance, PDF, recording, etc.)
  adapters/browser.js   — CdpBrowserAdapter — wraps all chrome-devtools-mcp calls
  config/targets.js     — routes, thresholds, auth steps
  cli/
    init.js             — argus init interactive setup wizard
    chrome-launcher.js  — npm run chrome / argus-chrome — launches Chrome with correct flags
    doctor.js           — npm run doctor / argus-doctor — pre-flight checks
    pr-validate.js      — headless CI entry point for GitHub Actions
test-harness/           — 171-block correctness harness, 998 hard assertions, 64 fixture pages
test/unit/              — 562 Vitest unit tests (no Chrome required)
landing/                — Product landing page (React 19 + Vite + Tailwind)

完整源代码索引 → CLAUDE.md · MCP / DSL 参考 → SKILL.md


贡献

欢迎贡献——测试页面、新的检测类别、框架路由发现功能、文档等。请从 CONTRIBUTING.md 开始。

  1. Fork 此仓库并创建一个分支
  2. npm run test:unit — 无需 Chrome 即可验证(562 项测试)
  3. npm run test:harness — 完整集成测试覆盖(需要在 9222 端口运行 Chrome)
  4. 提交 PR — Argus 会通过 CI 工作流审计自身

许可证

MIT © ironclawdevs27


Argus Panoptes——希腊神话中永不入睡、全知全视的巨人。

argus-qa.com · npm · MCP 注册表

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。