# Facebook Ads MCP MCP

> Facebook Ads MCP manages your Meta advertising campaigns through natural conversation. You can pull detailed performance metrics, check ad set targeting, review campaign settings, and update active/paused statuses directly using your agent.

## Overview
- **Category:** industry-titans
- **Price:** Free
- **Tags:** social-media-ads, campaign-management, ad-performance, meta-marketing, ad-targeting, marketing-analytics

## Description

You connect this MCP to take full control of your paid media efforts without logging into the Facebook Ads platform. Instead of building complex reports or manually adjusting budgets across multiple tabs, you talk to your AI client about what needs fixing. You can pull performance insights showing total spend, clicks, and reach for the entire ad account, then drill down to see exactly which ads are underperforming. The system even verifies your access level using a zero-trust proxy, so your credentials pass through in transit but never sit on disk—it's safer than most local setups. You can list all campaigns or specific ad sets and check their detailed settings before telling the AI agent what to do next, like pausing an entire campaign that’s draining money too fast. This MCP lets you manage everything from listing current ads to updating statuses across the board.

## Tools

### get_ad_account_info
Gets basic information about your entire Facebook Ad Account.

### get_ad_details
Retrieves specific information for a single, selected ad.

### get_ad_set_details
Retrieves specific details about a single, selected ad set.

### get_campaign_details
Fetches detailed information for any given campaign.

### get_insights
Retrieves performance metrics like clicks, impressions, and spend across the ad account.

### get_me
Confirms the identity and permissions of your connected token.

### list_ad_sets
Lists all the ad sets defined within your account structure.

### list_ads
Lists all the ads currently active in your ad account.

### list_campaigns
Lists all campaigns that exist in your ad account.

### update_ad_set_status
Changes the active status (pause/activate) of a specific ad set.

### update_ad_status
Updates the operational status of an individual ad.

### update_campaign_status
Changes the active status (pause/activate) for an entire campaign.

## Prompt Examples

**Prompt:** 
```
List all active campaigns in my ad account.
```

**Response:** 
```
Fetching active campaigns... You have 3 active campaigns: 'Spring Launch 2024' (ID: 123), 'Brand Awareness - Global' (ID: 456), and 'Retargeting - EU' (ID: 789). Would you like to see the daily spend for any of these?
```

**Prompt:** 
```
Show me the performance insights for the last week.
```

**Response:** 
```
Analyzing account insights... Over the last 7 days, your account generated 125,000 impressions and 2,400 clicks with a total spend of $1,250. Your average CPC is $0.52.
```

**Prompt:** 
```
Pause campaign 123456789.
```

**Response:** 
```
Updating campaign status... Campaign 123456789 ('Spring Launch') has been successfully PAUSED.
```

## Capabilities

### Pull Account Overview
Get basic metadata for your ad account, including its currency and overall status.

### Retrieve Performance Data
Extract granular metrics like impressions, clicks, spend, and reach across time periods.

### List Ad Components
Fetch lists of all campaigns, ad sets, or individual ads running in the account.

### Inspect Details
View specific targeting rules, budgets, and creative details for any single component (campaign, ad set, or ad).

### Change Statuses
Update the active status of an entire campaign, an ad set, or a single ad.

## Use Cases

### Campaign is bleeding money.
You run `get_insights` and see Campaign 99 has a high spend but low clicks. You ask your agent to check the details, which triggers `get_campaign_details`. Seeing poor performance metrics, you tell it to use `update_campaign_status` to PAUSE the campaign immediately.

### Need to audit an ad set.
A client asks why their ads aren't reaching certain demographics. You list all ad sets using `list_ad_sets`, then pull specific targeting data with `get_ad_set_details` for the suspected set, confirming if the budget or audience scope is too narrow.

### Mass status update required.
The marketing team finished a creative test and needs to pause 30 specific ads. Instead of manually logging into the platform thirty times, you use `list_ads` to get all IDs, then tell your agent to run `update_ad_status` on all of them.

### Quick account health check.
Before a big meeting, you need basic stats. You first call `get_ad_account_info` for the balance and currency, then run `list_campaigns` to confirm how many campaigns are currently running.

## Benefits

- Stop sifting through spreadsheets. Use `get_insights` to pull key metrics—impressions, clicks, total spend—and get them summarized instantly for reports.
- You can pause failing campaigns without navigating multiple dashboards. Just ask your agent to use `update_campaign_status` on ID 123456 and move on.
- Don't waste time checking every single ad manually. Use `list_ads` to see them all, then tell the agent to apply a pause using `update_ad_status` across the board.
- Need to know why an ad set isn't working? Run `get_ad_set_details` to review its targeting and budget settings right in your chat window.
- The platform handles credential safety via a zero-trust proxy. Your access tokens move through Vinkius, used only for the call; they never sit on disk.

## How It Works

The bottom line is: You get a single conversational entry point to manage complex ad infrastructure.

1. Connect your MCP-compatible client and provide your Facebook Ads Access Token and Ad Account ID.
2. Ask your agent for the data you need; for example, 'Show me all campaigns running in the US.'
3. The agent compiles the requested information and delivers it directly to your chat interface.

## Frequently Asked Questions

**How do I find my Facebook Ad Account ID?**
You can find your Ad Account ID in the **Meta Ads Manager**. It's the numeric ID shown in the URL or account selector. Ensure you provide it without the 'act_' prefix.

**Can I pause an underperforming campaign using this agent?**
Yes! Use the `update_campaign_status` tool and set the status to `PAUSED`. You can also resume it later by setting it back to `ACTIVE`.

**Which performance metrics are available in the insights?**
The `get_insights` tool provides comprehensive data including impressions, clicks, total spend, reach, CPC (cost per click), CTR (click-through rate), and CPP (cost per purchase).

**What does using `get_me` confirm about my access level before I change anything?**
It confirms your current token's authorized scope and user identity. This lets you verify the agent has the necessary permissions to run commands like updating status, ensuring everything stays within your defined limits.

**How can I check my overall ad account health using `get_ad_account_info`?**
This tool retrieves basic metadata for the entire account. You get quick visibility into things like your current balance, associated currency, and the general operational status of the whole advertising profile.

**If I use `list_campaigns`, how do I access related ad set information?**
The tool only lists the campaigns. To drill down into details like targeting or specific budgets, you'll need to follow up by running `list_ad_sets` using the campaign IDs it provides.

**What happens if I try to execute `update_ad_set_status` with an invalid ID?**
The MCP returns a structured error code and message. Your AI client can then parse this response directly, telling you exactly which ID failed or why the status update couldn't run.

**What specific targeting and creative details does `get_ad_details` provide?**
It gives deep information about a single ad. You can review its exact creative assets, who it targets, and the detailed budget parameters set for that specific piece of advertising.