WSG Check について
WSG Check は、W3C Web Sustainability Guidelines に基づく自動ヒューリスティックでウェブサイトを評価し、スコアや改善提案、レポートを提供します。コマンドライン、Web アプリ、MCP サーバーから利用でき、検査では HTML と HTTP メタデータを使い、JavaScript は実行しません。
主な機能
- 01サステナビリティガイドラインに基づくサイト検査
- 02加重スコアと修正提案の生成
- 03ターミナル、JSON、Markdown、HTML でのレポート出力
- 04ガイドラインと自動検査の情報検索
活用シーン
- 01公開済みサイトのサステナビリティ評価
- 02CI パイプラインへのスコアしきい値設定
- 03テーマに関連するガイドラインの検索
- 04ローカル開発サイトの検査と修正項目の整理
MCP 対応
MCP サーバーは check_url、list_guidelines、get_guideline ツールを通じて、サイト検査とガイドライン検索をクライアントに提供します。アカウント、ポート、ホスト型サービスなしで、ローカルの stdio 経由で動作します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @sustainablewebsites/wsg-checkWSG_CHECK_NO_LOCALSet to 1 to block localhost and other loopback URLs, which are allowed by defaultWSG_CHECK_ALLOW_PRIVATESet to 1 to allow private network URLs (10/8, 172.16/12, 192.168/16)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
3掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | はい | チェックするページです。例: https://example.com または http://localhost:3000 |
| detail | enum | いいえ | "summary"(デフォルト)はスコアと、失敗または警告となったチェックを返します。"full" は完全なレポートも返します。レポートはかなり長くなります。summary | full |
| timeoutMs | integer | いいえ | このミリ秒数が経過したら中止します。デフォルトは 60000 です。 |
| categories | array | いいえ | 実行する WSG カテゴリー。デフォルトでは 3 つすべてを実行します。 |
| guidelines | array | いいえ | 実行対象をこれらのガイドラインの slug(例:"minify-and-remove-unused-code")または関連チェック ID に限定します。 |
詳細
WSG-Check
W3C Web Sustainability Guidelinesに基づく自動ヒューリスティックを使って、ウェブサイトをチェックします。CLIまたはNext.jsウェブアプリを通じて、重み付けされたスコア、推奨事項、レポートをターミナル、JSON、Markdown、HTML形式で取得できます。
リリース状況
最新リリースはv0.6.3です。
mainのソースは、WSG September-2026、つまり2026年9月24日付のグループノート草案を対象としています。v0.6.1以前はJuly-2026を対象としていました。AIアシスタント向けのMCPサーバーを含み、check_url、list_guidelines、get_guidelineのツールを備えています。このサーバーはMCP Registryにio.github.ivanoats/wsg-checkとして登録されています。サーバーはv0.4.0で初めてリリースされました。v0.3.0はGitHubでタグ付けされましたが、npmには公開されていません。変更履歴と仕様のバージョン管理ポリシーを参照してください。
異なる仕様バージョンのスコアを直接比較しないでください。レポートを比較する際は、パッケージのバージョンとチェック項目の選択も重要です。
クイックスタート
Node.js 22以降が必要です。再現可能な実行のため、リリース済みのCLIを固定してください。
npx @sustainablewebsites/[email protected] https://example.com # x-release-please-version
# Or install globally
npm install -g @sustainablewebsites/[email protected] # x-release-please-version
wsg-check https://example.com --format json --output report.json
未リリースの機能を含む現行ソースを実行する場合は、Node.js 22.22.1以降を使用してください(開発ツールに必要です)。
git clone https://github.com/ivanoats/wsg-check.git
cd wsg-check
npm ci # prepare also generates Panda CSS tokens
npm run dev # http://localhost:3000
# Build and run the CLI from this checkout
npm run build:cli
node dist/cli/index.js https://example.com
環境設定と開発コマンドについては、CONTRIBUTING.mdを参照してください。
結果の意味
- チェック対象はウェブ開発、UX、ホスティングです。ビジネスカテゴリには自動チェックがありません。
- 分析では取得したHTMLとHTTPメタデータを使用します。JavaScriptのレンダリング、Core Web Vitalsの測定、参照されているすべてのアセットのダウンロードは行いません。
- CO₂の推定には、HTMLのバイト数とSWD v4モデルを使用します。ページ全体のエネルギー消費量を測定するものではありません。グリーンホスティングの検索に失敗した場合は、
falseを使用します。 - レポートのページ容量はHTMLドキュメントのサイズです。リソース数とサードパーティ数はHTML内の参照から取得します。参照されているアセットのダウンロードや測定は行いません。
- セキュリティヘッダー、フォームの検証、ネイティブフォーム機能、画像の代替テキストは、関連チェックとして表示されますが、WSGスコアには含まれません。
CLIの使い方
WSG-Checkには、ターミナルから任意のウェブサイトを直接チェックしたり、チェックをCIパイプラインに統合したりできるコマンドラインツールが付属しています。
基本的な使い方
# Check a website with default (terminal) output
npx @sustainablewebsites/wsg-check https://example.com
# Output as JSON
npx @sustainablewebsites/wsg-check https://example.com --format json
# Save the report to a file
npx @sustainablewebsites/wsg-check https://example.com --format markdown --output report.md
# Fail the process (exit 1) if the score is below 70
npx @sustainablewebsites/wsg-check https://example.com --fail-threshold 70
オプション
| オプション | 別名 | 説明 | デフォルト |
|---|---|---|---|
--format <format> | -f | 出力形式:terminal、json、markdown、html | terminal |
--output <path> | -o | 標準出力ではなく、レポートをファイルに書き込みます | (標準出力) |
--categories <list> | -c | カンマ区切りのカテゴリー:ux,web-dev,hosting(business は計画中です。自動チェックはまだありません) | すべて |
--guidelines <list> | -g | 実行するガイドラインのスラッグをカンマ区切りで指定します。例:minify-and-remove-unused-code(3.3 などの数値 ID は非推奨です) | すべて |
--fail-threshold <n> | 総合スコアが n(0~100)未満の場合、終了コード 1 を返します | 0 | |
--verbose | -v | 詳細ログを有効にします | false |
--config <path> | wsg-check.config.json または .wsgcheckrc.json のパス | (自動検出) | |
--version | バージョンを表示して終了します | ||
--help | ヘルプを表示して終了します |
CI との統合
--fail-threshold を使用すると、サイトのサステナビリティスコアが低下した場合にパイプラインを失敗させることができます。
# .github/workflows/sustainability.yml
- name: Check sustainability
run: npx @sustainablewebsites/wsg-check https://example.com --fail-threshold 60 --format json --output wsg-report.json
- name: Upload report
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: wsg-report
path: wsg-report.json
終了コード
| コード | 意味 |
|---|---|
0 | チェックが完了し、スコアが --fail-threshold 以上です |
1 | 取得/解析エラー、またはスコアが --fail-threshold 未満です |
AI アシスタントでの使用(MCP)
このパッケージには、Claude Code、Claude Desktop、VS Code、Cursor、その他の MCP クライアント向けのModel Context Protocol サーバーである wsg-check-mcp が含まれています。アカウント、ポート、ホスト型サービスは不要で、お使いのマシン上で stdio 経由で動作します。これにより、アシスタントは公開済みのサイトやローカルの開発サーバーをチェックしたり、ガイドラインを調べたり、見つかった問題を修正したりできます。
# Claude Code
claude mcp add wsg-check -- npx -y -p @sustainablewebsites/wsg-check wsg-check-mcp
Claude Desktop(claude_desktop_config.json)と Cursor(.cursor/mcp.json):
{
"mcpServers": {
"wsg-check": {
"command": "npx",
"args": ["-y", "-p", "@sustainablewebsites/wsg-check", "wsg-check-mcp"]
}
}
}
npx -y @sustainablewebsites/wsg-check --mcp を実行すると、同じサーバーが起動します。これは、MCP Registry の掲載情報 io.github.ivanoats/wsg-check が使用するコマンドです。
VS Code(.vscode/mcp.json)では、servers キーを使用します。
{
"servers": {
"wsg-check": {
"type": "stdio",
"command": "npx",
"args": ["-y", "-p", "@sustainablewebsites/wsg-check", "wsg-check-mcp"]
}
}
}
「http://localhost:3000 を WSG に照らしてチェックし、優先度の高い問題を 3 つ修正して」や「Web フォントに関する WSG ガイドラインはどれですか?」といったプロンプトを試してみてください。
| ツール | 説明 |
|---|---|
check_url | ページをチェックし、スコア、評価、および失敗または警告となった各チェックと推奨される修正方法を返します。detail: "full" を指定すると、完全なレポートが追加されます。 |
list_guidelines | WSG ガイドラインを、カテゴリ、テスト可能性、またはテキストで絞り込んで一覧表示します。また、各ガイドラインを実装する自動チェックの数も表示します。 |
get_guideline | 1 つのガイドラインの説明と W3C 仕様へのリンクを返します。 |
ネットワークアクセス
- ローカル URL はデフォルトで許可されています。そのため、
http://localhost:3000やその他のループバックアドレスは、設定なしで使用できます。ただし、アシスタントが読み取るテキスト(Web ページやプロジェクト内のファイルなど)が、マシン上のサービスへのリクエストを誘導しようとする可能性があります。リクエストは GET のみで、結果はアシスタントに返されます。ローカルの開発サーバーをチェックしない場合は、引数内でwsg-check-mcpの後に--no-localを追加するか、WSG_CHECK_NO_LOCAL=1を設定してください。 - プライベートネットワーク(10/8、172.16/12、192.168/16)は、
--allow-private-networkを追加するか、WSG_CHECK_ALLOW_PRIVATE=1を設定しない限りブロックされます。 check_urlが行うその他のリクエストは、グリーンホスティングの照会のみです。ホスト名は Green Web Foundation に送信されます。ローカルのホスト名が送信されることはありません。- クラウドメタデータやその他の予約済みアドレスは常にブロックされます。公開サイトからお使いのマシンやネットワークへのリダイレクトは拒否され、各接続はチェック済みのアドレスに固定されます。
エージェントスキル
このリポジトリには、Agent Skill の wsg-sustainability-review も含まれています。アシスタントがサイトをチェックし、優先順位に従ってコードベースの問題を修正し、再度チェックする手順を案内します。MCP ツールが設定されている場合はそれらを使用し、そうでない場合は CLI にフォールバックします。次のコマンドで、Claude Code、Cursor、Copilot、その他のエージェントにインストールできます。
npx skills add ivanoats/wsg-check
REST API
ウェブアプリは Next.js Route Handler を公開します。
| エンドポイント | 目的 |
|---|---|
POST /api/check | チェックを実行し、完了したレポートと ID を返します |
GET /api/check/:id | プロセス内の結果ストアからレポートを取得します |
GET /api/guidelines | ガイドラインを一覧表示します。現在のソースには、spec に固定された仕様の出典情報が含まれます |
GET /api/guidelines/:id | ガイドラインを検索します。現在のソースでは、スラッグと従来の数値エイリアスを受け付けます |
GET /api/health | ヘルスステータスを返します。現在のソースには、パッケージの version と specVersion が含まれます |
GET /api/openapi | OpenAPI 3.1 JSON ドキュメント(対話型ドキュメント UI はありません) |
レスポンスには CORS ヘッダー、共通のエラー形式、メモリ内のレート制限が適用されます。保存された結果は 1 時間後に期限切れとなり、ストアに保持できるエントリは最大 500 件です。結果と制限はサーバーインスタンス間で共有されません。ブラウザーでは、新しく作成されたレポートを sessionStorage に保持します。結果 URL は永続的な共有リンクではありません。ランタイムとストレージを参照してください。
アーキテクチャとドキュメント
CLI、ウェブ API、MCP サーバーは、共通の TypeScript による fetch → check → score → report パイプラインを使用します。コードは階層化されており、中核部分はフレームワークに依存しませんが、具体的なユーティリティ実装には直接依存しています。アーキテクチャの概要では、これらの境界と外部 I/O の例外について説明しています。
- ドキュメント索引
- アーキテクチャ決定ログ(ADL)とADR テンプレート
- モジュールとチェックのリファレンス
- WSG 仕様のバージョン管理
- コントリビューション、リリース、変更履歴
- エグゼクティブサマリーと実装計画 — 過去の計画に関する参考情報です。実装済みの動作については、アーキテクチャの概要を参照してください。
ライセンス
Apache-2.0。NOTICEとコントリビューターライセンス契約も参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。