MCP SEO Auditor について
MCP SEO Auditorは、HTMLや小規模なサイトクロールを確認する、開発者やコーディングエージェント向けの読み取り専用SEO監査サーバーです。APIキー不要でローカル実行でき、根拠や重大度、優先順位付きの提案を返します。
主な機能
- 01ネットワーク不要の静的HTML監査
- 02タイトル、メタデータ、見出し、canonicalの確認
- 03robots指示とJSON-LDの検証
- 04同一オリジンの最大10ページをクロール
- 05根拠と優先度を含む検出結果
活用シーン
- 01デプロイ前のローカルHTML確認
- 02変更のマージ前にステージングページを検査
- 03小規模なクロールで重複タイトルを発見
- 04コンテンツページの構造化データを検証
MCP 対応
MCPクライアントにaudit_html、audit_url、crawl_siteの3つのツールを提供します。URL監査とクロールは公開ページにアクセスし、HTML監査はネットワーク通信なしでローカル実行します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
3掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | いいえ | 相対リンクのベース URL |
| html | string | はい |
詳細
MCP SEO Auditor
Claude Code または Cursor から無料でオンページ SEO 監査を実行 — ページを公開する前に、タイトルの誤り、メタディスクリプションの欠落、canonical の問題、robots の競合、JSON-LD のエラーを見つけます。完全にローカルで動作し、API キーは不要です。
petrovicistefan MCP suite の一部 — AI コーディングエージェント向けのローカルファーストなガードレールです。
クイックインストール
必要条件: Python 3.11+ および Node.js 18+
Cursor
または、ディープリンクを直接使用します:
cursor://anysphere.cursor-deeplink/mcp/install?name=mcp-seo-auditor&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIm1jcC1zZW8tYXVkaXRvciJdfQo=
または、~/.cursor/mcp.json に手動で追加します:
{
"mcpServers": {
"mcp-seo-auditor": {
"command": "npx",
"args": ["-y", "mcp-seo-auditor"]
}
}
}
Claude Code
claude mcp add mcp-seo-auditor -- npx -y mcp-seo-auditor
このサーバーが Claude MCP Marketplace にある場合:
/plugin marketplace add petrovicistefan/mcp-marketplace
Claude Desktop
claude_desktop_config.json に追加します:
{
"mcpServers": {
"mcp-seo-auditor": {
"command": "npx",
"args": ["-y", "mcp-seo-auditor"]
}
}
}
VS Code
MCP インストールリンクを使用するか、.vscode/mcp.json に追加します:
{
"servers": {
"mcp-seo-auditor": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-seo-auditor"]
}
}
}
npx(任意の MCP クライアント)
npx -y mcp-seo-auditor
uvx(PyPI、近日公開)
uvx mcp-seo-auditor
PyPI パッケージはまだ公開されていません。下記の PyPI Publishing をご覧ください。
その他の MCP クライアント(Windsurf、Cline、Zed、Gemini CLI、Codex CLI)
Codex CLI
codex mcp add mcp-seo-auditor -- npx -y mcp-seo-auditor
Windsurf
~/.codeium/windsurf/mcp_config.json に追加します:
{
"mcpServers": {
"mcp-seo-auditor": {
"command": "npx",
"args": ["-y", "mcp-seo-auditor"]
}
}
}
Zed
settings.json に追加します:
{
"context_servers": {
"mcp-seo-auditor": {
"command": "npx",
"args": ["-y", "mcp-seo-auditor"]
}
}
}
Gemini CLI
~/.gemini/settings.json に追加します:
{
"mcpServers": {
"mcp-seo-auditor": {
"command": "npx",
"args": ["-y", "mcp-seo-auditor"]
}
}
}
⭐ 役に立った場合は、このリポジトリにスターを付けて、ほかの人にも見つけてもらいましょう!
MCP SEO Auditor を使う理由
AI コーディングアシスタントに HTML の監査を依頼して、デプロイ前に SEO の問題を見つけます:
- 「プッシュする前にこのページを監査して」 — タイトルの欠落、メタディスクリプションの誤り、canonical の競合を見つけます
- 「example.com をクロールして、タイトルの重複を確認して」 — サイト全体のコンテンツの重複を検出します
- 「この HTML にどんな SEO の問題がありますか?」 — 重要度レベル付きの、実行可能な推奨事項を取得します
API キー、クラウドアカウント、月額料金が必要なホスト型 SEO ツールとは異なり、MCP SEO Auditor はすべてお使いのマシン上で実行されます。公開 URL を明示的にクロールしない限り、データがコンピューターの外部に送信されることはありません。
ツール
MCP SEO Auditor は、AI エージェントが呼び出せる 3 つの MCP ツールを公開します:
| ツール | 説明 | 入力 | ネットワーク |
|---|---|---|---|
audit_html | ネットワークアクセスなしで、渡された静的 HTML を監査します。根拠と優先順位付きの推奨事項を返します。 | html(文字列、最大 2 MB)、url(文字列、任意のベース URL) | ❌ なし |
audit_url | 公開ページを取得し、静的 SEO を監査します。robots.txt を遵守し、プライベートアドレスをブロックします。 | url(文字列、必須) | ✅ あり |
crawl_site | robots.txt を遵守し、完全に同じオリジン上の最大 10 ページをクロールします。重複するタイトルとディスクリプションを検出します。 | url(文字列、必須)、max_pages(整数、1~10、既定値 5) | ✅ あり |
チェック項目
各監査では、次の項目をスキャンします。
- タイトル:有無、長さ(推奨は50~60文字)、一意性
- メタディスクリプション:有無、長さ(推奨は150~160文字)、一意性
- H1見出し:有無、数(複数のH1は情報として警告されます)
- Canonical URL:有無、有効性、自己参照かクロスドメインか
- Robotsディレクティブ:
<meta name="robots">の競合(例:noindex+ canonical) - 言語宣言:
<html lang="...">の有無 - ビューポート:モバイル対応の
<meta name="viewport">タグ - 画像のalt属性:有無を確認(装飾画像では空のaltも有効です)
- JSON-LD構造化データ:JSON構文の検証
- 内部/外部リンクの一覧:状況把握のための件数
出力:重大度(error、warning、info)、問題コード、証拠のスニペット、実行可能な推奨事項を含む検出結果。さらに、ローカルのチェックリストスコア(ランキング予測ではありません)。
ユースケース
個人開発者
"Audit the homepage HTML in index.html and prioritize the fixes."
"Check https://staging.example.com for SEO issues before I merge this PR."
"Does this landing page have a proper canonical tag?"
デプロイ前
"Audit all HTML files in dist/ and list any errors."
"Crawl the staging site and find duplicate meta descriptions."
コンテンツレビュー
"What's the title and description for this blog post HTML?"
"Does this page have structured data errors?"
サイト監査
"Crawl 10 pages starting at https://example.com and report duplicate titles."
"Which pages are missing H1 tags?"
代替ツールとの比較
MCP SEO Auditorは、AIエージェント向けの他のSEOツールと比べてどうでしょうか?
| 機能 | MCP SEO Auditor | Ryze open-seo-mcp-skills | AminForou/mcp-gsc | iannuttall/seo |
|---|---|---|---|---|
| ページ内HTML監査 | ✅ ローカルで実行、セットアップ不要 | ❌ ホスト型コネクターが必要 | ❌ GSCに特化、静的監査なし | ✅ クロール+監査(ローカル) |
| Google Search Console | ❌ 統合されていません | ✅ ホスト型Ryze MCP経由 | ✅ OAuth/サービスアカウントが必要 | ✅ OAuthのセットアップ |
| Google Analytics | ❌ 統合されていません | ✅ ホスト型MCP経由でGA4 | ❌ 含まれていません | ✅ CLI+ローカルMCP |
| キーワード調査 | ❌ 含まれていません | ✅ DataForSEOを内蔵 | ❌ 含まれていません | ✅ DataForSEO/Ahrefsのキー |
| セットアップの複雑さ | ✅ npx のワンライナー | ⚠️ ホスト型サービスへのサインイン+承認 | ⚠️ Google Cloud OAuth | ⚠️ OAuth+任意のAPIキー |
| コスト | ✅ 無料、ローカル | ⚠️ 無料枠あり、その後は有料 | ✅ 無料(Google APIの費用は利用者負担) | ✅ 無料(APIの費用は利用者負担) |
| ネットワーク接続が必要 | ❌ audit_html では不要 | ✅ 必要(ホスト型) | ✅ 必要(GSC API) | ✅ 必要(GSC/GA API) |
| プライバシー | ✅ 完全にローカルで利用可能 | ⚠️ リクエストをRyzeに送信 | ⚠️ Google Cloudの認証情報 | ⚠️ ホスト型の利用も可能 |
MCP SEO Auditorを使う場合: 外部APIに依存せず、ローカルのHTMLファイルやステージングサイトをすぐに、セットアップなしでページ内監査したい場合に適しています。
代替ツールを使う場合: Google Search Consoleのライブデータ、順位追跡、バックリンク分析、キーワード調査が必要な場合です。これらのツールは、エージェントを外部SEOデータソースに接続する用途に優れています。
目次
- クイックスタート
- MCP SEO Auditorを選ぶ理由
- 機能
- ユースケース
- 代替ツールとの比較
- 要件
- インストール
- ツールリファレンス
- 境界とセキュリティ
- 制限事項
- ホスト型の利用(コントロールプレーン経由のクォータ)
- 製品の方向性
- テストと検証
- 参考資料
- 作者によるその他のMCPサーバー
- コントリビュート
- よくある質問
- ライセンス
要件
PATH上の Python 3.11+(デフォルトではpython3実行ファイルを使用します)- Node.js 18+(npm ラッパー用)
python3 が利用できない場合、または特定の Python 実行ファイルが必要な場合は、MCP_SEO_PYTHON 環境変数に絶対パスを設定してください。
インストール
npm から
クイックスタートの例では、必要に応じてパッケージをダウンロードして実行する npx -y mcp-seo-auditor を使用します。継続的に使用する場合は、クイックスタートのセクションに示すように、クライアントの設定に MCP サーバーを追加してください。
リポジトリのチェックアウトから
リポジトリをクローンし、テストを実行します。
git clone https://github.com/petrovicistefan/mcp-seo-auditor.git
cd mcp-seo-auditor
npm test
サーバーを直接実行します。
node bin/mcp-seo-auditor.mjs
サーバーは標準入力から改行区切りの JSON-RPC を読み込み、標準出力にはプロトコルメッセージのみを出力します。直接起動すると、MCP クライアントからの接続を待ちます。
Claude Code に登録する(絶対パスに置き換えてください):
claude mcp add seo-auditor -- node /absolute/path/mcp-seo-auditor/bin/mcp-seo-auditor.mjs
または、任意の MCP クライアント設定に追加します:
{
"mcpServers": {
"seo-auditor": {
"command": "node",
"args": ["/absolute/path/mcp-seo-auditor/bin/mcp-seo-auditor.mjs"]
}
}
}
Python パッケージを直接インストールする(任意):
pip install .
mcp-seo-auditor
ビルド時には setuptools が必要ですが、実行時には標準ライブラリのみを使用します。
PyPI への公開
このパッケージは PyPI Trusted Publishing(OIDC)用に設定されていますが、まだ公開されていません。メンテナーは https://pypi.org/manage/account/publishing/ で一度だけセットアップを完了する必要があります。
- PyPI プロジェクト名:
mcp-seo-auditor - オーナー:
petrovicistefan - リポジトリ名:
mcp-seo-auditor - ワークフロー名:
publish-pypi.yml - 環境名:(空欄のままにしてください)
セットアップ後、バージョンタグ(例:v0.1.3)をプッシュすると、.github/workflows/publish-pypi.yml ワークフローを通じて PyPI に自動公開されます。
ツールのリファレンス
audit_html
入力:
html(文字列、必須、最大 2 MB):監査する HTML コンテンツurl(文字列、任意):相対リンクの解決に使用するベース URL
出力: 検出結果、メタデータ、スコア、リンク一覧を含む JSON
例:
"Audit this HTML and tell me what's wrong: <html>...</html>"
audit_url
入力:
url(文字列、必須):取得して監査する公開 HTTP(S) URL
出力: audit_html と同じ内容に加えて、status、redirects、elapsedMs を含む http オブジェクト
例:
"Audit https://example.com and prioritize the issues."
robots.txt に従います。リダイレクトは再検証され、元のスキームとオーソリティを維持する必要があります。HTTP 4xx/5xx はエラーの検出結果を追加し、スコアを低下させます。
crawl_site
入力:
url(文字列、必須):開始 URL(同一オリジンのクロール)max_pages(整数、任意、1~10、デフォルト 5):クロールする最大ページ数
出力: 以下を含む JSON:
pages:ページごとの監査レポートの配列errors:URL ごとの取得/検証エラーの配列duplicates:該当する URL を含む、重複したタイトルと説明maxPages:適用された上限pendingUrls:クロールされずにキューに残っている URL の数(0 より大きい場合、クローラーは早期に停止しました)
例:
"Crawl 10 pages starting at https://example.com and find duplicate titles."
取得のたびに robots.txt に従います。最小 200 ms の間隔(または robots.txt の Crawl-delay に指定された最大 5 秒の間隔)を適用します。90 秒経過後、または URL を 10 件試行した後に停止します。内部リンクのみをたどります(同一オリジン)。
境界とセキュリティ
- 静的 HTML のみ:ブラウザーや JavaScript は実行されません。シングルページアプリ(SPA)の出力では、クライアントサイドレンダリング後に消える検出結果が生成されることがあります。
- 一般的なポートでの HTTP(S) のみ:URL に含まれる認証情報は拒否されます。すべての DNS 応答はパブリックなものである必要があり、ソケットは検証済みのアドレスに接続し、TLS ホスト名の検証を維持します。
- リダイレクトの再検証:リダイレクト先は元のスキームとオーソリティに制限されます。オリジンをまたぐリダイレクトでは、最終 HTTPS ホスト名を入力として使用します。
- robots.txt の適用:ネットワークページの監査前、およびリダイレクト先の各ページで確認されます。404 の場合はアクセスが許可され、それ以外の予期しないステータスでは監査が停止します。
- リソース制限:レスポンス上限は 2 MB、ソケットの非アクティブタイムアウトは 10 秒、リダイレクトは最大 5 回、クロール試行 URL は最大 10 件、クロール間隔は最低 200 ms、クロールループの予算は 90 秒です。
- コンテンツエンコーディング:identity エンコーディングのみサポートされます。プロキシはサポートされません。
- 空の画像 alt:装飾用画像では有効です(エラーとしてフラグ付けされません)。
- ペナルティではなくヒューリスティック:タイトルの長さと複数の H1 は情報提供を目的としたヒューリスティックであり、Google のランキングペナルティではありません。
- ローカルのチェックリストスコア:ランキング予測ではありません。被リンク、Search Console との連携、リッチリザルトの適格性、リンク切れの検証、Core Web Vitals は対象外です。
- コンテンツは信頼できないものとして扱う:監査対象ページから取得したすべての文字列は信頼できないコンテンツであり、指示として扱うことはありません。
制限事項
- MVP:静的チェックのみです。JavaScript のレンダリング、被リンク分析、Search Console との連携、Core Web Vitals には対応していません。
- ヒューリスティックな推奨事項:タイトルや説明文の長さ、複数の H1 はベストプラクティスに基づくヒューリスティックであり、ランキング要因として確認されたものではありません。
- クロールの並列処理なし:クロールは遅延を挟んで逐次実行されるため、大規模なサイトには外部ツールが必要です。
- 取得時間 ≠ Core Web Vitals:
elapsedMsは HTTP の生の取得時間であり、ユーザーが体感するパフォーマンス指標ではありません。 - ローカルリソースの上限:ローカル実行を保護します。有料のクォータは、回避可能なローカルカウンターではなく、以下に記載するホスト型の経路に適用されます。
ホスト型の経路(コントロールプレーン経由のクォータ)
ローカル MCP は無料のままです。クォータは、分析の前に mcp-control-plane でユニットを予約するホスト型 HTTP サービスにのみ適用されます。
cp .env.example .env # Set CONTROL_PLANE_URL and ADMIN_TOKEN
pip install -e .
python -m mcp_seo_auditor.hosted # Default 127.0.0.1:3104
# Or: mcp-seo-auditor-hosted
ホスト型 API エンドポイント
| メソッド | パス | 本文 |
|---|---|---|
| GET | /health | 稼働確認 |
| POST | /v1/audit-html | { "requestId", "html", "url"? } |
| POST | /v1/audit-url | { "requestId", "url" } |
| POST | /v1/crawl | { "requestId", "url", "max_pages"? } |
Authorization: Bearer mcp_... ヘッダーが必要です。HTML と URL はホスト型ホスト上にとどまり、コントロールプレーンに送信されるのは product、requestId、units のみです。
製品の方向性
単一ページの監査は無料のままにします。課金機能を開発する前に、複数のクライアントサイトを管理する代理店で有料需要を検証します。ホスト型で提供する有料機能の候補:
- スケジュールされたクロールと履歴、差分
- クライアント向けレポートとダッシュボード
- レンダリング(JavaScript)を使った監査
- Search Console との連携
- Google Analytics との連携
ホスト型のクォータには、上記のコントロールプレーン経由の経路を使用します。
テストと検証
npm test
npm pack --dry-run
ユニットテストと統合テストでは、HTML 抽出、検出結果、入力制限、DNS/プライベート IP のブロック、重複検出、MCP サブプロセス通信をカバーします。テストでは HTTP クロールをモックします。実際のサイトとの相互運用性は、デプロイ後に確認する必要があります。
CI では、Linux、macOS、Windows 上で Python 3.11、3.12、3.13 を使ってテストスイートを実行します。
参考資料
- Model Context Protocol 仕様(2025-06-18)
- Google 検索:タイトルリンク
- Google 検索:スニペット
- Google 検索:正規 URL
- Google 検索:JavaScript SEO の基本
作者によるその他の MCP サーバー
petrovicistefan MCP suite の一部です。AI コーディングエージェント向けの、ローカルファーストなガードレールを提供します。
- mcp-security-guard — MCP サーバーのツールポイズニング、ラグプル、シャドーイング、漏洩したシークレットを監査します(OWASP MCP Top 10)
- mcp-cost-optimizer — コストの高いクラウドリソースを特定し、コスト削減策を提案します
- mcp-database-doctor — 低速なクエリ、欠落しているインデックス、スキーマの問題を見つけます
- mcp-dependency-doctor — 古いパッケージ、ライセンスの競合、サプライチェーンのリスクを検出します
- mcp-api-guardian — OpenAPI 仕様を検証し、互換性を損なう変更を検出して、バージョン管理を提案します
- mcp-marketplace — suite 内のすべてのサーバーを参照してインストールできます
⭐ このプロジェクトを応援してください:このリポジトリにスターを付けると、時間の節約につながります!
コントリビューション
コントリビューションを歓迎します!ガイドラインについてはCONTRIBUTING.mdをご覧ください。コントリビューションを行うことで、コントリビューションを MIT License の下でライセンスすることに同意したものとみなされます。
セキュリティ上の問題については、SECURITY.mdをご覧ください。
FAQ
API キーやクラウドアカウントは必要ですか?
いいえ。ローカル MCP サーバーは Python の標準ライブラリのみを使用し、すべてお使いのマシン上で実行されます。audit_html ツールはネットワークに一切アクセスしません。audit_url および crawl_site ツールは公開ページを取得しますが、認証は必要ありません。
認証が必要なページを監査できますか?
直接はできません。audit_html は生の HTML を受け付けるため、認証が必要なページをご自身で取得し(例:Cookie を使って curl を実行)、その HTML をツールに渡すことができます。
レンダリング後に解消される問題が audit_html で指摘されるのはなぜですか?
audit_html は静的な HTML を分析します。シングルページアプリ(SPA)では、最初の HTML の読み込み後にクライアント側でコンテンツをレンダリングすることがよくあります。SPA を正確に監査するには、ヘッドレスブラウザーを使ってレンダリング後の DOM を取得する(今後の機能)か、サーバー側でレンダリングされたバージョンを監査してください。
スコアはどのように計算されますか?
このスコアは、ベストプラクティスの有無に基づくローカルチェックリスト(0~100)です。対象は title、meta description、H1、canonical、robots、language、viewport です。警告よりもエラーのほうがスコアを大きく下げます。このスコアは、検索順位の予測でも SEO パフォーマンス指標でもありません。
audit_url と crawl_site の違いは何ですか?
audit_url は単一のページを取得して監査します。crawl_site は URL を起点に内部リンク(同じオリジン)をたどり、最大 10 ページを監査して、ページ間のタイトルや説明文の重複を検出します。
10 ページを超えてクロールできますか?
現在の MVP ではできません。ローカルリソースの上限により、お使いのマシンを保護しています。将来的には、有料のホスト型プランで上限が引き上げられる可能性があります。
これは Google Search Console の代わりになりますか?
いいえ。MCP SEO Auditor は、ページ内の問題を対象に静的 HTML を監査します。Search Console のデータ(表示回数、クリック数、インデックス登録状況)や検索順位に関する分析は提供しません。Search Console との連携が必要な場合は、AminForou/mcp-gsc または iannuttall/seo をご利用ください。
Python のバージョンを更新するには?
サーバーの実行前に MCP_SEO_PYTHON=/path/to/python3.12 を設定するか、シェルのプロファイルでエクスポートしてください。
export MCP_SEO_PYTHON=/usr/local/bin/python3.12
npx -y mcp-seo-auditor
MCP 仕様との互換性はありますか?
はい。このサーバーは従来の MCP ライフサイクル(initialize → notifications/initialized → tools/list → tools/call)を実装しています。公式 SDK クライアントとの相互運用性はテスト済みですが、網羅的な検証は行っていません(docs/audit-remediation.md を参照)。
ライセンス
MIT License — 自由に使用、変更、配布できます。詳細な条件については LICENSE をご覧ください。
petrovicistefan MCP suite の一部 — AI コーディングエージェント向けのローカルファーストなガードレールです。
⭐ 時間の節約に役立ったら、このリポジトリにスターを付けてください!
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。