Skip to main content
Glama

SCMCP — マルチテナント Google Search Console MCP

ホスト型のMCPサーバーで、任意の数のユーザーがClaudeを自分のGoogle Search Consoleデータに接続できます。生のGSCではできないカスタムSEO分析(クイックウィン、コンテンツ減衰、カニバリゼーション、CTR外れ値、ブランド分割、フォルダ集計、インテント分類、アルゴリズム更新相関)を提供します。

各ユーザーはGoogleでサインインし、スコープ付きアクセストークンを発行して、Claudeに接続します。各トークンは所有者のデータのみを読み取れます。すべてのツールは読み取り専用です。

SearchPulse のMCPサーバーを再利用して構築されています。


アーキテクチャ

Google sign-in ──► NextAuth ──► Account (OAuth tokens, ENCRYPTED at rest)
                                     │
Claude ──HTTP──► /api/mcp ──► token → userId (+ site scope)  ──► tools ──► GSC API
                     │
              IP + per-token rate limits · revocation · expiry · audit
  • ログイン: Google OAuth (webmasters.readonly)、署名付きJWTとしてのセッション。

  • ユーザーごとのMCPトークン: scmcp_ + 256ビットのエントロピー、SHA-256ハッシュとしてのみ保存。ユーザーごとに複数の名前付きトークンがあり、それぞれオプションでサイトスコープ有効期限を設定でき、個別に失効可能で、最終使用日時/IP/回数の監査があります。

  • 状態: Prisma経由のPostgres。


Related MCP server: GSC MCP Server v2 - Remote Edition

MCPの堅牢化

対策

場所

トークンはSHA-256ハッシュとしてのみ保存(256ビットのエントロピー)

lib/mcp-token.ts

DBアクセス前の形式事前チェック

lib/mcp-access.ts

失効/期限切れトークンは認証されない

lib/mcp-access.ts

欠落/不正/失効/期限切れに対して汎用の401(列挙なし)

api/mcp/route.ts

トークンごとのサイト許可リストをすべての呼び出しで中央で強制

lib/tool-runner.ts

IPごと+トークンごとのレート制限; DBバックアップ、DBダウン時はインスタンスごとのインメモリ制限に縮退(完全にオープンではない)

lib/rate-limit.ts

クライアントIPはプロキシ制御ヘッダーからのみ取得し、IP検証済みなので、偽装された X-Forwarded-For で制限を回避したり行を増やしたりできない

lib/mcp-access.ts

使用監査(最終使用日時、IP、回数)

lib/mcp-access.ts

Google OAuthトークンは保存時に暗号化(AES-256-GCM); 復号失敗はnullを返し、生の暗号文は決して返さない

lib/auth.ts, lib/encryption.ts

読み取り専用のツールサーフェス(書き込みツールなし)

lib/tools.ts

no-store + nosniff + no-referrer; トップレベルのtry/catchでエラーが内部情報を漏らさない

api/mcp/route.ts

ヘッダー認証を優先; URLのみのコネクタ用に ?key= フォールバック、MCP_ALLOW_QUERY_KEY=false で無効化

lib/mcp-access.ts

トークン作成/失効 + コンソールルートでの同一オリジン(CSRF)チェック

lib/request-guard.ts


セットアップ

1. データベース

Postgresデータベース(例: Neon の無料ティア)を作成し、接続文字列をコピーします。

2. Google Cloud

  1. Google Cloud Console → プロジェクトを作成/選択します。

  2. APIを有効化Google Search Console API

  3. 認証情報 → OAuthクライアントIDを作成 → Webアプリケーション

  4. 承認済みのリダイレクトURI:

    • http://localhost:3000/api/auth/callback/google (開発)

    • https://your-app.vercel.app/api/auth/callback/google (本番)

  5. OAuth同意画面: 外部; ユーザーをテストユーザーとして追加(非公開・未検証アプリには問題ありません)。

3. 設定と実行

npm install
cp .env.example .env.local     # fill in all values
npm run db:push                # create the tables
npm run dev

openssl rand -base64 32 でシークレットを生成します(NEXTAUTH_SECRETENCRYPTION_KEY 用)。


Vercel + Neon へのデプロイ

  1. Gitリポジトリにプッシュし、Vercelインポートします。Neon 統合を追加します(または DATABASE_URL を貼り付けます)。

  2. 環境変数を設定: DATABASE_URL, NEXTAUTH_URL(本番URL), NEXTAUTH_SECRET, GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, ENCRYPTION_KEY

  3. 本番DBに対してスキーマを一度実行: npm run db:push(本番の DATABASE_URL を使ってローカルで、または一回限りのジョブで)。

  4. Google Cloudで本番リダイレクトURIを追加します。デプロイします。


