mcpField
A
AWT (AI Watch Tester)

AWT (AI Watch Tester)

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

AWT (AI Watch Tester) について

AWTは、AIコーディングツール向けのE2Eテストエンジンです。Playwrightで実ブラウザー上のYAMLシナリオを実行し、スクリーンショット付きの失敗報告や自己修復ループを提供します。AI APIなしでシナリオを作成・実行することもできます。

主な機能

  1. 01PlaywrightでYAMLシナリオを実行
  2. 02スクリーンショット取得と失敗報告
  3. 03OCRと画像マッチングによる要素検出
  4. 04CLIモードの自己修復テストループ
  5. 05SQLiteへの成功マッチの保存

活用シーン

  1. 01ログインやダッシュボードのフローをテストする
  2. 02スクリーンショットでブラウザテストの失敗を確認する
  3. 03AI APIなしで手書きテストを実行する
  4. 04CLIモードで失敗を診断して再試行する

MCP 対応

同梱のMCPサーバーは`aat_*`ツールをMCPクライアントに公開し、ローカルにインストールされた`aat`コマンドをサブプロセスとして実行します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"ksgisang-awt": {
"command": "uvx",
"args": [
"aat-devqa"
],
"env": {
"ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>",
"OPENAI_API_KEY": "<OPENAI_API_KEY>"
}
}
}
}
起動コマンドuvx aat-devqa
設定が必要な環境変数
ANTHROPIC_API_KEYシークレットAnthropic API key (optional — required only when using provider=claude)
OPENAI_API_KEYシークレットOpenAI API key (optional — required only when using provider=openai)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiaat-devqa1.8.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

AWT — AI コーディングツールの目と手

AI コーディングツールは賢いですが、Web ページを見たりクリックしたりすることはできません。 AWT は実際のブラウザーを使えるようにし、指一本動かさなくてもテストやバグの発見、修正を行えるようにします。

ライセンス:AGPL-3.0 エージェントスキル

AI API なしで動作します — YAML シナリオを手動で作成して、aat run を実行してください。API キーは不要です。AI コーディングツールがあると作業が簡単になりますが、必須ではありません。


AWT とは?

AWT は、AI を活用した E2E テストの実行エンジンです。AI コーディングツールがテストを設計し、AWT が Playwright を使って実際のブラウザーで実行します。

スキルモードの仕組み(追加の AI API キーは不要です):

You: "Test the login flow on https://mysite.com"

Your AI coding tool:
  → Writes 5 YAML scenarios (30 steps)
  → Runs: aat run scenarios/
  → Reads failure: "Step 4: Dashboard text not visible"
  → Reads screenshot + source code
  → Fixes src/pages/login.js:23
  → Re-runs: aat run scenarios/
  → All 5 scenarios pass ✓

主な機能:

  • 実行 — 人間のようなマウスやキーボードの操作で、実際のブラウザー上でテストを実行します
  • 確認 — スクリーンショットを撮影し、OCR と画像マッチングで要素を検出します
  • レポート — エラーの詳細とスクリーンショットを含む、ステップごとの成功・失敗を報告します
  • 自己修復(CLI モード)— aat loop が独自の AI で失敗を自動修正します
  • 学習 — 成功したマッチングを SQLite に保存し、使うほど処理が速くなります

インストール

まず aat コマンドをインストールしてください。以下のすべての方法で、このコマンドを使用します。

pip install aat-devqa
python -m playwright install chromium
Claude Code プラグイン(推奨)

このリポジトリはプラグインのバンドルです。awt スキルと、aat_* ツールを公開する MCP サーバーが含まれているため、一度のインストールで両方を利用できます。

claude plugin marketplace add ksgisang/awt-skill
claude plugin install ai-watch-tester@awt

MCP サーバーには Python MCP SDK が必要です。

pip install "mcp[cli]>=1.0.0"

インストールされた内容を確認してください。

claude plugin details ai-watch-tester@awt

Skills (1) awt と MCP servers (1) awt が表示されます。

スキルのみ

MCP サーバーを含めずにスキルだけを利用する場合:

npx skills add ksgisang/awt-skill --skill awt -g

または、グローバルもしくはプロジェクトごとに手動でコピーできます。

git clone https://github.com/ksgisang/awt-skill.git /tmp/awt-skill
cp -r /tmp/awt-skill/skills/awt ~/.claude/skills/awt   # or .claude/skills/awt
rm -rf /tmp/awt-skill

インストール後、テスト関連のプロンプトでスキルが自動的に起動します。

更新
claude plugin update ai-watch-tester@awt          # plugin
npx skills add ksgisang/awt-skill --skill awt -g -y  # skill only

手動でコピーしてインストールした場合:cd ~/.claude/skills/awt && git pull

他のテスト用スキルとの比較

