wcagc — accessibility scanning について
wcagc-mcpは、wcagc経由で確定的なアクセシビリティスキャンを実行するステートレスなアダプターです。スキャン結果や問題の確認に使え、自動テストだけでは適合性を証明できないことも明示します。
主な機能
- 01axe-coreによる公開URLのスキャン
- 02公開PDFのPDF/UA-1構造チェック
- 03スキャン状態、重要度別件数、問題の取得
- 04登録サイトのクロールと実行結果の確認
- 05繰り返し現れるDOMパターンと影響範囲の集約
- 06保存済みジャーニーの再生と違反傾向の確認
活用シーン
- 01公開ページのアクセシビリティ問題の確認
- 02PDF/UA-1に基づくPDF構造の検査
- 03登録サイトのクロールで見つかった問題の確認
- 04繰り返しパターンやサイトの違反履歴の追跡
MCP 対応
MCPクライアントにwcagcのスキャンと結果管理ツールを公開します。ローカルstdioと、マネージドOAuthを使うホスト型Streamable HTTPに対応します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.wcagc.com/mcpclaude mcp add --transport http wcag-compliance https://mcp.wcagc.com/mcp{"mcpServers":{"wcag-compliance":{"type":"http","url":"https://mcp.wcagc.com/mcp"}}}Cursor で開く{"servers":{"wcag-compliance":{"type":"http","url":"https://mcp.wcagc.com/mcp"}}}VS Code で開く{"mcpServers":{"wcag-compliance":{"type":"http","url":"https://mcp.wcagc.com/mcp"}}}{"mcpServers":{"wcag-compliance":{"serverUrl":"https://mcp.wcagc.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
wcagc-mcp
AI アシスタント(Claude、ChatGPT、または MCP 対応クライアント)が、wcagc を通じて実際の決定論的なアクセシビリティスキャンを実行できる MCP サーバーです。内部では axe-core を使用しており、LLM による推測ではありません。すべてのスキャン結果には明示的なカバレッジに関する免責事項が含まれ、「準拠している」と断言することはありません。自動テストで見つかるアクセシビリティ上の障壁は一部に限られ、このツールはそのことをすべての応答で明示します。
このパッケージは薄く、ステートレスなアダプターです。データベースもスキャンロジックも保持せず、wcagc API のベース URL 以外の秘密情報も扱いません。MCP ツール呼び出しを wcagc API への HTTP 呼び出しに変換し、呼び出し元自身のベアラーを転送します。認証、利用権限、クォータ、スキャンのオーケストレーションはすべて API 側で管理されます。このコードは最初から最後まで安全に確認できます。
実行方法は2通り
ローカル(stdio) — Claude Desktop、Cursor、またはローカルプロセスを起動する MCP クライアント向けです。
npx @wcagc/mcp
MCP クライアントを次のように設定します。
{
"mcpServers": {
"wcagc": {
"command": "npx",
"args": ["-y", "@wcagc/mcp"],
"env": {
"WCAGC_MCP_KEY": "<your mcp:scan API key>"
}
}
}
}
wcagc アカウントの「Settings → API keys」から mcp:scan キーを発行します。すべてのプランで利用でき、Free/Starter では1日のクォータが適用され、Pro/Agency では無制限に利用できます。
ホステッド(Streamable HTTP + マネージド OAuth) — Claude のウェブ/デスクトップ/モバイルコネクターや ChatGPT で使用します。これらはローカルプロセスを起動しないためです。次のリモート MCP コネクターを追加します。
https://mcp.wcagc.com/mcp
クライアントは /.well-known/oauth-protected-resource/mcp を検出し、wcagc のログイン/同意フローを開いて、接続を1つの Organization に紐付けます。キーをコピーして貼り付ける必要はありません。API キーのベアラー認証は、ローカルの stdio と CI でも引き続き利用できます。
ChatGPT で利用できるかどうかは、ChatGPT のプランと、クライアントがアクションツールを許可するかどうかによって異なります。scan_url はスキャンを作成するため、読み取り専用の操作ではありません。詳しくはwcagc.com/integrations/mcpをご覧ください。
ツール
| ツール | プラン | 機能 |
|---|---|---|
scan_url | すべて | 任意の公開 URL、または完全な追跡を行う場合は登録済みサイトをスキャンします(Pro 以上)。 |
check_pdf | すべて | 公開 PDF の PDF/UA-1 構造チェックを実行します。 |
get_scan · get_findings | すべて | scan_url によるスキャンのステータス、重大度別件数、検出結果を取得します。記録済みと単発のどちらにも対応します。 |
list_sites | Pro 以上 | アカウントに登録されているサイトの一覧を取得します。 |
scan_site | Pro 以上 | 登録済みサイトで到達可能なすべてのページをクロールしてスキャンします。 |
get_run · get_run_findings | Pro 以上 | scan_site によるサイト全体の実行結果を取得します。 |
get_root_causes | Pro 以上 | 実行結果に繰り返し現れる DOM パターンをまとめ、要素/ページへの影響範囲を事実に基づいて返します。 |
run_journey | Pro 以上 | 保存済みの複数ステップのジャーニーを再生し、各ステップを確認します。 |
get_trends | Pro 以上 | サイトの違反件数の推移を取得します。 |
ID は1つ、ポーリング用ツールも1つです。scan_url が URL に対してどのようなスキャンを実行しても、get_scan と get_findings で結果を取得できます。get_run と get_run_findings は、scan_site によるサイト全体の実行結果専用です。
スキャンを実行するすべてのツールは、テキストコンテンツと構造化コンテンツの両方にカバレッジに関する免責事項を含めて返します。スコア、グレード、適合性の判定はありません。自動テストで見つかるアクセシビリティ上の問題は約30~57%で、残りは手動で確認する必要があります。
設定
| 環境変数 | 使用箇所 | 意味 |
|---|---|---|
WCAGC_API_BASE_URL | 両方 | 呼び出す wcagc API です。デフォルトは https://api.wcagc.com です。セルフホストする場合にのみ設定してください。 |
WCAGC_MCP_KEY | stdio | お使いの mcp:scan API キーです。 |
PORT | ホスト型 | リッスンするポートです(デフォルトは 8080)。 |
WCAGC_MCP_ALLOWED_HOSTS | ホスト型 | Host ヘッダーの許可リストをカンマ区切りで指定します(0.0.0.0 にバインドする場合の DNS リバインディング対策)。 |
WCAGC_MCP_INTROSPECT_TTL_SECONDS | ホスト型 | 検証済みのベアラーをキャッシュしてから API で再確認するまでの時間です(デフォルトは 60)。 |
WCAGC_MCP_OAUTH_ISSUER | ホスト型 | 期待される OAuth 発行者です(デフォルトは WCAGC_API_BASE_URL)。 |
WCAGC_MCP_OAUTH_JWKS_URL | ホスト型 | 認可サーバーの公開 JWKS URL です。 |
WCAGC_MCP_URL | ホスト型 | 正式な RFC 9728 保護リソース URL です(デフォルトは https://mcp.wcagc.com/mcp)。 |
WCAGC_MCP_JWKS_TTL_SECONDS | ホスト型 | JWKS キャッシュの TTL です。不明な kid がある場合、直ちに再取得します。 |
WCAGC_OPENAI_APPS_CHALLENGE | ホスト型 | OpenAI Plugins Directory のドメイン検証トークンです。デプロイ用シークレットストアに保管し、ソースコードには絶対に含めないでください。 |
開発
/mcp およびディスカバリーエンドポイントへのホスト型 HTTP リクエストでは、生成された
リクエスト ID、HTTP ステータス、MCP メソッド、エラーコード、所要時間を含む JSON ログが出力されます。トークン、ヘッダー、クエリ文字列、
ツールの引数、結果は含まれません。ヘルスプローブはログに記録されません。
Docker のエントリーポイントは New Relic ESM エージェントを事前に読み込みます。APM と、これらの安全なリクエストログの転送を有効にするには、
NEW_RELIC_AGENT_ENABLED=true、NEW_RELIC_APP_NAME=wcagc-mcp、およびデプロイ用シークレットの NEW_RELIC_LICENSE_KEY を設定します。ライセンスキーは既存の
New Relic アカウントに属している必要があります。絶対にコミットしないでください。stdio のエントリーポイントではエージェントを読み込みません。
npm install
npm run dev # hosted, watch mode
npm run start:stdio # stdio mode
npm run typecheck
npm run verify # node:test against a local fixture API
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。