使用方法

  1. ユーザーがあなたのURLにアクセスし、Googleでサインインして、/dashboard に着地します。

  2. トークンを作成し(特定のサイトにスコープするか、有効期限を設定することも可能)、一度だけコピーします。

  3. ダッシュボードが表示するスニペットでClaudeに接続します:

claude mcp add --transport http scmcp "https://your-app.vercel.app/api/mcp" --header "Authorization: Bearer <TOKEN>"

次に、「sc-domain:example.com の今月のクイックウィンは?」 と尋ねます。

ダッシュボードにはツールプレイグラウンド(セッション認証)もあり、Claudeを開かずに自分のデータに対して任意のツールを実行できます。


ツール

ライブGSC APIlist_gsc_properties · gsc_totals · gsc_top_queries · gsc_top_pages · gsc_performance_timeseries · gsc_compare_queries · gsc_compare_pages · gsc_page_queries · gsc_query_pages · gsc_breakdown · gsc_quick_wins · gsc_content_decay · gsc_cannibalization · gsc_new_lost_keywords · gsc_ctr_outliers · gsc_branded_split · gsc_folder_performance · gsc_query_intent · list_algorithm_updates

BigQuery一括エクスポート(履歴、非サンプリング、1000行の上限なし)— bq_status · bq_totals · bq_top_queries · bq_top_pages · bq_timeseries · bq_by_country · bq_by_device · bq_page_queries · bq_query_pages · bq_custom_query

詳細は src/lib/tools.ts / src/lib/tools-bq.ts に追加 — ツールごとに1エントリ; スコープの強制と両方のトランスポートが自動的に取得します。

BigQueryコネクタ

Search Consoleの Bulk Data Export は、完全で非サンプリングのGSCデータをBigQueryに継続的にストリーミングします。SCMCPはそのエクスポートをクエリするため、ClaudeはライブAPIの制限を超えた履歴/大規模データを取得できます。

  • 新しいシークレットは不要。 クエリはユーザー自身のOAuthトークン(SCMCPが bigquery.readonly スコープを追加)を使用して、ユーザー自身の Google Cloudプロジェクトに対して実行されます。保存するサービスアカウントキーはありません。

  • セットアップ(ユーザーごと): Search Console → 設定 → Bulk data export で、エクスポートをGCPプロジェクトに指定します。次にSCMCPダッシュボード → Analytics → BigQuery で、プロジェクトIDデータセットsearchconsole で始まる)とロケーションを入力します。BigQueryアクセスは新しいスコープのため、既存ユーザーは一度サインアウトして再サインインします。

  • 安全性: すべてのクエリはBigQueryの名前付きパラメータ(インジェクション安全)を使用し、請求バイト数BQ_MAX_BYTES_BILLED、デフォルト10GB)を上限とし、トークンのサイトスコープを尊重します。bq_custom_query は単一の読み取り専用 SELECT を実行し、サイトスコープのトークンでは無効です。

Claudeに尋ねる: 「sc-domain:example.com の過去12か月のトップクエリをBigQueryから取得して。」

アナリティクスダッシュボード

/dashboard/analytics はデータをチャート(Recharts)としてレンダリングします: 前期間との差分を示すメトリックカード、メトリック切り替え付きの二軸パフォーマンス折れ線チャート、並べ替え/検索可能なトップページとトップクエリのテーブル、国/デバイスのバー。ソーストグルでビュー全体をライブGSC APIBigQueryの間で切り替えます。セッション認証済みで、自分のデータを表示するのにMCPトークンは不要です。

スタック

Next.js 16 · NextAuth v5 (Google) · Prisma + Postgres · mcp-handler · @modelcontextprotocol/sdk · googleapis · zod.

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    Connects Google Search Console with Claude AI to enable SEO professionals to analyze their SEO data through natural language conversations, providing access to property information, search analytics, URL inspection, and sitemap management.
    1,349
    MIT
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Connects Claude AI to Google Search Console with OAuth 2.0 authentication, enabling users to analyze search performance, inspect URLs, manage sitemaps, and export analytics data through natural language conversations.
    2
  • A
    license
    Not graded
    quality
    D
    maintenance
    Connects Google Search Console with Claude AI to analyze SEO data through natural language, enabling search analytics reporting, URL inspection, indexing status checks, sitemap management, and data visualization for SEO professionals.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables Claude to access Google Search Console data including search performance, URL indexation, sitemaps, and built-in SEO analysis tools such as trending queries, cannibalization detection, and traffic drop diagnostics.
    123
    11
    MIT

View all related MCP servers

Related MCP Connectors

  • SEO research, audits, backlinks, GSC, and content workflow tools for AI agents.

  • Turn Search Console data into SEO actions, content, publishing, indexing, and AI insights.

  • Live SEO workflow tools for Claude Code, Codex, and AI agents.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/abhilashst/scmcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server