Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions google-tag-manager/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ MCP Server for Google Tag Manager integration. Manage accounts, containers, work
- **list_workspaces** - List workspaces in a container
- **get_workspace** - Get details of a specific workspace
- **create_workspace** - Create a new workspace
- **delete_workspace** - Delete a workspace

### Tag Management
- **list_tags** - List tags in a workspace
Expand Down
21 changes: 11 additions & 10 deletions google-tag-manager/app.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
{
"scopeName": "deco",
"name": "google-tag-manager",
"friendlyName": "Google Tag Manager",
"connection": {
"type": "HTTP",
"url": "https://sites-google-tag-manager.decocache.com/mcp"
},
"description": "Manage Google Tag Manager resources including accounts, containers, workspaces, tags, triggers and variables via API.",
"icon": "https://img.icons8.com/color/1200/google-tag-manager.jpg",
"unlisted": false
"scopeName": "deco",
"name": "google-tag-manager",
"friendlyName": "Google Tag Manager",
"connection": {
"type": "HTTP",
"url": "https://sites-google-tag-manager.decocache.com/mcp"
},
"description": "Manage Google Tag Manager resources including accounts, containers, workspaces, tags, triggers and variables via API.",
"icon": "https://www.gstatic.com/images/branding/product/2x/tag_manager_64dp.png",
"unlisted": false
}

