mcpField
S
site-spec

site-spec

ローカル
github.comビジネス・マーケティング19 週間前に更新

site-spec について

site-spec は、SEO、アクセシビリティ、プライバシー、パフォーマンス、構造化データ、整合性、AI 検索対応を監査し、一部の問題を修復します。ライブサイトやローカルのビルド成果物を対象に、再現可能なレポートと安全な修正を求める開発者やサイト運営者向けです。

主な機能

  1. 01ライブサイトまたはローカルビルドを監査
  2. 02SEO、アクセシビリティ、プライバシーとセキュリティを確認
  3. 03構造化データとサイトの整合性を検証
  4. 04AI クローラーのアクセスと検索対応を評価
  5. 05決定的な修正を適用、または TODO を含むひな形を生成
  6. 064 つの MCP ツールで監査と修正を提供

活用シーン

  1. 01デプロイ前にウェブサイトを監査
  2. 02ソースファイルを上書きせず機械的な問題を修正
  3. 03アクセシビリティと AI クローラーの検出事項を確認
  4. 04コーディングエージェントからサイト検査を実行

MCP 対応

MCP サーバーは stdio 経由で audit_site、fix_issue、compile_spec、list_checks を提供します。クライアントは検出事項の確認、修正の適用や差分の取得、確認済みの事実からの SiteSpec 生成、利用可能な検査項目の一覧表示を行えます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"ariaxhan-site-spec": {
"command": "npx",
"args": [
"-y",
"site-spec-mcp"
]
}
}
}
起動コマンドnpx -y site-spec-mcp

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

パッケージ
npmsite-spec-mcp0.3.2

ツール

4

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
urlstringはい監査するサイト:URL(https://example.com または example.com のみ)、またはビルド出力のローカルディレクトリへのパス。
checksarrayいいえこれらの check id のみを報告します(例:["audit/noindex"])。すべてのチェックを対象にするには省略してください。全一覧は list_checks を呼び出してください。
maxPagesintegerいいえライブクロールのページ数をこの値に制限します。デフォルトは25です。ローカルディレクトリの場合は無視されます。

詳細

site-spec

ウェブサイトに欠けている、目に見えない基盤です。あらゆるサイトを監査し、問題を修正します。

npm npm downloads CI License: Apache-2.0

エージェント向け

これをインストールするかどうか判断している 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_issue1つのチェック 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 が実際にあなたのサイトを読み取り、引用できるかどうかを確認します。これは特に重要な部分ですが、すべてではありません。目的は、完全な基盤監査です。

## `fix` の判断方法

すべての検出結果は次の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。

コメント

MCP は初めてですか?

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

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