mcpField
A
argus

argus

ローカル
github.com/ironclawdevs27開発ツール512 週間前に更新

argus について

argusは、AI支援開発向けのChromeベースのWeb QA用MCPサーバーです。描画されたアプリを監査して重要度付きの結果を返し、Aegisが外部出力の機密情報を伏せます。

主な機能

  1. 01JavaScript、ネットワーク、アクセシビリティ、セキュリティなどを監査
  2. 02環境とビジュアルベースラインを比較
  3. 03新規・解決済み・継続中の問題を追跡
  4. 04Aegisによる機密情報の出力制御
  5. 05CI、コマンドライン、Slackレポートに対応

活用シーン

  1. 01コードを開発者のマシンから出す前にローカルアプリを確認
  2. 02開発環境とステージング環境の回帰を検出
  3. 03エージェントによる監査・修正・再監査のループを支援

MCP 対応

Chromeタブの監査、環境比較、問題の確認、GitHubプルリクエストの検証に使うMCPツールを提供します。ツール応答がエージェントに届く前に、Aegisが機密情報を伏せます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの 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 インスタンスからアクセスできる必要があります。
cachebooleanいいえtrue の場合、この URL のキャッシュ結果(このセッションで以前に呼び出した argus_audit によるもの)があれば、再クロールせずに返します。修正を繰り返す際、前回の監査結果を低コストで再読み込みするのに使えます。キャッシュはセッションごとで、最大 20 件。LRU 方式で削除されます。
criticalbooleanいいえtrue の場合、console.error の呼び出しを critical の重大度に引き上げます。ログイン、チェックアウト、ダッシュボードなど、エラーがすべてブロッカーとなるビジネス上重要なルートでは true に設定してください。

詳細

Argus — AI 支援開発のための QA レイヤー

AI エージェントがコードを書きます。Argus は実際に構築されたものをチェックします。

MCP Server

npm Harness License: MIT

MCP 設定に 1 行追加するだけで、Claude(または任意の MCP エージェント)が本格的な Chrome 監査エンジンを利用できます — 67 の監査カテゴリ · 149 種類の検出項目 · 作成・保守が必要なテストファイルはゼロ。 さらに Aegis を使えば、検出した内容から 秘密情報が LLM に漏れることはありません。

▶ 実際の動作を見る → argus-qa.com

クイックスタート · 修正ループ · 検出できる問題 · 対応スタック · MCP ツール · 完全なセットアップ · リファレンス


Argus が生まれた理由

AI エージェントは今やコードの大半を書いています。しかし、その成果を評価するときに基準にするのは、ブラウザーで実際に何が起きるかではなく、コンパイルできて、完成したように見えるかどうかです。3 回目のクリックで発生する未捕捉の例外。HTTP 経由で認証情報を送信するフォーム。4 秒の LCP。ダークモードで消えるボタン。無限ループで叩かれる API エンドポイント。

Argus はそのギャップを埋めます。 Chrome DevTools Protocol 経由で実際の Chrome を操作し、ローカルで実行中のアプリを監査して、構造化された重大度順のバグレポートをエージェント、またはあなたに渡します。エージェントが修正し、Argus が再チェックすることで、コードがマシンから外に出る前にループが完了します。

🧪 テストファイルは一切不要Argus が監査するのはソースコードではなく、レンダリングされたアプリです — DOM、コンソール、ネットワーク、ピクセルを対象にします。作成も不要で、エージェントによるリファクタリング時の保守も不要です
🤖 エージェントのループ向けに構築Claude が MCP 経由でネイティブに呼び出せる唯一の QA エンジンです。会話を離れずに監査 → 修正 → 再監査できます
🔒 デフォルトでエージェントにも安全Aegis:すべての外部送信境界で検出内容を秘匿化します — 秘密情報、PII、悪用に関する詳細が LLM のコンテキストウィンドウに届くことはありません(OWASP LLM02、デフォルトで有効、フェイルクローズ)
🧰 通常の QA ツールとしても利用可能CLI による一括監査、GitHub Action の PR ゲート、スクリーンショット付き Slack レポート、開発環境とステージング環境の差分、監視モード — エージェントの有無を問わず利用できます

クイックスタート

インストール不要です。 初回実行時に npx が Argus を取得します。

