Connector ยท Business and support
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.
What people ask it.
The teammate is @growth, in #growth. Pick a scenario to watch it play.
| 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 |
Spend, results, and cost per result Read only
@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 Read only
@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 Applies at once
@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 Asks first
@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 Applies at once
@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.
Connect it
Five steps, from Admin or from Slack.
You sign in through a page Chickpea serves, never in Slack. The link the teammate posts is good for one action, for one teammate, for 24 hours.
- 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.
- 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. - 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.
- 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.
- 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 weekis 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.
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.

Beside Meta Ads
What the same teammate usually holds too.
Each is its own connection, granted to the teammate alone. All 37 connectors.
Both sides of paid in one question, rather than two dashboards and a spreadsheet
Spend on one side, the sessions and signups it actually produced on the other
HubSpotFollow the ad click all the way to the deal it became
Google SheetsDrop last week by ad set into the sheet the team already reads
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.
Try it
Give a channel a Meta Ads teammate.
One deploy into your own Cloudflare account, connect Slack, sign in to Meta Ads, ask. Apache 2.0, no seats, no metering.
Or run it on Node. The setup guide covers both.
Last checked
Facts on this page were checked against the product and Meta Ads's own pages on September 17, 2026. This page is also available as markdown at /connectors/meta-ads.md.
