Skip to main content
Glama

SCMCP — 다중 테넌트 Google Search Console MCP

호스팅형 MCP 서버로, 여러 사용자가 자신의 Google Search Console 데이터에 Claude를 연결할 수 있게 해줍니다. 원시 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 만들기 → 웹 애플리케이션.

  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에 추가 — 도구당 하나의 항목; 범위 적용과 두 전송 방식 모두 자동으로 처리합니다.

BigQuery 커넥터

Search Console의 대량 데이터 내보내기는 전체 비샘플링 GSC 데이터를 BigQuery로 지속적으로 스트리밍합니다. SCMCP는 해당 내보내기를 쿼리하여 Claude가 라이브 API의 한계를 넘어 기록/대용량 데이터를 가져올 수 있게 합니다.

  • 새 시크릿 없음. 쿼리는 사용자의 자체 OAuth 토큰(SCMCP가 bigquery.readonly 범위 추가)으로 사용자의 자체 Google Cloud 프로젝트에 대해 실행됩니다. 저장할 서비스 계정 키가 없습니다.

  • 설정(사용자별): Search Console → 설정 → 대량 데이터 내보내기에서 내보내기를 GCP 프로젝트로 지정합니다. 그런 다음 SCMCP 대시보드 → 분석 → BigQuery에서 프로젝트 ID, 데이터셋(searchconsole로 시작) 및 위치를 입력합니다. BigQuery 액세스는 새 범위이므로 기존 사용자는 한 번 로그아웃 후 다시 로그인해야 합니다.

  • 안전: 모든 쿼리는 BigQuery 명명된 매개변수(주입 방지)를 사용하고, 청구 바이트 상한(BQ_MAX_BYTES_BILLED, 기본 10GB)을 적용하며, 토큰의 사이트 범위를 존중합니다. bq_custom_query는 단일 읽기 전용 SELECT를 실행하며 사이트 범위 토큰에서는 비활성화됩니다.

Claude에게 물어보세요: "sc-domain:example.com에 대해 BigQuery에서 지난 12개월의 상위 쿼리를 가져와."

분석 대시보드

/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