geoseo-mcp について
geoseo-mcpは、サイト運営者やSEOチーム向けのオープンソースMCPサーバーで、SEO監査と生成AI検索での可視性を調べます。検索・インデックスデータ、ページやリンクの分析、複数のLLMサービスでの引用確認をまとめ、SQLiteに傾向スナップショットを保存します。
主な機能
- 01ページ、サイト、Schemaの監査
- 02検索エンジンとインデックス情報の確認
- 03複数LLMサービスでの引用追跡
- 04内部リンク分析とリンク候補の提示
- 05llms.txtの生成と検証
- 06可視性スナップショットと傾向の保存
活用シーン
- 01サイト全体のページSEO問題の特定
- 02ブランドのLLM引用率の比較
- 03孤立ページやリンク切れの発見
- 04検索とAIでの可視性の経時追跡
MCP 対応
SEO、インデックス、LLM引用、AI Overviews、リンクグラフ、llms.txt、傾向分析のツールをMCPクライアントに提供します。stdioとstreamable HTTPに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx geoseo-mcpGEOSEO_OPENAI_API_KEYシークレットOpenAI API key for ChatGPT citation checksGEOSEO_ANTHROPIC_API_KEYシークレットAnthropic API key for Claude citation checksGEOSEO_GEMINI_API_KEYシークレットGemini API key for Google Search grounded checksGEOSEO_PERPLEXITY_API_KEYシークレットPerplexity API keyGEOSEO_XAI_API_KEYシークレットxAI API key for Grok citation checksGEOSEO_BRAVE_API_KEYシークレットBrave Search API key (Answers plan) for Brave citation checksGEOSEO_SERPAPI_API_KEYシークレットSerpAPI key for Google AI Overviews trackingGEOSEO_BING_WEBMASTER_API_KEYシークレットBing Webmaster Tools API keyGEOSEO_YANDEX_OAUTH_TOKENシークレットYandex Webmaster OAuth tokenGEOSEO_INDEXNOW_KEYシークレットIndexNow key hosted at https://yourdomain.com/<key>.txtGEOSEO_GOOGLE_CLIENT_SECRETシークレットPath to a Google OAuth client_secret.json for Search ConsoleGEOSEO_TOOLSETSComma-separated toolsets to expose (default: all)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
47掲載時のツール一覧 · 5 日前に更新
このツールにパラメーターはありません。
詳細
geoseo-mcp
従来のSEO と 生成エンジン最適化(GEO)に対応したオープンソースのMCPサーバーです。Google Search Console、Bing、IndexNow、Google AI Overviewsに加え、ChatGPT、Claude、Gemini、Perplexity、Grok、Brave全体での引用を追跡します。これらすべてを1つのサーバーで利用できます。
30秒で試す(APIキー不要)
# Audit any page: title, meta, headings, schema, freshness, GEO quotability, 0-100 score
uvx geoseo-mcp audit https://example.com
# Check a site's llms.txt against the spec
uvx geoseo-mcp llms-txt https://llmstxt.org
# Same audit after running JavaScript (for SPAs); needs the [render] extra
uvx --from 'geoseo-mcp[render]' geoseo-mcp audit https://your-spa.com --render
出力例:
$ uvx geoseo-mcp audit https://example.com
https://example.com
score: 15/100
title: 'Example Domain'
words: 27
8 issue(s):
✗ meta_description: Meta description should be 70-160 chars [length=0]
✗ h1: Exactly one H1 expected [found=0]
✗ word_count: Pages under 300 words rarely rank or get cited [words=27]
✗ schema: No JSON-LD schema found; LLMs and Google use this heavily
✗ canonical: Missing canonical URL
✗ open_graph: Missing core Open Graph tags (og:title, og:description)
✗ freshness: No published-date signal found; LLMs deprioritize stale content
✗ quotability: Few short, fact-dense sentences; LLMs prefer quotable lines [quotable_sentences=0]
3 check(s) passed. Use --json for the full report.
その他のキー不要のコマンド:audit-site ./content、generate-llms-txt ./content https://yourdomain.com、status。すべてのコマンドを確認するには、uvx geoseo-mcp --helpを実行してください。
MCP Inspectorですべての47個のツールを試す:
npx @modelcontextprotocol/inspector uvx geoseo-mcp
引数なしでgeoseo-mcpを実行すると、MCP クライアントが必要とするstdio経由でMCPサーバーが起動します。
MCP クライアントに追加する
Cursor
または、手動で~/.cursor/mcp.jsonに追加します(examples/cursor-mcp.jsonを参照)。
Claude Code
claude mcp add geoseo -- uvx geoseo-mcp
# with keys
claude mcp add geoseo \
-e GEOSEO_OPENAI_API_KEY=sk-... \
-e GEOSEO_PERPLEXITY_API_KEY=pplx-... \
-- uvx geoseo-mcp
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または%APPDATA%\Claude\claude_desktop_config.json(Windows)に追加します:
{
"mcpServers": {
"geoseo": {
"command": "uvx",
"args": ["geoseo-mcp"],
"env": {
"GEOSEO_OPENAI_API_KEY": "sk-...",
"GEOSEO_ANTHROPIC_API_KEY": "sk-ant-...",
"GEOSEO_GEMINI_API_KEY": "AIza...",
"GEOSEO_XAI_API_KEY": "xai-...",
"GEOSEO_BRAVE_API_KEY": "...",
"GEOSEO_PERPLEXITY_API_KEY": "pplx-...",
"GEOSEO_SERPAPI_API_KEY": "...",
"GEOSEO_GOOGLE_CLIENT_SECRET": "/absolute/path/to/client_secret.json",
"GEOSEO_BING_WEBMASTER_API_KEY": "...",
"GEOSEO_YANDEX_OAUTH_TOKEN": "y0_...",
"GEOSEO_INDEXNOW_KEY": "..."
}
}
}
}
すべてのキーは任意です。持っていないキーは削除してください。その他のクライアント(Continue、Cline、Windsurf、VS Code)も同じcommand / args / envブロックを使用します。examples/を参照してください。
あとは、次のように尋ねるだけです:
「『best CRM for startups』について、ChatGPT、Claude、Gemini、Perplexity、Grokのうち、どれがacme.comを引用していますか?それぞれ3回サンプルを実行してください。」 「
./contentフォルダーを監査して、問題の大きい5ページを表示してください。」 「内部リンクグラフを作成して、孤立ページを見つけてください。」
対応範囲
| 対象 | ツール |
|---|---|
| Google Search | GSCのパフォーマンス、URL検査、サイトマップ |
| Bing Webmaster | サイト統計、クエリ/ページ統計、URL情報、URL送信、クロールの問題 |
| Yandex Webmaster | サイト品質インデックス、人気のクエリ、重要ページのステータス、再クロールキュー、診断 + 内部リンク切れ |
| Bing / Yandex / Naver / Seznam | IndexNow送信 |
| Google AI Overviews | SerpAPI経由のaio_check + aio_citation_check |
| LLMの引用 | ChatGPT(ウェブ検索)、Claude(ウェブ検索)、Gemini(Google Searchグラウンディング)、Perplexity(Agent API)、Grok(xAIウェブ検索)、Brave(Answers API)、さらにすべてに一括実行するmulti_llm_*ツール |
| ページ内 | タイトル/メタ/見出し/スキーマ/内部リンクの監査、0~100のスコア、オプションのJSレンダリング |
| 内部リンクグラフ | 孤立ページ、行き止まり、ハブ、リンク切れ、アンカーヒント付きの関連ページ候補(デフォルトではTF-IDF、またはOpenAI/Gemini/ローカル埋め込みを使用) |
llms.txt | HTMLフォルダーから生成し、仕様に照らして検証 |
| トレンド追跡 | GSC、LLMの引用、AIOのローカルSQLiteスナップショットとトレンドツール |
MITライセンスで、ローカルファーストです。認証情報とデータはお使いのマシンから外に出ません。
引用チェックの仕組み
multi_llm_citation_check(questions, target_domain) は、LLM の回答が実行ごとに異なるため、設定済みの各エンジンに各質問を複数回(samples、デフォルトは 3)尋ねます。各エンジンについて、次の情報が得られます。
- 95% Wilson 信頼区間付きの
citation_rateに加え、質問ごとのcited_rateとstableフラグ mention_rateとunlinked_mention_rate:ブランド名が挙げられているものの、リンクされていない回答top_competing_domains:あなたの代わりに引用されているドメイン- サブドメインを考慮した照合(
docs.acme.comはacme.comとしてカウントされます)
ブランドエイリアスはドメインから導出され(acme.com → acme)、brand_aliases を使って独自のエイリアスを渡すこともできます。リクエストは GEOSEO_MAX_CONCURRENCY(デフォルトは 8)まで並列実行されます。
おおよその費用
2026 年 10 月時点のおおよその定価です。大量のバッチを実行する前に、各プロバイダーの料金ページを確認してください。
| エンジン | 使用するもの | クエリあたりのおおよその費用 |
|---|---|---|
| ChatGPT (料金) | Responses API、gpt-5-mini + web_search | 検索料金約 $0.01 + トークン料金、合計でおよそ $0.01-0.02 |
| Claude (料金) | Messages API + web_search ツール | 検索 1,000 回あたり $10 + トークン料金 |
| Gemini (料金) | gemini-3.5-flash-lite + Google 検索グラウンディング | 月 5,000 件までグラウンディング済みリクエストが無料。その後は 1,000 件あたり $14 + トークン料金 |
| Perplexity (料金) | Agent API、fast プリセット | 検索 1,000 回あたり約 $2.50 + トークン料金 |
| Grok (料金) | Responses API、grok-4.3 + web_search | トークンごと + 検索呼び出しごとの料金 |
| Brave (料金) | Answers API、引用付きストリーミング | 検索 1,000 回あたり約 $4 + 100 万トークンあたり $5 |
| Google AI Overviews (料金) | SerpAPI | 月 250 件まで検索が無料。その後はプラン料金 |
4 つのエンジンで 10 件の質問をそれぞれ 3 回サンプルするチェックでは、合計 120 回の呼び出しが発生します。通常は $2 未満です。簡単なスポットチェックには samples=1 を使ってください。
認証情報を取得する
- OpenAI:API キー。
web_searchツールを使用する Responses API を利用します。モデルを変更するには、GEOSEO_OPENAI_MODELを設定します。 - Anthropic:API キー。サーバー側のウェブ検索ツールを使用する Claude を利用します。
- Gemini:AI Studio の API キー。Google 検索のグラウンディング(AI Overviews と同じインデックスを使用)を利用します。
- Perplexity:API キー。
fastプリセットで Agent API を使用します。変更するには、GEOSEO_PERPLEXITY_EFFORTまたはGEOSEO_PERPLEXITY_MODELを設定します。 - xAI Grok:xAI コンソールの API キーを
GEOSEO_XAI_API_KEYとして設定します。web_searchツールを使用する Responses API を利用します。モデル(デフォルトはgrok-4.3)を変更するには、GEOSEO_GROK_MODELを設定します。 - Brave Answers:Answers プランのAPI キーを
GEOSEO_BRAVE_API_KEYとして設定します。回答は Brave 独自のインデックスから取得されます。 - SerpAPI:API キー。無料プランでは月 250 回検索できます。AI Overviews の追跡に使用します。
- Google Search Console:
docs/setup-gsc.mdを参照してください。OAuth フローは初回のみ必要です。 - Bing Webmaster:Bing Webmaster Tools の「Settings」→「API access」から API キーを取得します。
- Yandex Webmaster:OAuth トークン。アプリを登録して
webmaster:hostinfoとwebmaster:verifyの両方を設定します(hostinfoだけではサイトの一覧表示しかできません)。次に、https://oauth.yandex.com/authorize?response_type=token&client_id=<id>でトークンを取得し、GEOSEO_YANDEX_OAUTH_TOKENに設定します。ドキュメント。 - IndexNow:任意の 32 文字の 16 進数文字列を
https://yourdomain.com/<key>.txtでホストします。仕様。
必要なキーが設定されていないツールは明確なエラーを返します。それ以外の機能は引き続き動作します。
設定
| 環境変数 | デフォルト | 機能 |
|---|---|---|
GEOSEO_TOOLSETS | all | 公開するツールセットをカンマ区切りで指定します:gsc,bing,yandex,indexing,llm,aio,audit,graph,trend。ツールを減らすと、エージェントに渡すコンテキストも少なくなります。 |
GEOSEO_CITATION_SAMPLES | 3 | multi_llm_citation_check の質問ごとのデフォルトサンプル数(最大 10)。 |
GEOSEO_MAX_CONCURRENCY | 8 | LLM リクエストの最大並列数。 |
GEOSEO_OPENAI_MODEL | gpt-5-mini | ChatGPT チェックに使用するモデル。 |
GEOSEO_ANTHROPIC_MODEL | claude-sonnet-5-5 | Claude チェックに使用するモデル。 |
GEOSEO_GEMINI_MODEL | gemini-3.5-flash-lite | Gemini チェックに使用するモデル。 |
GEOSEO_GROK_MODEL | grok-4.3 | Grok チェックに使用するモデル。 |
GEOSEO_PERPLEXITY_EFFORT / GEOSEO_PERPLEXITY_MODEL | fast / unset | Perplexity Agent API のプリセット、または固定するモデル。 |
GEOSEO_TRANSPORT | stdio | stdio または http(ストリーミング可能な HTTP)。 |
GEOSEO_HOST / GEOSEO_PORT | 127.0.0.1 / 8000 | HTTP のバインドアドレス。 |
GEOSEO_DB | user data dir | トレンドのスナップショット用 SQLite ファイル。 |
例:キー不要の監査ツールのみを使用して、エージェントのコンテキストを軽量にする場合:
"env": { "GEOSEO_TOOLSETS": "audit,graph" }
ストリーミング可能な HTTP
uvx geoseo-mcp serve --transport http --port 8000
# MCP endpoint: http://127.0.0.1:8000/mcp
デフォルトでは localhost にバインドされます。認証機能は組み込まれていないため、外部に公開する前に、信頼できるプロキシの背後に配置してください。
JavaScript のレンダリング
audit_page はデフォルトで生の HTML を読み取ります。ページが JS の殻のように見える場合(空の SPA ルート、またはテキストがほとんどない場合)、js_rendering の検出結果を追加します。レンダリング済み DOM を監査するには、追加パッケージをインストールし、render=True(CLI では --render)を渡してください。
pip install 'geoseo-mcp[render]' && playwright install chromium
ツール(47)
- ステータス:
geoseo_status、list_llm_engines - Google Search Console:
gsc_list_sites、gsc_performance、gsc_inspect_url、gsc_submit_sitemap - Bing Webmaster:
bing_list_sites、bing_query_stats、bing_page_stats、bing_url_info、bing_submit_url、bing_crawl_issues - Yandex Webmaster:
yandex_list_sites、yandex_site_summary、yandex_query_stats、yandex_url_info、yandex_submit_url、yandex_crawl_issues - インデックス登録:
indexnow_submit_url、indexnow_submit_urls - LLM の引用:
perplexity_query、perplexity_citation_check、openai_query、claude_query、gemini_query、grok_query、brave_query、multi_llm_query、multi_llm_citation_check - Google AI Overviews:
aio_check、aio_citation_check - ページ内:
audit_page、audit_site、find_broken_external_links、lint_schema_page、lint_schema_site - リンクグラフ:
internal_link_graph、suggest_internal_links - llms.txt:
generate_llms_txt、validate_llms_txt - トレンド:
trend_init、trend_stats、snapshot_gsc、snapshot_llm_citations、snapshot_serp_aio、trend_gsc、trend_llm_citations
suggest_internal_links はデフォルトで TF-IDF を使用します(オフラインで無料)。埋め込みの類似度を使うには、mode="openai"、"gemini"、または "local"(sentence-transformers)を渡してください。ベクトルはコンテンツハッシュごとに SQLite にキャッシュされます。
Yandex ツールでは、site に通常の URL を渡してください。メインミラーに従って、Yandex のホスト ID(https:example.com:443)と照合されます。yandex_url_info は「重要なページの監視」に含まれるページのみが対象です(Yandex には任意の URL を検査するエンドポイントがありません)。
スナップショットは追記専用で、$GEOSEO_DB に保存されます。snapshot_* ツールを毎週スケジュールして実行すると、AI 検索における可視性の非公開時系列データを構築できます。
ロードマップ
issues で管理されています。0.4 で追加済み:リンク切れ検出ツール、スキーマリンター、Grok および Brave の引用エンジン、埋め込みベースのリンク候補、Yandex Webmaster。
コントリビューション
PR を歓迎します。各エンジンは src/geoseo_mcp/engines/ 内のモジュールで、query() を公開し、標準の {engine, question, model, answer, citations, cited_domains, usage} 形式を返します。ツールは src/geoseo_mcp/tools/ にあります。docs/architecture.md を参照してください。
git clone https://github.com/Rachit8484/geoseo-mcp.git && cd geoseo-mcp
uv sync --extra dev
uv run ruff check src tests && uv run pytest
ライセンス
MIT。詳細は LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。