Google Analytics MCP Server
by Kirill812
A Model Context Protocol (MCP) server that provides access to Google Analytics data through tools and resources. It allows fetching analytics data with flexible filtering options and provides formatted data with insights and recommendations.
View on GitHub
Last updated: N/A
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": "[email protected]",
"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