GA4 MCP Server
Provides tools for querying Google Analytics 4 data, including traffic summary, top pages, traffic sources, and user engagement metrics.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@GA4 MCP ServerWhat's the traffic summary for the last week?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
GA4 MCP Server
A Model Context Protocol server that connects Claude to Google Analytics 4, enabling natural language queries of your website analytics data.
Features
get_traffic_summary — Sessions, users, page views, bounce rate, avg session duration
get_top_pages — Most visited pages with engagement metrics
get_traffic_sources — Traffic breakdown by source (organic, direct, referral, etc.)
get_user_engagement — Engaged sessions, bounce rate, screen counts per session
Related MCP server: GA4 MCP Server
Quick Start
1. Install Dependencies
npm install2. Set Up Credentials
Copy the GA4 service account JSON file you downloaded to this folder:
cp ~/Downloads/app-coaching-ga4-73c82846b5b0.json ./credentials.jsonCreate a
.envfile:cp .env.example .envUpdate
.envwith your GA4 Property ID:GA4_CREDENTIALS_PATH=./credentials.json GA4_PROPERTY_ID=544866887
3. Add Service Account to GA4
In Google Analytics:
Go to Admin → Property Access Management
Click + (Add user)
Paste:
ga4-mcp-server@app-coaching-ga4.iam.gserviceaccount.comAssign Viewer role
Save
4. Build & Test
npm run build
npm run devYou should see: GA4 MCP Server started
5. Test with MCP Inspector
In a new terminal:
npm run inspectThis opens an interactive tool to test the server. Try:
Tool:
get_traffic_summaryInputs:
propertyId:
544866887startDate:
2026-07-01endDate:
2026-07-10
Deployment Options
Option 1: Replit (Easiest)
Create a new Replit
Import from GitHub (clone this repo) or upload files
Set environment variables in Replit Secrets:
GA4_CREDENTIALS_PATH=./credentials.json
Upload
credentials.jsonto ReplitRun:
npm install && npm run build && npm run devReplit gives you a live URL
Connect to Claude using that URL
Option 2: Railway
Create a Railway project
Upload this repo via GitHub
Add
credentials.jsonas a config fileSet env var:
GA4_CREDENTIALS_PATH=./credentials.jsonDeploy
Get the URL from Railway
Connect to Claude
Option 3: Local (for testing only)
Run npm run dev locally, then in Claude's MCP settings add:
{
"name": "ga4-mcp",
"type": "stdio",
"command": "node",
"args": ["dist/index.js"]
}Usage in Claude
Once deployed, ask Claude things like:
"What's the traffic summary for appcoaching.io for the last 7 days?"
"Which pages on my site get the most traffic?"
"What's driving traffic to appcoaching.io? Organic or direct?"
"What's the engagement rate on my site?"
Claude will automatically call the appropriate GA4 tools and analyze the data.
Troubleshooting
"Credentials file not found"
Ensure
credentials.jsonis in the project rootCheck
GA4_CREDENTIALS_PATHenv var is set correctly
"Unauthorized" or "Permission denied"
Verify the service account email is added to GA4 with Viewer role
Check that the correct Property ID is being used (544866887)
"No data available"
Ensure the date range has actual GA4 data
GA4 can take 24-48 hours to start collecting data on a new property
Files
src/index.ts— Main MCP server implementationpackage.json— Dependencies and scriptstsconfig.json— TypeScript configurationcredentials.json— GA4 service account (keep secure!)
Security
Never commit credentials.json to GitHub. Add to .gitignore:
credentials.json
.env
node_modules/
dist/The credentials file is sensitive—treat it like a password.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/aarcheco/ga4-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server