34 changes: 3 additions & 31 deletions google-tag-manager/server/lib/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -280,20 +280,9 @@ export interface CreateTagInput {

/**
* Input for updating a tag
* Note: name and type are required by the GTM API
*/
export interface UpdateTagInput {
export interface UpdateTagInput extends Partial<CreateTagInput> {
fingerprint: string;
name: string;
type: string;
parameter?: Parameter[];
firingTriggerId?: string[];
blockingTriggerId?: string[];
tagFiringOption?: TagFiringOption;
notes?: string;
liveOnly?: boolean;
parentFolderId?: string;
paused?: boolean;
}

/**
Expand All @@ -312,18 +301,9 @@ export interface CreateTriggerInput {

/**
* Input for updating a trigger
* Note: name and type are required by the GTM API
*/
export interface UpdateTriggerInput {
export interface UpdateTriggerInput extends Partial<CreateTriggerInput> {
fingerprint: string;
name: string;
type: string;
filter?: Condition[];
autoEventFilter?: Condition[];
customEventFilter?: Condition[];
eventName?: Parameter;
notes?: string;
parentFolderId?: string;
}

/**
Expand All @@ -341,15 +321,7 @@ export interface CreateVariableInput {

/**
* Input for updating a variable
* Note: name and type are required by the GTM API
*/
export interface UpdateVariableInput {
export interface UpdateVariableInput extends Partial<CreateVariableInput> {
fingerprint: string;
name: string;
type: string;
parameter?: Parameter[];
notes?: string;
parentFolderId?: string;
disablingTriggerId?: string[];
enablingTriggerId?: string[];
}
2 changes: 1 addition & 1 deletion google-tag-manager/server/tools/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
* Tools:
* - accountTools: Account management (list, get)
* - containerTools: Container management (list, get, create, delete)
* - workspaceTools: Workspace management (list, get, create)
* - workspaceTools: Workspace management (list, get, create, delete)
* - tagTools: Tag management (list, get, create, update, delete)
* - triggerTools: Trigger management (list, get, create, update, delete)
* - variableTools: Variable management (list, get, create, update, delete)
Expand Down
134 changes: 124 additions & 10 deletions meta-ads/README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
# Meta Ads Analytics MCP
# Meta Ads MCP

MCP for performance analysis of Meta/Facebook Ads campaigns.
Complete MCP for managing and analyzing Meta/Facebook Ads campaigns.

## Features

This MCP provides tools to analyze the performance of your Meta (Facebook/Instagram) advertising campaigns:
This MCP provides comprehensive tools to **create, manage, and analyze** your Meta (Facebook/Instagram) advertising campaigns:

- **View performance** of campaigns, ad sets, and ads
- **Get detailed metrics** with breakdowns by age, gender, country, device, etc.
- **Create campaigns** with objectives, budgets, and scheduling
- **Create ad sets** with targeting, optimization, and bidding
- **Create ads** with creatives and call-to-actions (use existing posts or links)
- **Update/pause/delete** campaigns, ad sets, and ads
- **View performance** metrics with breakdowns by age, gender, country, device, etc.
- **Compare performance** between periods
- **Analyze ROI and costs** at different levels

Expand All @@ -32,24 +35,38 @@ This MCP provides tools to analyze the performance of your Meta (Facebook/Instag
|------|-------------|
| `META_ADS_GET_ACCOUNT_INFO` | Account details (currency, timezone, status) - works with both token types |

### Campaigns (2 tools)
### Campaigns (5 tools)
| Tool | Description |
|------|-------------|
| `META_ADS_GET_CAMPAIGNS` | List campaigns with status filter |
| `META_ADS_GET_CAMPAIGN_DETAILS` | Details of a specific campaign |
| `META_ADS_CREATE_CAMPAIGN` | Create a new campaign with objective, budget, and schedule |
| `META_ADS_UPDATE_CAMPAIGN` | Update/pause/activate a campaign |
| `META_ADS_DELETE_CAMPAIGN` | Delete a campaign |

### Ad Sets (2 tools)
### Ad Sets (5 tools)
| Tool | Description |
|------|-------------|
| `META_ADS_GET_ADSETS` | List ad sets with campaign filter |
| `META_ADS_GET_ADSET_DETAILS` | Ad set details (targeting, budget) |
| `META_ADS_CREATE_ADSET` | Create ad set with targeting, budget, and optimization |
| `META_ADS_UPDATE_ADSET` | Update/pause/activate an ad set |
| `META_ADS_DELETE_ADSET` | Delete an ad set |

### Ads (3 tools)
### Ads (5 tools)
| Tool | Description |
|------|-------------|
| `META_ADS_GET_ADS` | List ads with ad set filter |
| `META_ADS_GET_AD_DETAILS` | Ad details |
| `META_ADS_GET_AD_CREATIVES` | Ad creatives |
| `META_ADS_GET_AD_CREATIVES` | Get creative details for an ad |
| `META_ADS_CREATE_AD` | Create a new ad with a creative |
| `META_ADS_UPDATE_AD` | Update/pause/activate an ad |
| `META_ADS_DELETE_AD` | Delete an ad |

### Creatives (1 tool)
| Tool | Description |
|------|-------------|
| `META_ADS_CREATE_AD_CREATIVE` | Create a creative with text and CTA (use existing posts or link ads) |

### Insights (1 tool)
| Tool | Description |
Expand Down Expand Up @@ -151,11 +168,47 @@ bun run build
bun run publish
```

## Creating a Complete Campaign

To create a full campaign from scratch, follow this flow:

```
1. Create Campaign
-> META_ADS_CREATE_CAMPAIGN(account_id, name, objective, ...)

2. Create Ad Set with targeting
-> META_ADS_CREATE_ADSET(account_id, campaign_id, targeting, ...)

3. Create Ad Creative (use existing post or link ad)
-> META_ADS_CREATE_AD_CREATIVE(account_id, page_id, link, ...)
OR
-> META_ADS_CREATE_AD_CREATIVE(account_id, effective_object_story_id, ...)

4. Create Ad
-> META_ADS_CREATE_AD(account_id, adset_id, creative_id, ...)

5. Activate (when ready)
-> META_ADS_UPDATE_CAMPAIGN(campaign_id, status: "ACTIVE")
```

### Campaign Objectives

| Objective | Use Case |
|-----------|----------|
| `OUTCOME_TRAFFIC` | Drive website visits |
| `OUTCOME_ENGAGEMENT` | Get likes, comments, shares |
| `OUTCOME_LEADS` | Collect leads via forms |
| `OUTCOME_SALES` | Drive purchases/conversions |
| `OUTCOME_AWARENESS` | Reach and brand awareness |
| `OUTCOME_APP_PROMOTION` | App installs |

## Usage Examples

### Reading Data

```
1. "List my ad accounts"
-> META_ADS_GET_AD_ACCOUNTS
-> META_ADS_GET_USER_AD_ACCOUNTS

2. "Show active campaigns for account act_123"
-> META_ADS_GET_CAMPAIGNS(account_id: "act_123", status_filter: "ACTIVE")
Expand All @@ -169,3 +222,64 @@ bun run publish
5. "Which ads have the best CTR?"
-> META_ADS_GET_ADS + META_ADS_GET_INSIGHTS for each
```

### Creating Campaigns

```
1. "Create a traffic campaign for my website"
-> META_ADS_CREATE_CAMPAIGN(
account_id: "act_123",
name: "Website Traffic Q1",
objective: "OUTCOME_TRAFFIC",
status: "PAUSED"
)

2. "Create an ad set targeting 25-45 year olds in Brazil"
-> META_ADS_CREATE_ADSET(
account_id: "act_123",
campaign_id: "123456",
name: "Brazil Adults",
targeting: {
age_min: 25,
age_max: 45,
geo_locations: { countries: ["BR"] }
},
optimization_goal: "LINK_CLICKS",
billing_event: "IMPRESSIONS",
daily_budget: "5000"
)

3. "Create a creative with link and text"
-> META_ADS_CREATE_AD_CREATIVE(
account_id: "act_123",
page_id: "page_123",
link: "https://mysite.com",
message: "Check out our amazing products!",
headline: "Limited Time Offer",
call_to_action_type: "SHOP_NOW"
)

4. "Create an ad using the creative"
-> META_ADS_CREATE_AD(
account_id: "act_123",
adset_id: "adset_456",
name: "Shop Now Ad",
creative_id: "creative_789"
)
```

### Managing Campaigns

```
1. "Pause campaign X"
-> META_ADS_UPDATE_CAMPAIGN(campaign_id: "123", status: "PAUSED")

2. "Increase daily budget to $100"
-> META_ADS_UPDATE_ADSET(adset_id: "456", daily_budget: "10000")

3. "Activate my ad"
-> META_ADS_UPDATE_AD(ad_id: "789", status: "ACTIVE")

4. "Delete old campaign"
-> META_ADS_DELETE_CAMPAIGN(campaign_id: "123")
```
Loading
Loading