SCMCP
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ビットのエントロピー) |
|
DBアクセス前の形式事前チェック |
|
失効/期限切れトークンは認証されない |
|
欠落/不正/失効/期限切れに対して汎用の401(列挙なし) |
|
トークンごとのサイト許可リストをすべての呼び出しで中央で強制 |
|
IPごと+トークンごとのレート制限; DBバックアップ、DBダウン時はインスタンスごとのインメモリ制限に縮退(完全にオープンではない) |
|
クライアントIPはプロキシ制御ヘッダーからのみ取得し、IP検証済みなので、偽装された |
|
使用監査(最終使用日時、IP、回数) |
|
Google OAuthトークンは保存時に暗号化(AES-256-GCM); 復号失敗はnullを返し、生の暗号文は決して返さない |
|
読み取り専用のツールサーフェス(書き込みツールなし) |
|
|
|
ヘッダー認証を優先; URLのみのコネクタ用に |
|
トークン作成/失効 + コンソールルートでの同一オリジン(CSRF)チェック |
|
セットアップ
1. データベース
Postgresデータベース(例: Neon の無料ティア)を作成し、接続文字列をコピーします。
2. Google Cloud
Google Cloud Console → プロジェクトを作成/選択します。
APIを有効化 → Google Search Console API。
認証情報 → OAuthクライアントIDを作成 → Webアプリケーション。
承認済みのリダイレクトURI:
http://localhost:3000/api/auth/callback/google(開発)https://your-app.vercel.app/api/auth/callback/google(本番)
OAuth同意画面: 外部; ユーザーをテストユーザーとして追加(非公開・未検証アプリには問題ありません)。
3. 設定と実行
npm install
cp .env.example .env.local # fill in all values
npm run db:push # create the tables
npm run devランディング: http://localhost:3000
サインイン: http://localhost:3000/login
ダッシュボード(トークン + プレイグラウンド): http://localhost:3000/dashboard
MCPエンドポイント:
http://localhost:3000/api/mcp
openssl rand -base64 32 でシークレットを生成します(NEXTAUTH_SECRET と ENCRYPTION_KEY 用)。
Vercel + Neon へのデプロイ
Gitリポジトリにプッシュし、Vercel でインポートします。Neon 統合を追加します(または
DATABASE_URLを貼り付けます)。環境変数を設定:
DATABASE_URL,NEXTAUTH_URL(本番URL),NEXTAUTH_SECRET,GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET,ENCRYPTION_KEY。本番DBに対してスキーマを一度実行:
npm run db:push(本番のDATABASE_URLを使ってローカルで、または一回限りのジョブで)。Google Cloudで本番リダイレクトURIを追加します。デプロイします。
使用方法
ユーザーがあなたのURLにアクセスし、Googleでサインインして、/dashboard に着地します。
トークンを作成し(特定のサイトにスコープするか、有効期限を設定することも可能)、一度だけコピーします。
ダッシュボードが表示するスニペットでClaudeに接続します:
claude mcp add --transport http scmcp "https://your-app.vercel.app/api/mcp" --header "Authorization: Bearer <TOKEN>"次に、「sc-domain:example.com の今月のクイックウィンは?」 と尋ねます。
ダッシュボードにはツールプレイグラウンド(セッション認証)もあり、Claudeを開かずに自分のデータに対して任意のツールを実行できます。
ツール
ライブGSC API — list_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 APIとBigQueryの間で切り替えます。セッション認証済みで、自分のデータを表示するのにMCPトークンは不要です。
スタック
Next.js 16 · NextAuth v5 (Google) · Prisma + Postgres · mcp-handler · @modelcontextprotocol/sdk · googleapis · zod.
This server cannot be installed
Maintenance
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
- AlicenseBqualityBmaintenanceConnects 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,349MIT
- AlicenseNot gradedqualityNot gradedmaintenanceConnects 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
- AlicenseNot gradedqualityDmaintenanceConnects 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
- AlicenseNot gradedqualityDmaintenanceEnables 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.12311MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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