GA4 Analytics MCP
GA4 Analytics MCP
Claude.ai Custom Connectors용 개인 Google Analytics 4 커넥터입니다. 하나의 Google 계정, 하나의 MCP 서버, Vercel에 배포됩니다.
Claude.ai Custom Connector
→ https://<VERCEL_PROJECT_NAME>.vercel.app/ga4mcp
→ Vercel Streamable HTTP MCP
→ Google Analytics Data API
→ your GA4 properties로컬 stdio 서버가 없고, npx 요구 사항이 없으며, claude_desktop_config.json도 없습니다.
두 가지 인증 계층은 분리되어 있습니다:
Claude → MCP: MCP OAuth (CIMD / DCR / 선택적 Advanced Settings 클라이언트)
MCP → Google:
GOOGLE_REFRESH_TOKEN에 저장된 Google OAuth 갱신 토큰
MCP 도구
도구 | 목적 |
| 연결된 Google 계정에서 속성 검색 |
| 유효한 측정기준과 측정항목 목록 표시 |
| 과거 GA4 보고서 |
| 최근 약 30분 |
로컬 개발
npm install
copy .env.example .env.local.env.local을 작성한 후:
npm run dev앱:
http://localhost:3000MCP:
http://localhost:3000/ga4mcpGoogle OAuth:
http://localhost:3000/oauth/google상태:
http://localhost:3000/health
npm test
npm run buildClaude.ai는 localhost에 연결할 수 없습니다. Custom Connector를 추가하기 전에 Vercel에 배포하세요.
Google Cloud 설정
이는 MCP 서버가 GA4 데이터를 읽을 수 있도록 하기 위한 것입니다. Claude.ai 커넥터 OAuth 클라이언트가 아닙니다.
Google Cloud 프로젝트를 만들거나 선택합니다.
Google Analytics Data API를 활성화합니다.
Google Analytics Admin API를 활성화합니다.
OAuth 동의 화면을 구성합니다(개인 Gmail은 외부). 갱신 토큰이 7일 후 만료되지 않도록 프로덕션으로 게시합니다.
웹 애플리케이션 OAuth 클라이언트를 만듭니다.
승인된 리디렉션 URI:
http://localhost:3000/oauth/google/callbackhttps://<VERCEL_PROJECT_NAME>.vercel.app/oauth/google/callback
이 앱에서 사용하는 범위:
https://www.googleapis.com/auth/analytics.readonly클라이언트 ID와 시크릿을 환경 변수에 복사합니다.
그런 다음 /oauth/google에 방문하여 MCP_AUTH_TOKEN을 입력하고 GA4 속성을 소유한 Google 계정으로 로그인합니다.
로컬에서 갱신 토큰은
.env.local에 기록됩니다.Vercel에서는
GOOGLE_REFRESH_TOKEN을 프로젝트 환경 변수에 붙여넣고 재배포합니다.
환경 변수
변수 | 필수 여부 | 목적 |
| 예 | 공개 출처, 끝에 슬래시 없음. 프로덕션: |
| 예 | Google OAuth 웹 클라이언트 |
| 예 | Google OAuth 웹 클라이언트 시크릿 |
| 아니오 | 기본값: |
| 예 | Google OAuth 및 Claude MCP 동의를 위한 운영자 설정 토큰 |
| Google OAuth 이후 | 장기 사용 Google 토큰 |
| 아니오 | Google OAuth 상태 쿠키 서명 |
| 아니오 | MCP 액세스/갱신 JWT 서명. 기본값: |
| 아니오 | Claude.ai Advanced Settings 기밀 클라이언트 사용 시에만 |
| 아니오 | 선택적 기밀 클라이언트의 쌍 |
Vercel
npm i -g vercel
vercel
vercel --prodVercel 프로젝트에 환경 변수를 추가합니다. 프로덕션에서 첫 번째 Google OAuth 후 GOOGLE_REFRESH_TOKEN을 설정하고 재배포합니다.
프로덕션에서 Deployment Protection / Vercel Authentication을 비활성화합니다. Claude.ai는 Anthropic의 네트워크(160.79.104.0/21)에서 연결합니다. /ga4mcp 앞에 Vercel SSO가 있으면 커넥터가 연결할 수 없습니다.
프로덕션 URL:
https://<VERCEL_PROJECT_NAME>.vercel.app/ga4mcp
https://<VERCEL_PROJECT_NAME>.vercel.app/oauth/google/callback
https://<VERCEL_PROJECT_NAME>.vercel.app/health사용자 정의 도메인은 나중에 선택 사항입니다. 코드 변경이 필요 없도록 APP_BASE_URL을 계속 사용합니다.
Claude.ai Custom Connector
Vercel에 배포하고
https://<VERCEL_PROJECT_NAME>.vercel.app/health가{"status":"ok"}를 반환하는지 확인합니다.https://<VERCEL_PROJECT_NAME>.vercel.app/oauth/google에서 Google을 연결합니다.Vercel 환경 변수에
GOOGLE_REFRESH_TOKEN을 넣고 재배포합니다.Claude.ai에서 Customize → Connectors → Add custom connector를 엽니다.
이름:
GA4 AnalyticsURL:
https://<VERCEL_PROJECT_NAME>.vercel.app/ga4mcpAdvanced OAuth Client ID / Secret을 비워 둡니다. Claude는 이 서버의 인증 엔드포인트에 대해 CIMD를 사용합니다.
Add를 클릭합니다.
채팅 + → Connectors 메뉴에서 커넥터를 활성화합니다.
첫 번째 GA4 도구 호출 시 Connect 카드가 표시됩니다. 이 앱의 동의 페이지에
MCP_AUTH_TOKEN을 입력합니다(Google 비밀번호 아님).질문: 어제 사용자가 몇 명이었나요?
initialize와 tools/list는 공개되어 Claude가 도구를 발견할 수 있습니다. tools/call은 MCP OAuth가 완료될 때까지 WWW-Authenticate와 함께 HTTP 401을 반환합니다.
보안
Google 토큰, 인증 코드, 클라이언트 시크릿 또는 MCP JWT를 절대 로깅하지 않습니다.
MCP 도구는 절대 시크릿을 반환하지 않습니다.
Google 액세스 토큰은 저장되지 않습니다.
GOOGLE_REFRESH_TOKEN만 환경 변수에 유지됩니다.Git에 시크릿을 넣지 마세요.
날짜
변경 없이 GA4에 전달: today, yesterday, 7daysAgo, 30daysAgo, 90daysAgo 또는 YYYY-MM-DD. date 측정기준은 YYYYMMDD로 반환됩니다.
알려진 제한 사항
하나의 Google 계정과 하나의 갱신 토큰.
Vercel은 런타임에 환경 변수를 쓸 수 없습니다.
GOOGLE_REFRESH_TOKEN을 붙여넣고 재배포합니다.Google 테스트 모드 갱신 토큰은 약 7일 후 만료됩니다.
실시간 데이터는 대략 최근 30분입니다.
보고서 크기는 최대 10,000행입니다.
이 저장소에서 라이브 Claude.ai 클릭스루를 완료할 수 없습니다. 이를 위해서는 Claude 및 Vercel 계정이 필요합니다.
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 Connectors
Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.
Official Microsoft MCP Server to query Microsoft Entra data using natural language
GibsonAI MCP server: manage your databases with natural language
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/devopsbrandmirchi/Ga4McpServer'
If you have feedback or need assistance with the MCP directory API, please join our Discord server