Google Analytics Data API MCP Server

by mattcoatsworth

275 downloads
Not rated
GitHub

Description

# Google Analytics Data API MCP Server A Model Context Protocol (MCP) server for interacting with the Google Analytics Data API v1. This server provides tools and resources for querying Google Analytics data, managing audiences, and accessing metadata. ## Features - Run standard…

About

# Google Analytics Data API MCP Server A Model Context Protocol (MCP) server for interacting with the Google Analytics Data API v1. This server provides tools and resources for querying Google Analytics data, managing audiences, and accessing metadata. ## Features - Run standard and pivot reports - Batch reporting…

Details

Author
mattcoatsworth
Downloads
275
Categories
Search

- Run standard and pivot reports (single or batch)
- Create, list, update, and delete audiences
- Check compatibility between dimensions and metrics
- Access metadata about dimensions and metrics
- Browse dimensions and metrics by category
- Expose property, report, and audience resources via URIs

Configure the server by creating a .env file with GOOGLE_CLIENT_EMAIL, GOOGLE_PRIVATE_KEY, and DEFAULT_PROPERTY_ID. Install dependencies with npm install, then start the server using npm start or test with npm run inspect.

Google Analytics Data API MCP Server

A Model Context Protocol (MCP) server for interacting with the Google Analytics Data API v1. This server provides tools and resources for querying Google Analytics data, managing audiences, and accessing metadata.

## Features

- Run standard and pivot reports
- Batch reporting capabilities
- Access metadata about dimensions and metrics
- Create, list, update, and delete audiences
- Check compatibility between dimensions and metrics
- Comprehensive resource endpoints for exploring GA data

## Prerequisites

- Node.js 14 or higher
- Google Analytics 4 property
- Google Cloud service account with appropriate permissions

## Setup

1. Clone this repository
2. Install dependencies:

       npm install

3. Create a .env file based on .env.example with your Google Analytics credentials:
       GOOGLE_CLIENT_EMAIL=your-service-account-email@project-id.iam.gserviceaccount.com
GOOGLE_PRIVATE_KEY=your-private-key
DEFAULT_PROPERTY_ID=properties/123456789

## Usage

### Running the Server

    npm start
    

### Testing with MCP Inspector

    npm run inspect
    

## Available Tools

- runReport: Run a standard report on Google Analytics data
- batchRunReports: Run multiple reports in a single batch
- runPivotReport: Run a pivot report on Google Analytics data
- batchRunPivotReports: Run multiple pivot reports in a batch
- getMetadata: Get metadata about dimensions and metrics
- checkCompatibility: Check compatibility between dimensions and metrics
- createAudience: Create a new audience
- listAudiences: List audiences in a property
- getAudience: Get details of a specific audience
- deleteAudience: Delete an audience
- updateAudience: Update an existing audience

## Available Resources

- ga://property/{propertyId}: Get property information
- ga://report/{propertyId}/{reportType}/{dimensions}/{metrics}/{startDate}/{endDate}: Generate reports
- ga://metadata: Get API metadata
- ga://dimensions: Browse dimensions by category
- ga://dimensions/{category}: Get dimensions in a specific category
- ga://metrics: Browse metrics by category
- ga://metrics/{category}: Get metrics in a specific category
- ga://audiences/{propertyId}: List audiences in a property
- ga://audiences/{propertyId}/{audienceId}: Get details of a specific audience

## Example Queries

### Running a Basic Report

    {
      "propertyId": "properties/123456789",
      "dateRanges": [
        {
          "startDate": "7daysAgo",
          "endDate": "yesterday"
        }
      ],
      "dimensions": [
        {
          "name": "country"
        },
        {
          "name": "deviceCategory"
        }
      ],
      "metrics": [
        {
          "name": "activeUsers"
        },
        {
          "name": "sessions"
        }
      ]
    }
    

### Creating an Audience

    {
      "propertyId": "properties/123456789",
      "displayName": "High Value Users",
      "description": "Users who have completed a purchase",
      "membershipDurationDays": 30,
      "filterClauses": [
        {
          "filterExpression": {
            "andGroup": {
              "expressions": [
                {
                  "filter": {
                    "fieldName": "eventName",
                    "stringFilter": {
                      "value": "purchase",
                      "matchType": "EXACT"
                    }
                  }
                }
              ]
            }
          }
        }
      ]
    }
    

## License

MIT

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.