Web Scan について
Web Scanは、コーディングエージェントやサイト運営チーム向けのホスト型サイト監査ツールです。MCP、GitHub Action、コマンドライン、ウェブから利用でき、SEO、AI検索、セキュリティ、漏えいキー、速度、アクセシビリティの問題と修正案を示し、公開後の修正も検証します。
主な機能
- 01SEO・AI検索・セキュリティ・速度・アクセシビリティの監査
- 02配信JavaScript内の露出キーを検出
- 03予測スコア改善幅で問題を順位付け
- 04不合格項目に具体的な修正案を提示
- 05公開サイト上で修正を検証
- 06MCP・GitHub Action・CLIから実行
活用シーン
- 01公開サイトをデプロイ前後に監査
- 02コーディングエージェント向けに修正の優先順位を決定
- 03デプロイ変更で特定の検査項目が解決したか確認
- 04スキャン結果をGitHubのビルド条件に設定
MCP 対応
Web Scanは、ステートレスなリモートStreamable HTTP MCPサーバーを提供します。公開URLのスキャン、デプロイ後の修正確認、既存レポートの取得に対応します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://preflight-api.agentmarket.lol/api/mcpclaude mcp add --transport http ankitkumarjha515-web-scan https://preflight-api.agentmarket.lol/api/mcp{"mcpServers":{"ankitkumarjha515-web-scan":{"type":"http","url":"https://preflight-api.agentmarket.lol/api/mcp"}}}Cursor で開く{"servers":{"ankitkumarjha515-web-scan":{"type":"http","url":"https://preflight-api.agentmarket.lol/api/mcp"}}}VS Code で開く{"mcpServers":{"ankitkumarjha515-web-scan":{"type":"http","url":"https://preflight-api.agentmarket.lol/api/mcp"}}}{"mcpServers":{"ankitkumarjha515-web-scan":{"serverUrl":"https://preflight-api.agentmarket.lol/api/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Web Scan
コーディングエージェントが実装しました。Web Scan がチェックします。
1 回の呼び出しで、公開中の URL を約 5 秒で監査します。SEO、AI 検索(GEO)、セキュリティヘッダー、漏えいした API キー、Core Web Vitals、アクセシビリティにわたる 85 項目をチェックします。各指摘には正確な修正方法が付き、獲得できるポイント数で順位付けされます。その後、エージェントが修正し、再実行しなくても 公開中のサイトで修正を検証します。
無料です。登録不要。API キー不要。MCP サーバー、GitHub Action、CLI として利用でき、ウェブからも使えます。
scan_url → fix → deploy → verify_fixes → allFixed: true
エージェントに選ばれる理由
- エージェントの反復プロセス向けに設計されています。
scan_urlで問題を見つけ、verify_fixesでチェック ID ごとに本番環境へ修正が反映されたことを確認できます。スクリーンショットを読んだり、ダッシュボードをクリックしたりする必要はありません。 - 指摘だけでなく、修正方法も示します。 チェックに失敗すると、それぞれの ID、ページで見つかった内容、具体的な修正方法が返されます。指摘は実際に獲得できるスコアで順位付けされるため(該当する修正を 1 つ適用してレポートを再採点します)、エージェントは重要な順に作業できます。
- AI で構築したアプリから漏れるものを検出します。 サイトがすべての訪問者に配信する JavaScript を読み込み、有効なシークレットキー(OpenAI、Anthropic、Stripe、AWS、GitHub、Slack、SendGrid、データベース URL、秘密鍵)や Supabase の
service_roleキーを検出します。プレースホルダーやドキュメントの例を除外するため、検出された項目はすべて再確認されます。そのため、赤色の結果は実際の漏えいを示します。 - AI 検索と同じようにページを確認します。 ChatGPT、Claude、Perplexity のクローラーが実際に受け取る内容(JavaScript なし)、robots.txt で許可されている AI ボット、そして購入者が尋ねる質問にページが答えているかを確認できます。
- 誠実なスコアリングです。 3 つの要素(検索と共有、セキュリティ、速度)から算出した 1 つのスコアを、重要なチェックに失敗した場合は上限を設けて表示します。よく知られた 25 サイトとのベンチマークも確認できます。セキュリティヘッダーの不足は強化に関する注意事項であり、脆弱性ではありません。確信が持てない指摘には「確認が必要」と表示されます。
- 公開されているサイトなら安全に指定できます。 読み取り専用です。サイトがすでに配信している内容を読み込むだけで、非公開のパスを探ることはありません。スキャンしたページのテキストはデータとして返され、指示として扱われることはありません。
MCP サーバー
リモート、ステートレス、Streamable HTTP。キーは不要です。
https://preflight-api.agentmarket.lol/api/mcp
Claude Code
claude mcp add --transport http web-scan https://preflight-api.agentmarket.lol/api/mcp
Cursor(~/.cursor/mcp.json)、Windsurf、VS Code(.vscode/mcp.json、キー servers)
{
"mcpServers": {
"web-scan": { "url": "https://preflight-api.agentmarket.lol/api/mcp" }
}
}
Codex(~/.codex/config.toml)
[mcp_servers.web-scan]
url = "https://preflight-api.agentmarket.lol/api/mcp"
ツール
| ツール | 内容 |
|---|---|
scan_url | 公開 URL を新たに監査します。スコア 0~100、評価、失敗または警告となったすべてのチェックの ID・詳細・修正方法、および完全なインタラクティブレポートの fullReportUrl を返します。所要時間は 5~15 秒です。 |
verify_fixes | デプロイ後に再スキャンし、チェック ID ごとに合格したかどうか、新旧のスコア、未解決の項目、allFixed を報告します。 |
get_report | 共有レポート(web-scan.agentmarket.lol/r/<slug>)を、再スキャンせずに読み込みます。 |
エージェントで試してみましょう。
Web Scan で https://my-app.com をスキャンし、このリポジトリの問題をポイント数の高い順にすべて修正して、デプロイ後に修正を検証してください。
GitHub Action
デプロイによってサイトが悪化した場合、ビルドを失敗させます。
- uses: ankitkumarjha515/web-scan@v1
with:
url: https://my-app.com
min-score: 85 # fail below this score
fail-on: score # score | failures | any | never
ジョブページに概要表と完全なインタラクティブレポートへのリンクを書き込みます。プレビュー環境へのデプロイと組み合わせれば、本番環境に反映される前に問題を検出できます。
CLI
依存関係は不要です。Node 18 以降に対応しています。
node bin/web-scan.mjs https://my-app.com --min-score 90
node bin/web-scan.mjs https://my-app.com --fail-on failures --json
終了コード 0 は合格、1 はゲート失敗、2 はスキャンを実行できなかったことを示します。実行のたびに、グラフ、AI 検索ビュー、リンクプレビュー、ライブ速度テストを含むウェブサイト上の完全なレポートへのリンクが表示されます。
チェック項目
| 領域 | 例 |
|---|---|
| 検索の基本 | タイトル、説明、canonical、見出し、言語、構造化データの妥当性、hreflang |
| AI 検索(GEO) | JavaScript なしでのテキスト表示、GPTBot / ClaudeBot / PerplexityBot のアクセス、llms.txt、回答に適したセクション、引用のしやすさ |
| クロール可能性 | ステータス、noindex、robots.txt(このページ自体をブロックするルールを含む)、サイトマップ、ソフト 404、リダイレクト |
| 共有 | 実際に読み込める og:image、X、LinkedIn、Slack、WhatsApp のプレビュー用タイトルと説明 |
| セキュリティ | HTTPS、HSTS、CSP の強度、Cookie、CORS、混在コンテンツ、フレーミング |
| 漏えいしたシークレット | 配信される JavaScript 内のプロバイダーキーやデータベース URL、Supabase の service_role、ソースマップ、デバッグビルド |
| 速度 | サーバー応答、ページ容量、レンダリングをブロックするファイル、フォント、キャッシュ、必要に応じた Core Web Vitals |
| 画像とアクセシビリティ | 代替テキスト、サイズ、遅延読み込み、形式、ズーム、ラベル、ランドマーク |
各レポートでは、サイトの種類(ショップ、地域ビジネス、ソフトウェア、出版社、代理店)と、その種類のサイトに必要な基本項目に加えて、スキャンで確認した内容と確認できなかった内容も説明します。
サイト全体の監査、競合比較、毎時のモニタリング、README バッジについては ウェブサイトをご覧ください。
制限事項
- 公開 URL のみが対象です。localhost やプライベートネットワークは対象外です。プレビュー環境へのデプロイを使用してください。
- IP ごとにフェアユースのレート制限があります。より高い上限を利用するには、ウェブサイトにサインインしてください。
scan_urlの呼び出しごとに 1 ページのみです。サイト全体をクロールするにはウェブサイトを使用してください。
ライセンス
このリポジトリ(Action、CLI、レジストリメタデータ)は MIT ライセンスです。スキャナー自体はホスト型サービスとして実行されます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。