機能webapp-testingplaywright-skillAWT
シナリオ形式Python スクリプトPython スクリプト宣言型 YAML
コード不要のテスト作成いいえいいえはい
自然言語 → テストいいえいいえはい
自己修復ループいいえいいえはい(DevQA ループ)
失敗時の自動修正いいえいいえはい(AI → PR)
ビジュアルマッチング(OpenCV + OCR)いいえいいえはい(OpenCV + OCR)
パターン学習いいえいいえはい(SQLite)
サーバーのライフサイクル管理はいはいはい(aat dashboard)
複数の AI プロバイダーいいえいいえはい(5 プロバイダー)
人間のような操作いいえいいえはい(ベジェ曲線マウス)
承認モードいいえいいえはい(手動/ブランチ/自動)
コスト最適化該当なし該当なし0.02~0.05 ドル/テスト
ライブスクリーンショットいいえスクリーンショットのみはい(WebSocket ストリーム)
多言語 OCRいいえいいえはい(10 以上の言語)
オフライン対応いいえいいえはい(Ollama)
コスト追跡いいえいいえはい(呼び出しごとのログ記録 + aat cost)
ソースコード分析いいえいいえはい(スキル限定)
シナリオのキャッシュいいえいいえはい(同じ仕様なら再呼び出しなし)
ブラウザーテストのオーバーレイいいえいいえはい(ステップの進行状況をライブ表示)
依存関係の順序指定いいえいいえはい(depends_on フィールド)
スキルモード(追加の AI コストなし)いいえいいえはい
Canvas/Flutter の OCR フォールバックいいえいいえはい(自動)
プラットフォームの自動検出いいえいいえはい(7 フレームワーク)
構造化された失敗診断いいえいいえはい(AI に依存しない)
複数ドキュメントの YAMLいいえいいえはい(--- 区切り)
厳密な検証いいえいいえはい(aat validate --strict)
それぞれの使いどころ:
  • webapp-testing — シンプルなページチェック用の、すぐに使える Playwright スクリプト
  • playwright-skill — Playwright API をきめ細かく制御する必要がある場合
  • AWT Skill Mode — AI コーディングツールがテストを設計し、AWT が実行します。追加の AI API キーは不要です。
  • AWT CLI Mode — aat generate と aat loop を使った、CI/CD 向けの単体で動作する自動テスト

対応している AI コーディングツール

AWT は Agent Skills open standard に準拠しており、次のツールで動作します。

ツールステータス
Claude Code対応
Cursor互換
Codex互換
Gemini CLI互換
Amp互換
Cline互換
Aider互換
Windsurf互換
Roo Code互換
PearAI互換
Antigravity対応

簡単な例

YAML シナリオ
id: "SC-001"
name: "User Login"
tags: ["auth", "login"]
depends_on: ["SC-000"]
steps:
  - step: 1
    action: navigate
    value: "{{url}}/login"
    description: "Go to login page"

  - step: 2
    action: find_and_type
    target:
      text: "Email"
      match_method: ocr
    value: "[email protected]"
    humanize: true
    description: "Enter email"

  - step: 3
    action: find_and_click
    target:
      text: "Login"
    description: "Click login button"

  - step: 4
    action: assert
    assert_type: text_visible
    expected:
      - type: text_visible
        value: "Welcome back"
    description: "Verify login success"
自然言語(Claude Code 内)

「[email protected] で mysite.com にログインして、ダッシュボードが読み込まれるか確認してください」

AWT はこれを YAML シナリオに変換し、自動的に実行します。

DevQA の 5 ステップのワークフロー

Scan → Plan → Review → Execute → Heal
  ↑                                 |
  └─── Loop back on failure ────────┘
  1. スキャン — サイトをクロールし、DOM を分析して、機能を検出します
  2. 計画 — AI が YAML テストシナリオを生成します
  3. レビュー — 実行前にユーザーが確認・編集します
  4. 実行 — Playwright がライブスクリーンショットを取得しながら実行します
  5. 修復 — AI が失敗を分析 → 修正を提案 → 再テストします

AI プロバイダー

プロバイダービジョンコストオフライン
Claude(デフォルト)対応中いいえ
OpenAI(GPT-4o)対応高いいえ
Gemini(デフォルト:無料)対応無料枠はい
DeepSeek非対応低いいえ
Ollama非対応無料はい

プロジェクト構成

awt-skill/                      # ← this repository is the plugin folder
├── .claude-plugin/
│   ├── plugin.json             # Plugin manifest
│   └── marketplace.json        # Marketplace entry for this one plugin
├── .mcp.json                   # Declares the bundled MCP server
├── skills/
│   └── awt/                    # ← Skill content (installed by npx skills)
│       ├── SKILL.md            # Main skill definition
│       ├── references/
│       │   ├── scenario-schema.md  # Full YAML schema reference
│       │   ├── cli-reference.md    # CLI command reference
│       │   └── config-reference.md # Configuration options
│       └── templates/
│           ├── scenario-template.yaml
│           └── config-template.yaml
├── mcp/
│   ├── server.py               # MCP server — the 12 aat_* tools
│   └── requirements.txt
├── server.json                 # MCP Registry entry
├── README.md
├── LICENSE
├── CONTRIBUTING.md
└── package.json

主な CLI コマンド

