---
title: "Meta Ads MCP in Slack: ask about ad spend, pause an ad set | Chickpea"
description: "Use Meta's Ads MCP server from Slack. Give a channel an AI teammate connected to Meta Ads, ask what a campaign cost, and pause an ad set. Open source."
canonical: https://chickpea.co/connectors/meta-ads
keyword: "Meta Ads MCP in Slack"
verified: 2026-09-17
---

# A Meta Ads teammate in Slack, running on Meta's Ads MCP server.

> Chickpea gives a channel a named AI teammate that holds its own Meta Ads connection. It signs in with Meta and calls Meta's Ads MCP server, so there is no client to configure and no token to paste. Ask it in Slack what a campaign cost, which ad sets moved, or to pause one, and it answers in the thread. Facebook and Instagram ads both sit inside the ad accounts it was given.

Facts checked against the sources on September 17, 2026. The HTML page is at https://chickpea.co/connectors/meta-ads; every connector is listed at https://chickpea.co/connectors; the site index for agents is at https://chickpea.co/llms.txt.

**Meta Ads** (Meta Platforms, Inc., https://www.facebook.com/business/ads): Report on and manage ads for approved Meta ad accounts. Category: Business and support. Lane: Vendor MCP server. Sign in: OAuth.

**Chickpea**: an open source Slack app that gives a workspace named AI teammates, each with its own handle, instructions, memory, connected accounts, schedules, and model, deployed to your own Cloudflare account or a Node host.

## What people ask it
The teammate in these examples is @growth, published to #growth.

### Spend, results, and cost per result
- @growth what did Spring Sale spend last week, and what was the cost per result
- @growth spend and purchases by ad set for the last 14 days on the retail account

Reads never need confirmation, and a long answer comes back as a table in the thread. Meta describes its reporting tool as returning campaigns, ad sets, and ads with spend, impressions, CTR, CPC, CPM, and conversions, with filtering, breakdowns, sorting, and date ranges. Every call is pinned to the ad accounts an Admin approved.

### What moved, and whether it is unusual
- @growth which ad sets moved this week, and is any of it outside the normal range
- @growth compare our CPM to the industry benchmark for this ad set

Meta ships separate reporting tools for a performance trend over time, an anomaly signal, auction and ranking benchmarks, an industry benchmark, and an account opportunity score. Whichever of those were ticked at connect time are the ones the teammate has, so the answer says which it used.

### Pause an ad set, or turn it back on
- @growth pause the Instagram Reels ad set, we are rebuilding the creative
- @growth turn the Lookalike 2% ad set back on

One pause or one activation applies at once. Meta keeps activation in its own tool and says plainly that it starts spending budget, so pausing and activating are never the same call. Before either goes out, Chickpea checks with Meta that the ad set really belongs to an approved account, and refuses if it does not.

### Change a budget
- @growth put the retargeting ad set up to $900 a day
- @growth raise the daily budget on Spring Sale, it is our cheapest campaign

This one asks first, and on an active ad set it refuses outright. Meta's update service can pause an active campaign, ad set, or ad while its budget changes, which would cost you the day, so Chickpea sends nothing and tells you to use Ads Manager. On a paused one the change goes through after you confirm it. Anything broad or consequential comes back as a list of what would change and waits for a yes.

### On a schedule
- @growth every weekday at 8am Eastern, post yesterday's spend and cost per result for both accounts
- @growth every Monday at 9am Pacific, post last week by ad set with what moved

A schedule saves on the spot. It needs an explicit time zone, runs under the Meta Ads connection of the person who asked, and fails with a named reason rather than running if that connection is gone. A digest reads, so nothing about it can change an ad.

### Example conversations

**What did the campaign cost**
> **Dana:** @growth what did Spring Sale spend last week, and what was the cost per result?
> **@growth:** Mon 8 Sep to Sun 14 Sep on Northwind Retail. Spring Sale spent $14,280 for 612 purchases, so $23.33 a result. That is 9% cheaper than the week before.
>
> | Ad set | Spend | Results | Cost per result |
> |---|---|---|---|
> | Prospecting, broad | $6,140 | 241 | $25.48 |
> | Retargeting, 30 day | $4,320 | 238 | $18.15 |
> | Lookalike 2% | $2,610 | 96 | $27.19 |
> | Instagram Reels | $1,210 | 37 | $32.70 |

**What moved this week**
> **Priya:** @growth which ad sets moved this week? I only want the ones worth looking at.
> **@growth:** Three are worth a look. Instagram Reels is the one to deal with: CPM up 41% on flat delivery, and the anomaly check flags it too. Retargeting, 30 day got cheaper for no obvious reason. Everything else is inside its usual range.
>
> | Ad set | CPM | Change | Cost per result |
> |---|---|---|---|
> | Instagram Reels | $18.40 | +41% | $32.70 |
> | Retargeting, 30 day | $9.05 | -12% | $18.15 |
> | Lookalike 2% | $11.70 | +14% | $27.19 |

**Pause an ad set**
> **Marco:** @growth pause the Instagram Reels ad set, we will rebuild the creative
> **@growth:** Paused. Instagram Reels in Spring Sale is off as of 10:42, after $1,210 and 37 purchases this week. Nothing else in the campaign changed. Say "turn Instagram Reels back on" when the new creative is up.

**Raise a budget**
> **Sofia:** @growth put Retargeting, 30 day up to $900 a day. It is the cheapest thing we have.
> **@growth:** That ad set is active, and I will not change a budget on an active one. Meta’s update service can pause an ad set while the budget changes, which would cost you the day. Two ways round it: change it yourself in Ads Manager, or I pause it, set $900, and turn it back on while you watch. The gap is a few seconds either way.
> Buttons: Pause, set $900, reactivate · I will do it in Ads Manager

**Every morning**
> **Dana:** @growth every weekday at 8am Eastern, post yesterday’s spend and cost per result for both accounts.
> **@growth:** Saved. Every weekday at 8:00 AM Eastern I’ll post yesterday’s spend, results, and cost per result for Northwind Retail and Northwind Brand in #growth. First run is Thu Sep 18. It only reads, and it runs on your Meta Ads connection. Say "pause the morning digest" to stop it.

## Connect Meta Ads
1. An administrator configures a Meta developer app for the installation once, under **Settings → Connectors**. Until the Meta App ID is saved, sign-in is refused and says so. This is one job per deployment, not one per teammate.
2. Open the teammate in Chickpea Admin, then **Connections**, find **Meta Ads**, and choose **Connect**. Or ask in Slack, `@growth connect Meta Ads`, and follow the link it posts.
3. Choose who uses it and how much it may do. **Team** is one shared Meta account everyone acts through; **Personal** means each member signs in as themselves. **Reporting** is the default access; **Reporting and editing** is the one that lets selected tools create or change ads.
4. Choose **Continue to Meta Ads**. Meta asks you to approve, on its own page. There is no token to paste and no config file to edit.
5. Back on the page Chickpea serves, list the **ad account IDs** the teammate may touch and tick the **tools** it may use, then **Save access**. Nothing is on until you tick it. `@growth what did Spring Sale spend last week` is a good first question, because it reads.

Those two choices are the ceiling. Every tool the teammate holds is pinned to the ad accounts you listed, and a request naming any other account fails before it is sent. A connection belongs to one teammate, so a second teammate means a second sign-in with its own accounts and its own tools. The list can later be narrowed but never widened from Slack.

## What the teammate is handed with Meta Ads
There is no built-in Chickpea skill for Meta Ads. The tools arrive from Meta's Ads MCP server: Chickpea connects before it saves anything, records what the server answered with, and shows you that list to choose from. Two limits sit on top of it. A tool is offered only if it is in Chickpea's reviewed contract, which covers the reporting tools, the two account and field helpers, and the campaign, ad set, ad, creative, and custom-audience write tools. A tool is offered only if its schema can be held to one approved ad account. Meta's catalog, signals, help, A/B test, and activity-log tools are outside the contract and do not appear.

Meta documents the Ads MCP server and the tools it exposes: https://developers.facebook.com/documentation/ads-commerce/ads-ai-connectors/ads-mcp-server/ads-mcp-server-get-started

## Beside Meta Ads
- **Google Ads:** Both sides of paid in one question, rather than two dashboards and a spreadsheet
- **Google Analytics:** Spend on one side, the sessions and signups it actually produced on the other
- **HubSpot:** Follow the ad click all the way to the deal it became
- **Google Sheets:** Drop last week by ad set into the sheet the team already reads
- All 37 connectors: https://chickpea.co/connectors

## Questions people ask

### Does Meta have an official MCP?
Yes. Meta hosts an Ads MCP server at mcp.facebook.com/ads and describes it as a Meta-hosted Model Context Protocol server that works with any MCP-compatible AI agent. Meta groups its tools as comprehensive reporting, ad creation and management, catalog, signals and datasets, help and troubleshooting, A/B tests and conversion lift studies, and activity logs. Chickpea connects to that same server, so a teammate in Slack uses it with no client installed anywhere.

### What is the MCP URL for Facebook Ads?
mcp.facebook.com/ads, over HTTP, which is the address Meta publishes in its Get started page. In Chickpea you never type it. The Meta Ads preset holds that one address, and the connection cannot reach any other.

### Does Meta have an MCP for Claude?
Meta's server is not tied to one client. Meta documents OAuth through its Login for Business dialog and says the MCP client redirects you there, which is what any compatible client does, Claude included. The difference here is where it ends up. A desktop client puts Meta Ads on one person's machine. A Chickpea teammate puts it in a channel, with a stored connection, saved instructions, schedules, and every action visible in the thread where it was asked for.

### What is MCP in advertising?
Model Context Protocol is a standard way for an AI client to call a service's tools instead of a person clicking through its interface. For ads that means asking what a campaign cost and getting the real report, or saying pause that ad set and having it pause. Meta calls its own set the ads AI connectors and says they expose Meta business surfaces to third-party AI clients through structured, permission-scoped tools.

### Is there an MCP for Facebook and Instagram ads?
The same one. Meta's Ads MCP server covers the ad accounts you approve, and Facebook and Instagram placements both sit inside those accounts. Meta also ships a tool for boosting an existing Instagram post as an ad, which is in Chickpea's reviewed contract and can be ticked at connect time.

### Why does an administrator have to set something up first?
Because Meta's OAuth runs through a developer app, and that app belongs to your organization rather than to Chickpea. An administrator creates or reuses a Meta developer app, adds the ads MCP use case Meta names, and saves its App ID once under Settings → Connectors. After that anyone allowed to connect the teammate just signs in. Meta also says agencies managing data for other businesses need Advanced Access on the ads_mcp_management permission and an app review.

### Can it change a budget?
Only on a paused campaign, ad set, or ad, and only after you confirm. On an active one Chickpea sends nothing at all. Meta's update service can pause an active entity while its budget changes, so the teammate answers with that reason and points you at Ads Manager. If it cannot confirm the entity is paused, it refuses as well. That check is not a judgment the model makes.

### Can it delete anything?
Meta's documented write tools create campaigns, ad sets, and ads in a paused state, update them, activate them, make creatives, boost Instagram posts, and create, update, or delete custom audiences. Deleting an audience is the only delete in Chickpea's reviewed contract, and like every other write tool it is off unless someone ticked it at connect time with editing access chosen. Under all of that sits a gate that does not consult the model: during a Slack turn Chickpea refuses any MCP tool whose name does not start with an unambiguous read verb unless your message names that action. Thread history, retrieved content, and memory cannot authorize a write.

### Do I still need Ads Manager?
Yes, and this page assumes you do. Building a campaign properly is an Ads Manager job, and so is changing the budget on something that is live. What a teammate adds is the question you would otherwise open a tab for, answered in the channel where the conversation already is, plus a morning digest and the pause you want at 10pm on a Friday.

### Which Meta access does this need?
Two choices, both made at connect time. Reporting views reports and account details. Reporting and editing is the one that lets selected tools create or change ads, and a write tool stays unavailable until the connection is made that way. Under that, what the teammate can see and change is what the Meta account you signed in with can see and change, for the ad accounts an Admin listed and no others.

## Sources
- [Chickpea docs: connector catalog, the vendor MCP lane and how a connection is authorized](https://docs.chickpea.co/reference/connector-catalog/)
- [Chickpea docs: connections, team and personal accounts, the binding as a ceiling](https://docs.chickpea.co/agents/connections/)
- [Chickpea docs: authority and confirmation, including the read-verb gate on MCP tools](https://docs.chickpea.co/security/authority-and-confirmation/)
- [Chickpea docs: connect a service, OAuth presets and the Slack link](https://docs.chickpea.co/agents/connect-a-service/)
- [Chickpea docs: schedules, time zones and what each run rechecks](https://docs.chickpea.co/agents/schedules/)
- [Chickpea source: the Meta Ads preset (server URL, transport, the two OAuth scopes, tool review)](https://github.com/pejmanjohn/chickpea/blob/main/src/config/presets.ts)
- [Chickpea source: the reviewed Meta Ads tool contract and the approved-account constraint](https://github.com/pejmanjohn/chickpea/blob/main/src/config/meta-ads-policy.ts)
- [Chickpea source: the ownership check and the active-entity budget refusal](https://github.com/pejmanjohn/chickpea/blob/main/src/config/meta-ads-write-guard.ts)
- [Chickpea source: the connect page, the access choice, and the ad account and tool review](https://github.com/pejmanjohn/chickpea/blob/main/src/management/connector-landing-page.ts)
- [Meta: Ads MCP server, get started (the URL, OAuth, permissions, the developer app)](https://developers.facebook.com/documentation/ads-commerce/ads-ai-connectors/ads-mcp-server/ads-mcp-server-get-started)
- [Meta: Ads MCP server overview and the seven tool groups](https://developers.facebook.com/documentation/ads-commerce/ads-ai-connectors/ads-mcp-server/ads-mcp-server-overview)
- [Meta: the reporting tools and what each returns](https://developers.facebook.com/documentation/ads-commerce/ads-ai-connectors/ads-mcp-server/ads-mcp-server-tools-comprehensive-reporting)
- [Meta: ad creation and management tools, including paused creation and activation](https://developers.facebook.com/documentation/ads-commerce/ads-ai-connectors/ads-mcp-server/ads-mcp-server-tools-ad-creation-and-management)
- [Meta for Developers blog: Meta's ads MCP server is now available for developers](https://developers.facebook.com/blog/post/2026/07/16/meta-ads-mcp-server/)
- [Chickpea source on GitHub](https://github.com/pejmanjohn/chickpea)

## More
- [Ahrefs MCP in Slack](https://chickpea.co/connectors/ahrefs.md)
- [Airtable MCP in Slack](https://chickpea.co/connectors/airtable.md)
- [Asana AI agent in Slack](https://chickpea.co/connectors/asana.md)
- [Jira and Confluence MCP in Slack](https://chickpea.co/connectors/atlassian.md)
- [BugSnag MCP in Slack](https://chickpea.co/connectors/bugsnag.md)
- [Cloudflare MCP in Slack](https://chickpea.co/connectors/cloudflare-api.md)
- [Exa MCP in Slack](https://chickpea.co/connectors/exa.md)
- [Firecrawl MCP in Slack](https://chickpea.co/connectors/firecrawl.md)
- [Fireflies MCP in Slack](https://chickpea.co/connectors/fireflies.md)
- [Gamma MCP in Slack](https://chickpea.co/connectors/gamma.md)
- [Gmail AI agent in Slack](https://chickpea.co/connectors/gmail.md)
- [Gong AI agent in Slack](https://chickpea.co/connectors/gong-managed.md)
- [Google Ads AI agent in Slack](https://chickpea.co/connectors/google-ads.md)
- [Google Analytics AI agent in Slack](https://chickpea.co/connectors/google-analytics.md)
- [Google Calendar AI agent in Slack](https://chickpea.co/connectors/google-calendar.md)
- [Google Docs AI agent in Slack](https://chickpea.co/connectors/google-docs.md)
- [Google Drive AI agent in Slack](https://chickpea.co/connectors/google-drive.md)
- [Google Search Console AI agent in Slack](https://chickpea.co/connectors/google-search-console.md)
- [Google Sheets AI agent in Slack](https://chickpea.co/connectors/google-sheets.md)
- [Google Slides AI agent in Slack](https://chickpea.co/connectors/google-slides.md)
- [Granola MCP in Slack](https://chickpea.co/connectors/granola.md)
- [HubSpot AI agent in Slack](https://chickpea.co/connectors/hubspot-managed.md)
- [Hugging Face MCP in Slack](https://chickpea.co/connectors/huggingface.md)
- [incident.io MCP in Slack](https://chickpea.co/connectors/incident-io.md)
- [Intercom MCP in Slack](https://chickpea.co/connectors/intercom.md)
- [Linear MCP in Slack](https://chickpea.co/connectors/linear.md)
- [LunarCrush MCP in Slack](https://chickpea.co/connectors/lunarcrush.md)
- [Monday.com MCP in Slack](https://chickpea.co/connectors/monday.md)
- [Neon MCP in Slack](https://chickpea.co/connectors/neon.md)
- [Notion Slack integration with an AI agent](https://chickpea.co/connectors/notion-managed.md)
- [PostHog MCP in Slack](https://chickpea.co/connectors/posthog.md)
- [Sentry MCP in Slack](https://chickpea.co/connectors/sentry.md)
- [Stripe MCP in Slack](https://chickpea.co/connectors/stripe.md)
- [Supabase MCP in Slack](https://chickpea.co/connectors/supabase.md)
- [YouTube AI agent in Slack](https://chickpea.co/connectors/youtube-managed.md)
- [Zendesk AI agent in Slack](https://chickpea.co/connectors/zendesk.md)
- [All connectors](https://chickpea.co/connectors.md)

## Try Chickpea
- Site: https://chickpea.co/
- Deploy to Cloudflare: https://deploy.workers.cloudflare.com/?url=https://github.com/pejmanjohn/chickpea
- Source, Apache 2.0: https://github.com/pejmanjohn/chickpea
- Docs: https://docs.chickpea.co
