Google Analytics MCP Server (Experimental)
This repo contains the source code for running a localMCP server that interacts with APIs forGoogle Analytics.
Join the discussion and ask questions in the๐ค-analytics-mcp channelon Discord.
Tools ๐ ๏ธ
The server uses theGoogle Analytics Admin APIandGoogle Analytics Data APIto provide severalTools for use with LLMs.
Retrieve account and property information ๐
get_account_summaries: Retrieves information about the user's GoogleAnalytics accounts and properties.get_property_details: Returns details about a property.list_google_ads_links: Returns a list of links to Google Ads accounts fora property.
Run core reports ๐
run_report: Runs a Google Analytics report using the Data API.run_funnel_report: Runs a Google Analytics funnel report using the Data API.get_custom_dimensions_and_metrics: Retrieves the custom dimensions andmetrics for a specific property.
Run realtime reports โณ
run_realtime_report: Runs a Google Analytics realtime report using theData API.
Setup instructions ๐ง
โจ Watch the Google Analytics MCP SetupTutorial on YouTube for a step-by-stepwalkthrough of these instructions.
Setup involves the following steps:
- Configure Python.
- Configure credentials for Google Analytics.
- Configure Gemini.
Configure Python ๐
Enable APIs in your project โ
Follow the instructionsto enable the following APIs in your Google Cloud project:
Configure credentials ๐
Configure your Application Default Credentials(ADC).Make sure the credentials are for a user with access to your Google Analyticsaccounts or properties.
Credentials must include the Google Analytics read-only scope:
https://www.googleapis.com/auth/analytics.readonly
Check outManage OAuth Clientsfor how to create an OAuth client.
Here are some sample gcloud commands you might find useful:
Set up ADC using user credentials and an OAuth desktop or web client afterdownloading the client JSON to
YOUR_CLIENT_JSON_FILE.gcloud auth application-default login \ --scopes https://www.googleapis.com/auth/analytics.readonly,https://www.googleapis.com/auth/cloud-platform \ --client-id-file=YOUR_CLIENT_JSON_FILESet up ADC using service account impersonation.
gcloud auth application-default login \ --impersonate-service-account=SERVICE_ACCOUNT_EMAIL \ --scopes=https://www.googleapis.com/auth/analytics.readonly,https://www.googleapis.com/auth/cloud-platform
When the gcloud auth application-default command completes, copy thePATH_TO_CREDENTIALS_JSON file location printed to the console in thefollowing message. You'll need this for the next step!
Credentials saved to file: [PATH_TO_CREDENTIALS_JSON]
Configure Gemini
Install GeminiCLIor Gemini CodeAssist.
Create or edit the file at
~/.gemini/settings.json, adding your serverto themcpServerslist.Replace
PATH_TO_CREDENTIALS_JSONwith the path you copied in the previousstep.We also recommend that you add a
GOOGLE_CLOUD_PROJECTattribute to theenvobject. ReplaceYOUR_PROJECT_IDin the following example with theproject ID of yourGoogle Cloud project.{ "mcpServers": { "analytics-mcp": { "command": "pipx", "args": ["run", "analytics-mcp"], "env": { "GOOGLE_APPLICATION_CREDENTIALS": "PATH_TO_CREDENTIALS_JSON", "GOOGLE_PROJECT_ID": "YOUR_PROJECT_ID" } } } }
Configure Claude Code
Add the MCP server with the following command:
Replace
PATH_TO_CREDENTIALS_JSONwith the path you copied in the previousstep, and replaceYOUR_PROJECT_IDwith theproject ID of yourGoogle Cloud project.claude mcp add analytics-mcp \ --scope user \ -e "GOOGLE_APPLICATION_CREDENTIALS=PATH_TO_CREDENTIALS_JSON" \ -e "GOOGLE_PROJECT_ID=YOUR_PROJECT_ID" \ -- pipx run analytics-mcp
Try it out ๐ฅผ
Launch Gemini Code Assist or Gemini CLI and type /mcp. You should seeanalytics-mcp listed in the results.
Here are some sample prompts to get you started:
Ask what the server can do:
what can the analytics-mcp server do?Ask about a Google Analytics property
Give me details about my Google Analytics property with 'xyz' in the namePrompt for analysis:
what are the most popular events in my Google Analytics property in the last 180 days?Ask about signed-in users:
were most of my users in the last 6 months logged in?Ask about property configuration:
what are the custom dimensions and custom metrics in my property?
Contributing โจ
Contributions welcome! See the Contributing Guide.