コマンド説明
aat doctor環境(Python、Playwright、Tesseract、AI)を確認します
aat initプロジェクトの初期化、AI のセットアップ、環境チェックを行います
aat setupAI プロバイダーと API キーを設定します
aat generateAI でシナリオを生成します(コスト見積もりとキャッシュ機能付き)
aat run --learnテストを実行し、修正から学習します(必ず --learn を使用してください)
aat loop自己修復型 DevQA ループ
aat costAI API の使用コストを確認します
aat validate --strictYAML と品質チェックを検証します
aat learn platform -p <key> -t <tip>プラットフォーム固有のヒントを追加します

システム依存関係

macOS:

brew install [email protected] tesseract
pipx install aat-devqa
playwright install chromium

Linux(Ubuntu/Debian):

sudo apt install python3.12 python3.12-venv tesseract-ocr
pipx install aat-devqa
playwright install chromium

Windows:

winget install Python.Python.3.12
choco install tesseract
pip install aat-devqa
playwright install chromium

インストール後、aat doctor を実行して、すべてが正常に動作することを確認してください。

OCR 言語パック。 Tesseract のインストールでは英語のみが追加されます。 別の言語のアプリをテストする場合は、その言語のパックもインストールしてください。インストールしないと、OCR にフォールバックするテキストのアサーションで、画面上にはっきり表示されているテキストに対しても not visible on page と報告されます。aat doctor が不足しているパックを示します。

brew install tesseract-lang                 # macOS, all languages
sudo apt install tesseract-ocr-kor          # Linux, one language

このプラグインの実行内容、送信内容、取得内容

以下はすべて、このリポジトリ内の読み取り可能なソースコードで確認できます。インストール時に、難読化されたコード、コンパイル済みコード、ダウンロードされたコードが実行されることはありません。

お使いのマシン上で実行されます。 mcp/server.py は python3 で起動し、引数リストを作成して、pip install aat-devqa でインストールした aat コマンドをサブプロセスとして実行するだけです。シェルは実行しないため、受け取った内容がコマンドとして再解析されることはありません。aat は Playwright を通じてローカルの Chromium を操作し、OCR にはローカルの tesseract バイナリを使用します。

ディスクに書き込みます。 プロジェクト内には、.aat/(設定、実行履歴、スクリーンショット、SQLite 学習データベース、追記専用の監査ログ)と reports/ が作成されます。ホームディレクトリには、セレクターが機能しなくなった後にターゲットを再検出できるよう、AWT が保存する要素画像の格納先として ~/.awt/templates/<host>/ が作成されます。

ネットワーク経由で送信します。 テレメトリーや分析情報の送信はありません。以下の送信先は、すべてお客様自身が指定したものか、AWT が自動で行う唯一の通信です。埋もれないよう、自動で行われる通信を先に記載しています。

  • AWT 自身が 1 日に 1 回、api.github.com にアクセスします。 CLI は最新リリースを確認し、新しいバージョンがある場合にヒントを表示します。リクエストボディ、アカウント、マシン ID、バージョン文字列、テスト対象に関する情報は一切含まれません。すべてのユーザーに対して同一のリクエストです。3 秒でタイムアウトし、すべてのエラーは無視されるため、このホストへのアクセスをブロックしても問題はありません。AWT が開始する通信はこれだけです。
  • テスト対象のサイト。 Chromium はシナリオで指定された URL を読み込みます。これがツールの目的であり、テスト実行時にほかのサイトへアクセスすることはありません。
  • 必要なコマンドでのみ使用する AI プロバイダー — aat generate、aat loop、aat devqa、および Vision マッチング。リクエストにはページのテキストまたはスクリーンショットと、お客様のシナリオが含まれます。プロバイダーはお客様が選択し、キーもお客様が指定します。Ollama の場合、リクエストがマシンの外部に送信されることはありません。通常の aat run は AI プロバイダーに一切アクセスしません。
  • 入力した URL(到達可能かどうかの確認用) — aat doctor と aat start は指定されたアドレスにリクエストを送信し、応答の有無を報告します。
  • 開発サーバーの検出用の http://localhost:<port> — aat devqa はローカルポートのみをプローブします。
  • お客様自身のシナリオに記載したエンドポイント。 api_call タイプの teardown ステップは、YAML に記載された URL のみにアクセスします。これにより、実行後にテストデータをクリーンアップします。

PRIVACY.mdには、これらの各項目に対応するファイル名と行番号が記載されています。

実行時の取得内容。 何もありません。このプラグインはインストール後にコードをダウンロードしません。

承認。 aat run は /dev/tty を直接読み取って確認を求めるため、パイプ経由の標準入力から承認を与えることはできません。また、すべての試行が .aat/audit.log に記録されます。--auto-approve フラグはなく、AI エージェントがお客様に代わって承認する方法もありません。デフォルトの manual モードでは、AI が提案したシナリオの変更がファイルに書き込まれることはありません。

リンク

ライセンス

AGPL-3.0 — 全文については LICENSE ファイルをご覧ください。

AILoopLab が開発しました。

コメント

MCP は初めてですか?

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

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