mcpField
S
seo-stack-mcp

seo-stack-mcp

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

seo-stack-mcp について

seo-stack-mcpは、SEOやサイト分析に携わるチーム向けのオープンソースでセルフホスト可能なMCPサーバーです。7つのデータソースと分析ツールをまとめ、検索クエリの減少、コンテンツギャップ、週次レポートなどを算出します。

主な機能

  1. 017種類のSEO・分析データソースに接続
  2. 02検索パフォーマンスと傾向を分析
  3. 03カニバリゼーションとコンテンツギャップを検出
  4. 04週次パフォーマンスレポートを生成
  5. 05設定済みソースのツールのみ公開

活用シーン

  1. 01流入が減少している検索クエリを確認
  2. 02改善機会のあるページを特定
  3. 03複数ソース間でサイト実績を比較
  4. 04定期的なSEOレポートを作成

MCP 対応

設定したデータソースのツールと、組み込みのSEO分析機能をMCPクライアントに公開します。Claude Desktop、Claude Code、Cursorを含む各種MCPクライアントに対応します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"raffaele86-seo-stack": {
"command": "uvx",
"args": [
"seo-stack-mcp"
],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "<GOOGLE_APPLICATION_CREDENTIALS>",
"SEO_STACK_OAUTH_CLIENT": "<SEO_STACK_OAUTH_CLIENT>",
"GA4_PROPERTY_ID": "<GA4_PROPERTY_ID>",
"GSC_SITE_URL": "<GSC_SITE_URL>",
"ADSENSE_ACCOUNT_ID": "<ADSENSE_ACCOUNT_ID>",
"ADSENSE_CURRENCY": "<ADSENSE_CURRENCY>",
"BING_WEBMASTER_API_KEY": "<BING_WEBMASTER_API_KEY>",
"BING_SITE_URL": "<BING_SITE_URL>",
"CLARITY_API_TOKEN": "<CLARITY_API_TOKEN>",
"GOOGLE_ADS_DEVELOPER_TOKEN": "<GOOGLE_ADS_DEVELOPER_TOKEN>",
"GOOGLE_ADS_CLIENT_ID": "<GOOGLE_ADS_CLIENT_ID>",
"GOOGLE_ADS_CLIENT_SECRET": "<GOOGLE_ADS_CLIENT_SECRET>",
"GOOGLE_ADS_REFRESH_TOKEN": "<GOOGLE_ADS_REFRESH_TOKEN>",
"GOOGLE_ADS_CUSTOMER_ID": "<GOOGLE_ADS_CUSTOMER_ID>",
"GOOGLE_ADS_LOGIN_CUSTOMER_ID": "<GOOGLE_ADS_LOGIN_CUSTOMER_ID>",
"OPENPAGERANK_API_KEY": "<OPENPAGERANK_API_KEY>"
}
}
}
}
起動コマンドuvx seo-stack-mcp
設定が必要な環境変数
GOOGLE_APPLICATION_CREDENTIALSシークレットPath to a Google service-account JSON key (enables GSC + GA4)
SEO_STACK_OAUTH_CLIENTシークレットPath to a Google OAuth desktop client secrets JSON (alternative to service account)
GA4_PROPERTY_IDDefault GA4 property ID
GSC_SITE_URLDefault Search Console property (e.g. sc-domain:example.com)
ADSENSE_ACCOUNT_IDAdSense account (accounts/pub-XXXX...) — enables AdSense tools on top of the Google credentials
ADSENSE_CURRENCYReporting currency for AdSense tools (default USD)
BING_WEBMASTER_API_KEYシークレットBing Webmaster Tools API key (enables Bing tools)
BING_SITE_URLDefault Bing site URL
CLARITY_API_TOKENシークレットMicrosoft Clarity Data Export API token (enables Clarity tools)
GOOGLE_ADS_DEVELOPER_TOKENシークレットGoogle Ads developer token (enables Keyword Planner tools; needs the google-ads extra)
GOOGLE_ADS_CLIENT_IDGoogle Ads OAuth client id
GOOGLE_ADS_CLIENT_SECRETシークレットGoogle Ads OAuth client secret
GOOGLE_ADS_REFRESH_TOKENシークレットGoogle Ads OAuth refresh token (adwords scope)
GOOGLE_ADS_CUSTOMER_IDGoogle Ads customer id (10 digits)
GOOGLE_ADS_LOGIN_CUSTOMER_IDManager account id, if the customer is under an MCC
OPENPAGERANK_API_KEYシークレットOpen PageRank API key (enables the pagerank_score tool)

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

