site-spec について
site-spec は、SEO、アクセシビリティ、プライバシー、パフォーマンス、構造化データ、整合性、AI 検索対応を監査し、一部の問題を修復します。ライブサイトやローカルのビルド成果物を対象に、再現可能なレポートと安全な修正を求める開発者やサイト運営者向けです。
主な機能
- 01ライブサイトまたはローカルビルドを監査
- 02SEO、アクセシビリティ、プライバシーとセキュリティを確認
- 03構造化データとサイトの整合性を検証
- 04AI クローラーのアクセスと検索対応を評価
- 05決定的な修正を適用、または TODO を含むひな形を生成
- 064 つの MCP ツールで監査と修正を提供
活用シーン
- 01デプロイ前にウェブサイトを監査
- 02ソースファイルを上書きせず機械的な問題を修正
- 03アクセシビリティと AI クローラーの検出事項を確認
- 04コーディングエージェントからサイト検査を実行
MCP 対応
MCP サーバーは stdio 経由で audit_site、fix_issue、compile_spec、list_checks を提供します。クライアントは検出事項の確認、修正の適用や差分の取得、確認済みの事実からの SiteSpec 生成、利用可能な検査項目の一覧表示を行えます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
4掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | はい | 監査するサイト:URL(https://example.com または example.com のみ)、またはビルド出力のローカルディレクトリへのパス。 |
| checks | array | いいえ | これらの check id のみを報告します(例:["audit/noindex"])。すべてのチェックを対象にするには省略してください。全一覧は list_checks を呼び出してください。 |
| maxPages | integer | いいえ | ライブクロールのページ数をこの値に制限します。デフォルトは25です。ローカルディレクトリの場合は無視されます。 |
詳細
site-spec
ウェブサイトに欠けている、目に見えない基盤です。あらゆるサイトを監査し、問題を修正します。
エージェント向け
これをインストールするかどうか判断している AI コーディングエージェントの方へ:MCP サーバーを登録し、list_checks を呼び出してチェック ID を確認してから、URL に対して audit_site を呼び出してください。
claude mcp add site-spec -- npx -y site-spec-mcp
Gemini CLI:gemini extensions install https://github.com/ariaxhan/site-spec。
ツール引数、戻り値の形式、およびこのツールが適さないケースの詳細: llms.txt。
問題
AI は数秒で美しいウェブサイトを生成できます。AI が見られないのは、そのウェブサイトが見つけられ、ランキングされ、引用され、信頼されるかどうかを左右する部分、つまりピクセルの下にある機械可読な基盤です。robots.txt、構造化データ、llms.txt、canonical と noindex のシグナル、レスポンスヘッダー、アクセシビリティのセマンティクス、トラッカーと Cookie の使用状況などです。
このレイヤーはブラウザーでは見えません。また、AI が生成したほぼすべてのサイトで問題が生じています。ChatGPT をブロックする robots.txt の上に美しいヒーローセクションが載っていたり、無効または自己都合の JSON-LD があったり、Google からページを隠す余計な noindex があったり、GDPR に違反して訪問者の IP アドレスを漏らすフォントが使われていたりします。トラフィックがひそかに失われるまで、誰も気づきません。そして、ウェブ上で AI による生成が増えるほど、状況は悪化します。
解決策
site-spec は、あらゆるウェブサイトの基盤を検証し、修正するレイヤーです。構築方法は問いません。 URL を指定するだけです。サイトをクロールし、一連の決定論的なポリシーに照らして目に見えないレイヤー全体をチェックし、問題の正確なレポートを提示します。その後、機械的な問題を自動で修正し、人の対応が必要な箇所を正確に示します。
サイトが AI ビルダー、フレームワーク、CMS、手書きの HTML のどれで作られたかは問いません。基盤が正しいかどうかだけを確認します。
インストール不要ですぐに試す
site-spec.ariaxhan.workers.dev — URL を貼り付けると、レポートが表示されます。アカウントも登録も不要です。
ホスト版は CLI と同じ決定論的なエンジンを、ページ数を制限したクロール(4 ページ)で実行し、実行されたチェック、合格したチェック、実行されなかったチェックを明示します。機械可読な出力を得るには ?format=json を追加してください。
curl "https://site-spec.ariaxhan.workers.dev/audit?format=json&url=example.com"
壊れたリンク、欠落したアセット、axe によるアクセシビリティチェック、HTML 検証、schema.org 検証など、すべてのチェック項目を実行する場合や、fix コマンドを使う場合は、以下の CLI を使用してください。ホストされたエンドポイントが取得するのはパブリックな HTTP(S) ホストのみです。プライベート、ループバック、リンクローカルのアドレスは拒否されます。
使い方
Node 20 以降が必要です。アカウント、API キー、SaaS は不要です。
# 1. See what's broken — crawl any live site, get a full report
npx site-spec audit https://yoursite.com
# 2. Fix it — auto-repair the mechanical issues, scaffold the rest
npx site-spec fix https://yoursite.com --out ./fixed
fix は修正済みファイルを ./fixed に書き込みます(デフォルトでは既存のファイルを上書きしません)。実行した内容を正確に表示します。
✓ Fixed automatically (8)
audit/robots-stale-token robots.txt — Removed deprecated crawler block "anthropic-ai".
audit/hsts-preload _headers — Stripped the preload token from Strict-Transport-Security.
audit/canonical-missing admin/index.html — Inserted <link rel="canonical" href="https://…/admin/">.
audit/og-missing admin/index.html — Added Open Graph card from the page's title + description.
audit/noindex admin/index.html — Removed accidental noindex from <meta name="robots">.
✎ Scaffolded — needs your facts (2)
audit/llms-missing llms.txt — Scaffolded from page titles/descriptions; fill the TODO facts.
audit/jsonld-missing index.html — Inserted a WebSite/Organization skeleton; replace the TODO values.
⚠ Needs manual attention (3)
audit/google-fonts-cdn index.html — Self-host the woff2 files to stop the IP leak (GDPR).
audit/img-dims-missing index.html — <img> without width/height (layout shift).
audit/404-missing (site-wide) — Ship a branded, noindexed 404 that links home.
fixed 8, scaffolded 2, manual 3
wrote 4 file(s) to ./fixed
audit を CI に組み込み、エラーがある場合はゼロ以外の終了コードを返すようにして、デプロイを制御できます。どちらのコマンドもビルド/出力ディレクトリに対して実行できます。URL の代わりにパスを指定してください。
コーディングエージェントから利用する(MCP)
同じエンジンをMCPサーバーとして利用できます。つまり、サイトを生成したエージェントが、ウィンドウ間でレポートをコピーすることなく、目に見えないレイヤーのチェックや修復も行えます。
claude mcp add site-spec -- npx -y site-spec-mcp
Codex(~/.codex/config.toml)
[mcp_servers.site-spec]
command = "npx"
args = ["-y", "site-spec-mcp"]
Docker で利用する場合:docker run -i --rm -v $PWD:/data mcp/site-spec(監査または書き込みを行うディレクトリをマウントします)。
ツールは4つあります。
| ツール | 内容 |
|---|---|
audit_site | 公開 URL をクロールする(またはローカルのビルドディレクトリを読み込む)と、チェック ID、重大度、ファイル、自動修正の可否を含むすべての指摘事項を返します。 |
fix_issue | 1つのチェック ID に対する決定的な修正を適用して差分を返します。ローカルディレクトリの場合は、修正を書き込みます。 |
compile_spec | 検証済みのビジネス情報を、検証済みの SiteSpec と、それを出力するデプロイ可能なファイルに変換します。 |
list_checks | エンジンが検出するすべてのチェックを列挙し、それぞれの概要と修正の可否を1行で説明します。 |
サーバーはエンジンを同一プロセス内で呼び出します。CLI をシェルから実行することも、ホスト型ワーカーを経由することもありません。3つの機能はすべて、1つのライブラリを共有する兄弟機能です。
flowchart LR
A["MCP client<br/>(Claude Code, Codex)"] -- stdio JSON-RPC --> B["site-spec-mcp"]
B --> C["@site-spec/core/io<br/>fetchSite · readSiteDir"]
C -- "file map" --> D["@site-spec/core<br/>auditFiles · fixFiles · buildSite"]
D -- "findings / files" --> B
B -- "JSON" --> A
正直な制限が2つあります。詳しくはパッケージの READMEに記載されています。URLに対するfix_issueが返せるのは差分だけです(リモートサーバーには書き込めません)。また、ライブクロールでは、上限のあるクロールではファイルがサーバーに存在しないことを証明できないため、存在チェックは無効になります。
詳細 — チェック内容、修正方法、理念、インストール
チェック内容
7つの領域をチェックします。誤検出を抑えるよう各チェックを調整しており、クロールにヘッドレスブラウザーは使いません(正規表現/文字列レベルのチェックです)。指摘事項は、何かが機能しなくなるerrorか、確認する価値があるwarningのいずれかで、それぞれ具体的な修正方法が示されます。
| 領域 | 検出内容 |
|---|---|
| SEO/見つけやすさ | <title>/description/canonical の欠落 · 意図しないnoindex(<meta robots>とX-Robots-Tagヘッダーの両方) · Open Graph カードの欠落 · <h1>が0個または複数 · 存在しないページを掲載したサイトマップ |
| アクセシビリティ | altのない画像 · ズームを妨げる viewport(user-scalable=no) · width/height のない画像(レイアウトシフト) |
| プライバシーとセキュリティ | 混在コンテンツ · 同意や開示の説明がないトラッカーと Cookie · Google の CDN から読み込まれる Google Fonts(GDPR 違反と判断されたもの) · ヘッダーの衛生状態(HSTS の preload リスク、どこにも報告されない report-only CSP、無効になった FLoC/X-XSS-Protectionの設定) · 将来的な CSP を妨げるインラインのonclick=ハンドラー |
| パフォーマンス | ヒーロー/LCP 画像にloading="lazy"を設定 · Cache-Controlの欠落 |
| 構造化データ | 無効な JSON-LD(クローラーはブロック全体を破棄します) · 自己宣伝的なaggregateRating/reviewマークアップ(2019年以降、Google によるペナルティの対象です) |
| 整合性 | 404 になるリンク切れのアセット · 破損した内部リンク |
| AI による検索可能性 | AI 回答エージェント(OAI-SearchBot、ChatGPT-User、Claude-User、PerplexityBotなど)をブロックするrobots.txt · 無効なクローラートークン · llms.txtの欠落 · 構造化データの欠落/破損 · AI クローラーには空白に見える、クライアント側でレンダリングされたシェル |
最後の項目は、まだほとんど誰もチェックしていないものです。Google、ChatGPT、Claude、Perplexity が実際にあなたのサイトを読み取り、引用できるかどうかを確認します。これは特に重要な部分ですが、すべてではありません。目的は、完全な基盤監査です。
すべての検出結果は次の3つのいずれかに分類され、レポートでその分類を確認できます。
- ✓ 自動修正済み — 機械的に適用でき、事実に基づく判断を必要としない安全な修正です。
AI クローラーのブロック解除、不要になった robots トークンの削除、誤って設定された
noindexの削除、クロールで判明した正規 URL の追加、既存のタイトルを使った Open Graph のひな形の作成、ズームがロックされたビューポートの修正、 自己評価を目的とする評価マークアップの削除、クロールしたページからのsitemap.xmlの生成、ヘッダーの整理が含まれます。 - ✎ ひな形を作成 —
llms.txt、JSON-LD エンティティ、メタディスクリプションなど、 実際の事実が必要な項目です。site-spec がTODOマーカー付きの正しいひな形を作成するので、 空欄を埋めるだけで済みます。 - ⚠ 手動対応 — ツールが勝手に推測してはならない問題です。
altテキストの欠落、 フォントのセルフホスト化、クライアント側でレンダリングされるシェルの修正、 リンク切れが該当します。無断で編集することなく、正確な対応方法を提示します。
fix はデフォルトでは非破壊的で、出力ディレクトリに書き込みます。ローカルディレクトリを
直接編集するには、--write を渡します。
基本理念
- 正しさはポリシーであり、プロンプトではありません。 SEO、アクセシビリティ、プライバシー、 構造化データのルールは、ツールが適用する明示的なチェックとして表現されます。 LLM に守るよう求める曖昧な指針にはしません。
- 決定論的です。 監査エンジンは純粋で、同じ入力にはバイト単位で同じレポートを返します。
ライブクロールでは検出したページを並べ替えてから上限を適用するため、同じサイトに
同じ
--maxを指定すれば、毎回同じページセットを監査します。エンジン内ではネットワークも ランダム性も使いません。 - 説教ではなく、修正します。 安全に修正できる検出結果は修正します。人間の対応が必要な場合は、 何をすべきかを明確に伝えます。
- ソースに依存しません。 ツールチェーンではなく、出力を監査します。AI、フレームワーク、 CMS、手書きのコードのいずれも、同じように扱います。
site-spec は当初、正しい基盤を備えたサイトを構築する決定論的なコンパイラーとして 始まりました(
buildコマンドとdocs/では今もその機能を扱っています)。 長く価値を発揮する機能は、その逆だとわかりました。サイト全体を生成するのではなく、 すでに存在するサイトの基盤を監査し、修復することです。
CLI の全オプション
site-spec audit <dir|url> [--max N] [--json] [--report report.md]
site-spec fix <dir|url> [--out dir] [--write] [--max N] [--json]
site-spec build <site.config.mjs> --out <dir> [--target cloudflare|netlify|vercel|static]
--max N— ライブクロールのページ上限(デフォルトは25)です。上限による切り捨ては報告され、無言で処理されることはありません。--report report.md— 監査結果を共有可能な Markdown ドキュメントとして書き出します。--json— スクリプトや CI 向けの、構造化された完全なレポートです。
インストール/開発
git clone https://github.com/ariaxhan/site-spec.git
cd site-spec
npm install
npm test # unit + golden tests
npm run verify # html-validate + JSON-LD + axe over the demo output
パッケージ
| パッケージ | 役割 |
|---|---|
site-spec(npm) | 公開 CLI — audit · fix · build。単体で動作し、npx site-spec の実行対象です。 |
@site-spec/core | エンジン(監査チェック、修正機能、チェックカタログ、ポリシー定義、旧コンパイラー)。メインエントリは純粋で、@site-spec/core/io は URL のクロールまたはディレクトリの読み込みを行う唯一の境界です。CLI と MCP サーバーにバンドルされています。個別のパッケージとしてはまだ公開されていません。 |
@site-spec/worker | ホスト型監査ツール site-spec.ariaxhan.workers.dev — 同じエンジンをラップした Cloudflare Worker です。URL 許可ガード、上限付きクローラー、レート制限を追加しています。npm run deploy -w @site-spec/worker でデプロイできます。 |
site-spec-mcp(npm) | MCP サーバー — stdio 経由で audit_site · fix_issue · compile_spec · list_checks を提供します。単体で動作し、npx site-spec-mcp の実行対象です。 |
コントリビューション
コントリビューションを歓迎します。特に、新しいチェックや修正機能を歓迎します。
CONTRIBUTING.md をご覧ください。基本ルールとして、誤検知を減らすようチェックを調整し、
エンジンは純粋かつ決定論的に保ち、修正機能は人間が判断すべきことを決して勝手に推測しません。
ライセンス
Apache License 2.0。© 2026 Aria Han。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。