1 — プロジェクトのルートにある .mcp.json に 2 行追加します:

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

または Claude Code CLI から実行します:

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 — エージェントに依頼します:

Run argus_audit on http://localhost:3000

これで完了です。検出結果は構造化され、重大度順に並べられて、会話内、Slack、またはローカルの report.html として返されます。問題がある場合は、npx -y -p argusqa-os argus-doctor を実行すると、1 つのコマンドでセットアップを診断できます。


修正ループ

エージェント型コーディングセッション内で Argus がどのように動作するかを示します:

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 は前回のスナップショットとの差分を表示するため、エージェントは何を修正し、何を壊し、何が残っているのかを正確に把握できます — 出力の長い文章を読み直す必要はありません。

「でも、エージェントはすでにブラウザーを操作できます…」 — そのとおりです。しかし、操作することと評価することは別です。生のブラウザー MCP(Playwright MCP、素の chrome-devtools-mcp)はエージェントに手と目を与えますが、何をチェックすべきかはセッションごとにエージェントが改めて導き出す必要があり、コンソールログを掘り下げるためにコンテキストを消費します。Argus はその上にある評価レイヤーです。閾値、重大度ポリシー、実行間のベースライン、フレークのフィルタリング、重複排除、根本原因のヒントを備えた、コード化済みの 149 種類の検出項目を、デフォルトで秘匿化して 1 回の呼び出しで返します。


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メタディスクリプション、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 エージェントを導入するチームにとって、これは「AI QA ツールを使っています」と「安全な理由をセキュリティ責任者にはっきり説明できます」の違いになります。

外部シンクに送信される検出結果 — 呼び出し元のエージェントのコンテキストウィンドウに入り、そのエージェントのモデルプロバイダーに送られる MCP ツールのレスポンス、Slack メッセージ、GitHub の PR コメントとその ::error 注釈、ホスト型/CI HTML レポート、または CI ログ — は、必要最小限の情報に限定されます。機密な検出結果は type + route + severity と 🔒 マーカーとして送信され、元のペイロード(message、evidence、リクエスト/レスポンス本文、ヘッダー、Cookie、スタック)が送信されることはありません。URL はクエリ文字列を除いて表示します(トークンはそこに含まれるためです)。問題のない検出結果ではメッセージを保持しますが、そのメッセージに誤って埋め込まれたシークレットや PII も引き続き除去します。

原則動作
ローカルでの完全性を維持ディスク上の JSON レポートとローカルで開いた HTML では、詳細を**100%**保持します。編集によって詳細が削除されるのは、データを外部に送るときだけです
安全側に倒す分類エラーが発生した場合や、検出結果の形式が不明な場合、Aegis は情報を減らすことはあっても、増やすことはありません
デフォルト拒否安全なフィールドの明示的な許可リストに含まれるものだけが外部に送信されます。新しいフィールドは、意図的に許可リストへ追加されるまで何も漏らしません
5 層の検出カテゴリールール ∪ 13 個のシークレット用正規表現 ∪ 統計的希少性(エントロピー/トークン効率)∪ ルーンチェック済みの 7 個の PII ルール ∪ コンテキストによる強化
オプトアウトARGUS_REDACT_SENSITIVE=0 → 出力は Aegis 導入前とバイト単位で同一になります

これは、Argus 自身の境界において、OWASP LLM02:2025 — Sensitive Information Disclosure の緩和策(データの最小化、編集、デフォルト拒否の外部送信フィルタリング)を実装するものです。オプションのローカル専用再水和ボールト(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_validateGitHub PR の差分を取得 → 変更ファイルを影響を受けるルートにマッピング → 対象を絞った監査 → ベースラインを考慮したブロック判定(PR が新たに持ち込む検出結果がある場合にブロック) + 冪等な PR コメント + Check Run → { blocked, findings, baseline, reporting }

すべてのツールのレスポンスは、エージェントに届く前に 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 自身の正確性も、Argus が監査する対象と同じ方法で担保されています。

  • 実際の Chrome を 64 のフィクスチャページに対して動かす 171 ブロックの統合ハーネスで、998/998 件の厳密なアサーションを実施しています。カテゴリごとの陰性対照(誤検出ゼロ)、9 つすべての MCP ツールのゴールデンレスポンススキーマ、バージョン更新時に chrome-devtools-mcp の API 変更を検知する上流ドリフトカナリアを含みます
  • 562 件の Chrome 不要なユニットテスト(Vitest)+プロパティベースのパーサーファジング
  • npm audit:脆弱性ゼロ · すべての PR で CodeQL + Dependabot を実行 · Socket.dev:脆弱性/品質/ライセンスの評価は 100/100/100
  • セッションファイルと取得したトークンは 0600 で書き込み、所有者のみがアクセスできます

セットアップの全手順

前提条件
要件バージョン
Node.jsv20.19+
ChromeStable(デスクトップまたはヘッドレス)
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 → Create New App → 名前を 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)