パッケージ
pypiseo-stack-mcp0.2.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

seo-stack-mcp

AI エージェント向けの、完全なオープンソース SEO データスタックです。 Google Search Console、Google Analytics 4、Bing Webmaster Tools、Microsoft Clarity、Google AdSense、Google Keyword Planner、Open PageRank を単一の MCP サーバーにまとめています。生の API をラップするだけでなく、カニバリゼーションチェック、すぐ成果につながる施策、コンテンツギャップ、週次レポートなどのアナリストツールも組み込まれています。

セルフホスト可能、無料、MIT ライセンスです。Claude Desktop、Claude Code、Cursor、およびあらゆる MCP クライアントで動作します。

N 個のサーバーを個別に使わず、これを選ぶ理由

  • インストールも設定も 1 つ — 7 種類の MCP サーバーを、それぞれ異なる認証設定で接続する必要はありません。
  • アナリストツールを搭載 — 「今月、どのクエリが減少していますか?」 や 「すぐ成果につながるキーワードを見つけて」 と尋ねると、エージェントが処理しなければならない生データではなく、サーバー側で算出した回答が得られます。
  • データソースは任意 — 使用するものだけを設定できます。ツールは設定したデータソースのものだけが表示されます。
  • セルフホスト可能 — トークンはお使いのマシンから外に出ません。Search Console を読み取るサードパーティのホスト型ゲートウェイはありません。

クイックスタート(60 秒)

MCP クライアントの設定に追加します(Claude Desktop の claude_desktop_config.json、Cursor の mcp.json、または claude mcp add):

{
  "mcpServers": {
    "seo-stack": {
      "command": "uvx",
      "args": ["seo-stack-mcp"],
      "env": {
        "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/service-account.json",
        "GA4_PROPERTY_ID": "123456789",
        "BING_WEBMASTER_API_KEY": "your-key",
        "CLARITY_API_TOKEN": "your-token"
      }
    }
  }
}

すべての環境変数は任意です。使いたいデータソースだけを設定してください。これだけで完了です。クライアントを再起動して、「今週の上位クエリは何ですか?」 と尋ねてみましょう。

GitHub から最新の開発版を直接実行するには、代わりに "args": ["--from", "git+https://github.com/Raffaele86/seo-stack-mcp", "seo-stack-mcp"] を使用します。

認証情報
データソース必要なもの入手先
GSC + GA4サービスアカウント JSON(推奨)→ GOOGLE_APPLICATION_CREDENTIALSGoogle Cloud Console → サービスアカウントを作成 → Search Console API と Analytics Data API を有効化 → GSC / GA4 で SA のメールアドレスをユーザーとして追加
GSC + GA4(別の方法)OAuth デスクトップクライアント JSON → SEO_STACK_OAUTH_CLIENT初回実行時に同意を求めるブラウザーが開きます。更新トークンは ~/.config/seo-stack-mcp/ にキャッシュされます
BingBING_WEBMASTER_API_KEYBing Webmaster Tools → Settings → API access
ClarityCLARITY_API_TOKENMicrosoft Clarity → プロジェクト → Settings → Data Export API
AdSense上記の Google 認証情報 + ADSENSE_ACCOUNT_ID(accounts/pub-XXXX...)AdSense → Account → Settings → Account information。Google Cloud で AdSense Management API を有効にします。OAuth を使用していて、後から AdSense を有効にする場合は、キャッシュされたトークンを ~/.config/seo-stack-mcp/ から削除し、新しいスコープに同意してください
Keyword PlannerGOOGLE_ADS_DEVELOPER_TOKEN、GOOGLE_ADS_CLIENT_ID、GOOGLE_ADS_CLIENT_SECRET、GOOGLE_ADS_REFRESH_TOKEN、GOOGLE_ADS_CUSTOMER_ID(MCC 配下の場合は GOOGLE_ADS_LOGIN_CUSTOMER_ID も必要)Google Ads API Center → デベロッパートークン(Basic access で十分です。API 呼び出しは無料です)。google-ads エクストラも必要です:uvx --with google-ads seo-stack-mcp または pip install seo-stack-mcp[ads]
Open PageRankOPENPAGERANK_API_KEYOpen PageRank — 無料の API キー。1 時間あたり 10,000 回呼び出せます

