Skip to main content
Glama
neep305

Google Tag Manager MCP Server

by neep305
README.md
# Google Tag Manager MCP Server

A Model Context Protocol (MCP) server that integrates Google Tag Manager with Claude, enabling automated GTM configuration and component creation through natural language prompts.

## Features

- **GTM API Integration**: Full Google Tag Manager API integration for creating and managing tags, triggers, and variables
- **Component Templates**: Pre-built templates for common tracking scenarios (GA4, Facebook Pixel, conversion tracking)
- **Workflow Automation**: Complete workflow creation for different site types (ecommerce, lead generation, content sites)
- **Claude Integration**: Natural language interface for GTM configuration through Claude

## Setup

### 1. Install Dependencies

#### Option A: Using uv (Recommended)

```bash
# Install uv if not already installed
curl -LsSf https://astral.sh/uv/install.sh | sh
source $HOME/.local/bin/env

# Install dependencies
uv sync
```

#### Option B: Using pip

```bash
pip install -r requirements.txt
```

### 2. Google Cloud Console Setup

1. Go to the [Google Cloud Console](https://console.cloud.google.com/)
2. Create a new project or select existing one
3. Enable the Tag Manager API:
   - Go to "APIs & Services" > "Library"
   - Search for "Tag Manager API"
   - Click "Enable"

### 3. Create Service Account Credentials

1. Go to "APIs & Services" > "Credentials"
2. Click "Create Credentials" > "OAuth 2.0 Client IDs"
3. Choose "Desktop application"
4. Download the JSON file and save it as `credentials.json` in this directory

### 4. Configure Claude

Add the MCP server configuration to your Claude config:

```json
{
  "mcpServers": {
    "gtm": {
      "command": "python",
      "args": ["/path/to/mcp-for-gtm/server.py"],
      "env": {
        "GTM_CREDENTIALS_FILE": "/path/to/mcp-for-gtm/credentials.json",
        "GTM_TOKEN_FILE": "/path/to/mcp-for-gtm/token.json"
      }
    }
  }
}
```

## Available Tools

### Basic GTM Operations

- **`create_gtm_tag`**: Create individual GTM tags
- **`create_gtm_trigger`**: Create GTM triggers  
- **`create_gtm_variable`**: Create GTM variables
- **`list_gtm_containers`**: List all containers for an account
- **`get_gtm_container`**: Get container details
- **`publish_gtm_version`**: Publish a container version

### Workflow Tools

- **`create_ga4_setup`**: Complete Google Analytics 4 setup with config tag and common events
- **`create_facebook_pixel_setup`**: Facebook Pixel tracking setup
- **`create_form_tracking`**: Form submission tracking setup
- **`generate_gtm_workflow`**: Generate complete workflows for different site types

## Usage Examples

### 1. Set up Google Analytics 4 tracking

```
Create a complete GA4 setup for my website with measurement ID G-XXXXXXXXXX in GTM account 123456 and container 7890123
```

### 2. Generate ecommerce tracking workflow

```
Generate a complete ecommerce tracking workflow with GA4 measurement ID G-XXXXXXXXXX and Facebook Pixel ID 123456789
```

### 3. Create form tracking

```
Set up form tracking for the contact form with selector #contact-form in my GTM container
```

### 4. Create custom components

```
Create a custom GTM tag for tracking video plays with the following parameters: event_name = "video_play", video_title = "{{Video Title}}", video_duration = "{{Video Duration}}"
```

## Workflow Types

The `generate_gtm_workflow` tool supports three main workflow types:

- **`ecommerce`**: Enhanced ecommerce tracking with purchase, cart, and product interaction events
- **`lead_generation`**: Form submissions, CTA clicks, and conversion tracking
- **`content_site`**: Content engagement, newsletter signups, and social sharing

## Authentication

On first run, the server will open a browser window for OAuth authentication. Grant the necessary permissions to access your GTM account. The authentication token will be saved for future use.

## File Structure

```
mcp-for-gtm/
├── server.py              # Main MCP server
├── gtm_client.py          # GTM API client
├── gtm_components.py      # Component templates and workflow builder
├── requirements.txt       # Python dependencies
├── config.json           # MCP server configuration
├── credentials.json      # Google OAuth credentials (you provide)
├── token.json           # Generated auth token (auto-created)
└── README.md           # This file
```

## Troubleshooting

### Authentication Issues
- Ensure `credentials.json` is properly configured from Google Cloud Console
- Check that Tag Manager API is enabled in your Google Cloud project
- Verify you have the necessary permissions in your GTM account

### Permission Errors
- Make sure your Google account has edit permissions for the GTM container
- Ensure the GTM account and container IDs are correct

### API Errors
- Check your GTM account and container IDs
- Verify that the workspace exists (default workspace ID is used)
- Check rate limits if you're making many requests

## Development

### Running Tests

```bash
# Using uv
uv run python test_server.py

# Or directly with python
python test_server.py
```

### Running the Server

```bash
# Using the convenience script
./run_server.sh

# Or manually with uv
uv run python server.py

# Or with system python
python server.py
```

### Development Dependencies

The project includes development dependencies for code quality:

```bash
# Format code with black
uv run black .

# Check with flake8
uv run flake8 .

# Type checking with mypy
uv run mypy .

# Run tests with pytest
uv run pytest
```

## Contributing

Feel free to submit issues and enhancement requests!