監視モード — あなた(またはエージェント)の開発中にリアルタイムで監視します。

# 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いいえPR コメントと Check Runs 用に Actions が自動注入

同梱の ワークフロー は、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ウォッチモードのウェブダッシュボードのポート
ARGUS_SOURCE_DIR—アプリのソースパス — 環境変数/機能フラグ/デッドルートの分析と、フレームワーク対応の PR ルートマッピング(インポートグラフ:変更されたコンポーネント/スタイルシートから、それを描画するルートのみを特定)が有効になります
ARGUS_ENV_FILE—コードベースとの相互参照に使用するアプリの .env ファイルのパス
SCREENSHOT_DIFF_THRESHOLD0.5環境比較でのピクセル差分のしきい値(%)
GITHUB_TOKEN—PR コメントと Check Runs に使用します
GITHUB_REPOSITORY—owner/repo 形式
GITHUB_PR_NUMBER—PR コンテキストから Actions によって自動挿入されます
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ウェブフォントの読み込みが遅いと判定するしきい値(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 の場合)、ローカルの 0600 ボルトに復元可能な AEGIS_<hmac16> トークンを生成します。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 パイプラインがすぐに失敗する

  • Chrome の起動が間に合っていない可能性があります。.github/workflows/argus.yml の sleep 3 を sleep 5 に変更してください

Argus と Playwright / Cypress の違い

Argus はユニットテストや E2E テストの代替ではなく、補完するレイヤーです。

Playwright / Cypress生のブラウザー MCP(Playwright MCP、chrome-devtools-mcp)Argus
目的ロジックと API コントラクトをテストするエージェントにブラウザーを操作する手と見る目を与えるエージェント(およびあなた)に、何が壊れているかを判断する力を与える
得られるもの作成したスクリプトの合格/不合格DOM/コンソール/ネットワークへの生のアクセスコード化された 149 種類の検出項目、重要度、ベースライン、ノイズフィルタリング、根本原因のヒント
メンテナンステストファイルを継続的に管理セッションごとにチェックを再度プロンプトする不要 — レンダリングされたアプリを監査
実行タイミングテストスイート内エージェントが確認しようと思ったときオンデマンド、CI での PR ゲート、または継続的(監視モード)
出力合格/不合格エージェントが気づいたことスクリーンショット付きの構造化レポート — Slack、HTML、PR コメント — シークレットは編集済み

既知の制限事項

ハーネスの 998 件のアサーションはすべて成功しています(998/998)。現在、MCP レイヤーや Chrome レイヤーの既知の制限事項はありません。Lighthouse はヘッドレスで実行されます(lighthouse_audit 引数の修正後)。残りのソフトアサーション(パフォーマンストレース、GC に依存するヒープ増加)は、週次の strict-soft レーン(harness-strict.yml)で ARGUS_HARNESS_STRICT_SOFT を介してのみ、カウント対象のハードアサーションに昇格されます。スコープの制限:Chrome/Chromium のみ、ウェブアプリのみ — お使いのスタックとの互換性をご覧ください。


ホスト型 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. リポジトリをフォークしてブランチを作成します
  2. npm run test:unit — Chrome を使わずに検証します(562 件のテスト)
  3. npm run test:harness — 統合テストをすべて実行します(Chrome がポート 9222 で必要です)
  4. PR を作成します — Argus は CI ワークフローを通じて自身を監査します

ライセンス

MIT © ironclawdevs27


Argus Panoptes — ギリシャ神話に登場する、決して眠らない全知全能の巨人。

argus-qa.com · npm · MCP Registry

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。