省略可能なデフォルト値:GSC_SITE_URL、BING_SITE_URL(質問のたびにサイトを指定する必要がなくなります)、ADSENSE_CURRENCY(デフォルトは USD)、GOOGLE_ADS_LOCATION_ID / GOOGLE_ADS_LANGUAGE_ID(Keyword Planner の地域/言語のデフォルト値。デフォルトは米国/英語)。

ツール

Google Search Console(29 個のツール)
ツール説明
gsc_bulk_inspect_urlsURL Inspection API を使用して複数の URL を一括で検査します。1 回の呼び出しにつき最大 50 URL です。
gsc_bulk_request_indexingGoogle Indexing API を使用して複数の URL のインデックス登録をリクエストします。最大 50 URL です。
gsc_cannibalization_check複数のページが競合しているクエリ(キーワードのカニバリゼーション)を検出します。検索順位のあるページが 2 つ以上あるクエリを表示します。
gsc_compare_periods2 つの期間を比較し、項目ごとのクリック数、表示回数、CTR、掲載順位の差分を表示します。
gsc_content_gap_analysisコンテンツギャップ分析:競合サイトは検索順位を獲得しているものの、自社サイトは獲得していない(または大きく差をつけられている)クエリを表示します。
gsc_country_performance国別のパフォーマンス:クリック数、表示回数、CTR、平均掲載順位を表示します。デフォルトは過去 28 日間です。
gsc_daily_stats日ごとのサイト統計の集計:クリック数、表示回数、CTR、平均掲載順位を表示します。
gsc_declining_queriesクリック数や掲載順位が低下しているクエリ:直近 N 日間と同じ日数の前期間を比較します。
gsc_delete_sitemapGoogle Search Console からサイトマップを削除します。認証情報に書き込みスコープが必要です。
gsc_device_performanceモバイル、デスクトップ、タブレット間でパフォーマンスを比較します。デフォルトは過去 28 日間です。
gsc_indexing_status_summary複数 URL のインデックス登録状況の概要:インデックス登録済み、未登録、エラーの URL 数を表示します。
gsc_inspect_urlGoogle Search Console URL Inspection API を使用して URL を検査します。
gsc_keyword_opportunities表示回数が多いものの CTR が低く、掲載順位が 5~20 位のクエリ:最適化の機会を表示します。
gsc_list_sitemapsGoogle Search Console に登録されているサイトのすべてのサイトマップを一覧表示します。
gsc_list_sites設定済みの認証情報で利用できる Google Search Console プロパティをすべて一覧表示します。
gsc_low_hanging_fruit掲載順位が 3~10 位で表示回数が多いクエリ:わずかな最適化でトップ 3 に押し上げられる可能性があります。
gsc_page_trend特定のページの日ごとの推移を過去 N 日間にわたって表示します(デフォルトは 90 日間)。
gsc_pages_for_query特定のクエリで検索順位を獲得しているページを表示します。パフォーマンスデータのあるすべてのページが対象です。
gsc_queries_for_page特定のページへのトラフィックを促しているクエリを表示します。パフォーマンスデータのあるすべてのキーワードが対象です。
gsc_query_trend特定のクエリの日ごとの推移を過去 N 日間にわたって表示します(デフォルトは 90 日間)。
gsc_request_indexingGoogle Indexing API を使用して URL のインデックス登録をリクエストします。
gsc_rising_queries上昇しているクエリ:直近 N 日間と同じ日数の前期間を比較します。
gsc_search_analyticsSearch Analytics をクエリし、指定したディメンションのクリック数、表示回数、CTR、掲載順位を取得します。
gsc_search_analytics_filtered高度なフィルターを使用した Search Analytics。フィルター:query_contains、query_regex、page_contains、page_regex、国(例:'ita')、デバイス(モバイル/デスクトップ/タブレット)。
gsc_search_appearanceSERP の検索結果タイプ(リッチスニペット、動画、FAQ など)別のパフォーマンスを表示します。デフォルトは過去 28 日間です。
gsc_submit_sitemapGoogle Search Console にサイトマップを送信します。認証情報に書き込みスコープが必要です。
gsc_top_pagesクリック数または表示回数の多いページを表示します。order_by:clicks、impressions、ctr、position。デフォルトは過去 28 日間です。
gsc_top_queriesクリック数または表示回数の多いクエリを表示します。order_by:clicks、impressions、ctr、position。デフォルトは過去 28 日間です。
gsc_weekly_report自動週次レポート:直近 7 日間とその前の 7 日間の指標を差分とともに比較し、上位のクエリとページを表示します。
Google Analytics 4(10 個のツール)
ツール説明
ga4_compare_periods主要な指標について、変化率とともに2つの期間を比較します。
ga4_conversion_pathsユーザーの経路:セッション数とユーザー数を含む、流入元からランディングページまでの経路です。
ga4_eventsイベント数とユーザー数を含む、GA4 の上位イベントです。
ga4_landing_pagesセッション数、ユーザー数、直帰率を含む、入口ページ(ランディングページ)です。
ga4_overviewサイトの概要:ユーザー数、セッション数、ページビュー数、直帰率、平均セッション時間です。
ga4_page_performanceデバイス別および流入元別の内訳を含む、単一ページの詳細なパフォーマンスです。
ga4_realtimeリアルタイムレポート:現在閲覧されているページとアクティブユーザー数です。
ga4_top_pagesページビュー数、ユーザー数、滞在時間、直帰率などの全指標を含む、トラフィック上位のページです。
ga4_traffic_sources流入元/メディア別のトラフィックの内訳です(例:google/organic、direct/none)。
ga4_user_demographicsユーザー属性の内訳:国、デバイス、ブラウザー、言語です。
Bing Webmaster Tools(22 個のツール)
ツール説明
bing_crawl_issuesクロールに問題がある URL(4xx/5xx エラー、リダイレクトなど)です。
bing_crawl_statsBing のクロール統計:クロールされたページ数、エラー、リダイレクトなどです。
bing_keyword完全一致する検索クエリの Bing での表示回数(表示回数+部分一致)です。
bing_keyword_statsBing でのキーワードの履歴統計:表示回数と推移です。
bing_link_countsBing による被リンク数が最も多いページです。
bing_pages_for_queryBing で特定の検索クエリに対してランクインしているページです。
bing_queries_for_page特定のページにトラフィックをもたらす検索クエリです。
bing_query_page_detail特定の検索クエリとページの組み合わせに関する詳細な統計です。
bing_query_trafficBing での特定の検索クエリのトラフィックの日別推移です。
bing_related_keywordsBing での検索語句に関連するキーワードと、その表示回数データです。
bing_sitemapsBing に送信されたすべてのサイトマップ/フィードを一覧表示します。
bing_sitesBing Webmaster Tools アカウントで認証済みのすべてのサイトを一覧表示します。
bing_submission_quotaBing への URL 送信クォータを確認します。
bing_submit_sitemap新しいサイトマップ/フィードを Bing に送信します。
bing_submit_urlインデックス登録のために URL を Bing に送信します。
bing_submit_urls_batchインデックス登録のために URL をまとめて Bing に送信します(最大500件)。
bing_top_pagesクリック数、表示回数、平均掲載順位を含む、Bing での上位ページです。
bing_top_queriesクリック数、表示回数、平均掲載順位を含む、Bing の検索クエリ上位です。
bing_traffic_statsBing の日別トラフィック統計:クリック数と表示回数の推移です。
bing_url_infoBing での特定 URL のインデックス登録状況です。
bing_url_linksBing による特定 URL へのインバウンド被リンクです。
bing_url_trafficBing での特定 URL のトラフィックデータです。
Microsoft Clarity(10 個のツール)
ツール説明
clarity_breakdown自由形式の未加工の内訳(1~3個のディメンション)です。上級ユーザー向けです。キャッシュにない場合はクォータを1単位消費します。
clarity_dead_clicksデッドクリックが発生した上位 URL(操作できない要素のクリック。UX 上の問題を示すシグナル)です。
clarity_engagementURL(または別のディメンション)ごとのエンゲージメント時間とスクロール深度です。
clarity_excessive_scroll過剰なスクロールが発生した上位 URL(ユーザーが簡単に見つけられない情報を探している状態)です。
clarity_popular_pages過去数日間の訪問数による上位 URL(人気ページ指標、ディメンション=URL)です。
clarity_quickback_clicksクイックバッククリックが発生した上位 URL(ユーザーがすぐに戻るため、ページが関連性に欠ける状態)です。
clarity_quota_status1日のクォータ状況です(ローカルカウンターを使用し、API は呼び出しません)。
clarity_rage_clicksレイジクリックが発生した上位 URL(短時間に繰り返されるクリック。ユーザーの不満を示します)。
clarity_script_errorsJavaScript エラーとエラークリックが発生した上位 URL(ページ上の技術的な問題)です。
clarity_trafficMicrosoft Clarity のトラフィック内訳(セッション数、ボットの割合、セッションあたりのページ数)です。
Google AdSense(10 ツール)
ツール説明
adsense_alertsAdSense アカウントのアクティブなアラート(重要度、種類、メッセージ)。
adsense_by_ad_unit広告ユニットごとのパフォーマンス:収益、インプレッション数、クリック数、CTR、eCPM。
adsense_by_country国別の収益内訳。収益順に並べ替えます。
adsense_by_platformデバイスのプラットフォーム(デスクトップ、モバイル、タブレット)別の収益内訳。
adsense_compare_periods2 つの期間を比較し、主要な指標の変化率を表示します。
adsense_earnings_by_date日別の収益と合計、平均、傾向。
adsense_earnings_overview収益の概要:推定収益、ページビュー数、インプレッション数、クリック数、RPM、CTR。
adsense_paymentsAdSense アカウントの最近の支払い。
adsense_sitesAdSense アカウントにリンクされたサイト(ドメイン、状態、自動広告)。
adsense_top_pages収益上位の URL チャネル(AdSense で URL チャネルが設定されている必要があります)。
Google Keyword Planner(4 ツール)
ツール説明
kp_historical_metrics既知のキーワードのリストに対する、実際の過去の Keyword Planner 指標。
kp_keyword_ideas実際の指標を含むキーワード候補:検索ボリューム、競合状況、ページ上部の入札単価、過去 12 か月の検索ボリューム。
kp_statusソースの状態:ライブラリ、認証情報の充足状況(マスク済み)、ライブ接続テスト。
kp_suggest_geo_target地名を地域ターゲットの定数 ID に変換します。
Open PageRank(1 ツール)
ツール説明
pagerank_score1 回の呼び出しで最大 100 件のドメインを対象とするドメインオーソリティスコア(0~10)。ローカルで 30 日間キャッシュします。

公式の GA4 サーバーや mcp-gsc ではなく、このプロジェクトを選ぶ理由

どちらも優れたツールであり、このプロジェクトもその点を否定するものではありません。Google 公式の analytics-mcp は GA4 のみを対象とし、mcp-gsc は GSC のみを対象としています。1 つのデータソースを中心に利用している場合は、これらをお使いください。このプロジェクトは、無料の SEO ツール一式を横断して作業し、複数のソースをまたぐワークフロー(GSC + GA4 + Bing + Clarity)と、独自の分析ツールを 1 か所で利用したい方を対象としています。

関連項目

local-leads-mcp — 営業先開拓を担うプロジェクトです。OpenStreetMap でウェブサイトのない地域の事業者を見つけて確認できます。API キーは不要です。

ライセンス

MIT。


ラファエレ・ノチェラ が開発・保守しています — フリーランスのウェブ・SEO担当者です。コンサルティングを承ります。

コメント

MCP は初めてですか?

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

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