mcp-server-google-analytics
by ruchernchong
# Google Analytics MCP Server
[](https://smithery.ai/server/mcp-server-google-analytics)
An MCP server implementation for accessing Google Analytics 4 (GA4) data, built using the Model Context Protocol
TypeScript SDK.
## Features
- Get page view metrics with customizable dimensions
- Track active and new users over time
- Analyze specific events and their metrics
- Monitor user behavior metrics (session duration, bounce rate)
- Flexible date range selection for all queries
## Prerequisites
- Node.js 20 or higher
- Google Analytics 4 property
- Google Cloud project with Analytics Data API enabled
- Service account credentials with appropriate permissions
## Setup
1. Create a Google Cloud project and enable the Analytics Data API
2. Create a service account and download the credentials JSON file
3. Grant the service account appropriate access to your GA4 property
4. Set up environment variables:
```bash
export GOOGLE_CLIENT_EMAIL="your-service-account@project.iam.gserviceaccount.com"
export GOOGLE_PRIVATE_KEY="your-private-key"
export GA_PROPERTY_ID="your-ga4-property-id"
```
## Installation
### Installing via Smithery
To install Google Analytics Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/mcp-server-google-analytics):
```bash
npx -y @smithery/cli install mcp-server-google-analytics --client claude
```
### Manual Installation
```bash
pnpm install mcp-server-google-analytics
```
## Usage
### Starting the Server
```bash
pnpm start
```
### Configuration in Claude Desktop
Add this to your Claude Desktop configuration:
```json
{
"mcpServers": {
"google-analytics": {
"command": "npx",
"args": ["-y", "mcp-server-google-analytics"],
"env": {
"GOOGLE_CLIENT_EMAIL": "your-service-account@project.iam.gserviceaccount.com",
"GOOGLE_PRIVATE_KEY": "your-private-key",
"GA_PROPERTY_ID": "your-ga4-property-id"
}
}
}
}
```
## Available Functions
### getPageViews
Get page view metrics for a specific date range:
```json
{
"startDate": "2024-01-01",
"endDate": "2024-01-31",
"dimensions": ["page", "country"] // Optional
}
```
### getActiveUsers
Get active users metrics:
```json
{
"startDate": "2024-01-01",
"endDate": "2024-01-31"
}
```
### getEvents
Get event metrics:
```json
{
"startDate": "2024-01-01",
"endDate": "2024-01-31",
"eventName": "purchase" // Optional
}
```
### getUserBehavior
Get user behavior metrics:
```json
{
"startDate": "2024-01-01",
"endDate": "2024-01-31"
}
```
## Security Considerations
- Always use environment variables for sensitive credentials
- Implement appropriate CORS settings
- Follow the principle of least privilege when setting up service account permissions
- Regularly rotate service account credentials
- Monitor API usage and implement rate limiting if needed
## Contributing
Contributions are welcome! Please read our [Contributing Guide](CONTRIBUTING.md) for details on our code of conduct and
the process for submitting pull requests.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.