GAnalytics-MCP-server
A Model Context Protocol (MCP) server that provides access to Google Analytics data through tools and resources.
Added on 3/28/2025
Google Analytics MCP Server
A Model Context Protocol (MCP) server that provides access to Google Analytics data through tools and resources.
Test results (2024-03-26):
- Total active users: 102,883
- Belarus active users: 64,837 (63%)
- Total page views: 2,422,925
- Belarus page views: 1,950,160 (80%)
Features
- Access Google Analytics metrics and dimensions through MCP resources
- Fetch analytics data with flexible filtering options
- Get formatted data with insights and recommendations
- TypeScript implementation with strong typing
Installation
- Clone the repository
- Install dependencies
npm install
- Create a
.env
file based on.env.example
with your Google Analytics credentials - Build the project
npm run build
Setup Google Analytics Credentials
- Go to the Google Cloud Console
- Create a new project or select an existing one
- Enable the Google Analytics Data API
- Create a service account with appropriate permissions
- Download the service account key (JSON format)
- Extract the client email and private key from the JSON file
- Add these to your
.env
file:GA_PROPERTY_ID=your_property_id GA_CLIENT_EMAIL=your-service-account@your-project.iam.gserviceaccount.com GA_PRIVATE_KEY=-----BEGIN PRIVATE KEY-----\nYourPrivateKeyHere\n-----END PRIVATE KEY-----
Usage
Running the Server
node build/index.js
MCP Configuration
Add the server to your cline_mcp_settings.json
file:
{
"mcpServers": {
"google-analytics": {
"command": "node",
"args": ["/path/to/GAnalytics-MCP-server/build/index.js"],
"env": {
"GA_PROPERTY_ID": "your_property_id",
"GA_CLIENT_EMAIL": "your-service-account@your-project.iam.gserviceaccount.com",
"GA_PRIVATE_KEY": "-----BEGIN PRIVATE KEY-----\\nYourPrivateKeyHere\\n-----END PRIVATE KEY-----"
}
}
}
}
Available Tools
get_analytics_data
Get Google Analytics data with optional filtering and analysis.
Parameters:
metrics
(required): Array of metric names to fetchdimensions
(optional): Array of dimension namesstartDate
(required): Start date in YYYY-MM-DD formatendDate
(required): End date in YYYY-MM-DD formatfilters
(optional): Object containing metric and dimension filtersorderBy
(optional): Array of fields to sort bylimit
(optional): Number of records to returnoffset
(optional): Index of first record to return
Example:
{
"metrics": ["activeUsers", "newUsers"],
"dimensions": ["country", "deviceCategory"],
"startDate": "2023-01-01",
"endDate": "2023-01-31",
"filters": {
"metrics": [
{
"metric": "activeUsers",
"operation": "GREATER_THAN",
"value": 10
}
],
"dimensions": [
{
"dimension": "country",
"operation": "EXACT",
"value": "United States"
}
]
},
"orderBy": [
{
"field": "activeUsers",
"desc": true
}
],
"limit": 10
}
Available Resources
analytics://metrics
List of available Google Analytics metrics.
analytics://dimensions
List of available Google Analytics dimensions.
analytics://reports/{reportId}
Access specific analytics report data.
Development
Running Tests
npm test
Building
npm run build
License
MIT
Similar Resources
Developer Tools