Connect Meta Ads to Cursor

Meta Ads in Cursor

Cursor reaches the Meta Ads accounts of one Adrails workspace through the MCP server, from the editor, for one project or all of them. It reads ad accounts, campaigns, ad sets, ads and their results, with the Pages and pixels an ad needs. Every launch, pause or budget change it prepares is a proposal you apply in Adrails, never something Cursor does on its own.

Reviewed Oct 4, 2026

Meta Ads tools

What Cursor can ask Adrails about Meta Ads

What Cursor can ask Adrails about Meta Ads
ToolWhat it returnsExample question
reporting_overviewSpend, attributed revenue and named conversion events for the connected accounts, each in its latest synchronized window or over an exact period of at most 93 daysWhat did every account spend last month, and what did it return?
performance_periodOne account's spend, results, revenue, ROAS, CPA, CTR, CPC, CPM, reach and frequency over an exact date range, at the account, campaign, ad set or ad level, with a second range to compareCompare last week with the week before at the ad set level on the main account.
performance_diagnoseTwo equal past periods of one Meta account compared from its saved snapshot: coverage, changes, facts, unknowns and what to verify nextWhy did CPA rise in September compared with August?
campaigns_structureHow the account is built from the last sync: campaigns with status, budget and bidding, their ad sets, and ads with format, copy, final URL and reviewShow me the Prospecting campaign with its ad sets and ads.
creative_insightsMeta ads grouped by the image or video they use, across ads and accounts: performance, winners, fatigue, repeated use and missing metadataWhich creatives are fatiguing across my accounts?
budget_recommendMaintain, increase, reduce or investigate for each campaign or ad set that owns a budget, from the latest two complete seven-day windows, with no amount suggestedWhich budgets should I raise or cut this week?
findings_reviewWhat the rule engine found on the selected campaigns, each finding with its evidence, snapshot date, objective, currency and severityWhat did the rules flag on my campaigns since the last sync?
launch_briefWhat a clean Meta launch still needs, as questions with options: account, objective, pixel and event, countries, budget, dates, Page, link and copy; Adrails keeps the answers for this connectionI want a Sales campaign for France from this Drive folder: what is still missing?

From the Adrails MCP tools reference and the Meta Ads integration documentation on 4 October 2026.

01

What Cursor reads from Meta Ads

Meta Ads is connected once in Adrails, under Ad accounts, by signing in with the Facebook profile that can access your Business Portfolio and switching on the ad accounts to work with. Adrails reads ad accounts, campaigns, ad sets, ads and their results, with the Pages and pixels an ad needs, and Cursor reaches the same data through the MCP server, with your sign-in and inside the one workspace you chose.

In Cursor, the Meta Ads reads come from 8 tools: reporting_overview, performance_period, performance_diagnose, campaigns_structure, creative_insights, budget_recommend, findings_review and launch_brief. The table above says what each one returns and gives a question to type as it is. Every result comes back twice, as exact data for the model and as a readable table for you, so a figure Cursor states can be traced to the call that produced it.

02

Connect Cursor

Cursor reads remote MCP servers from a mcp.json file, .cursor/mcp.json in a project or ~/.cursor/mcp.json for every project, one entry with a url. Adrails gives out no client ID or secret, so the entry needs no auth block: the client registers itself and the sign-in happens in your browser, and Cursor's Customize page can switch the server off without removing it.

Every client uses the same server URL, https://adrails.ai/api/mcp, and the same sign-in: Cursor registers itself, you sign in to Adrails, then choose the workspace and the permissions on the consent screen. Meta Ads needs nothing on the Cursor side, since it is already connected in that workspace under Ad accounts.

  • 1. Add Adrails to .cursor/mcp.json or ~/.cursor/mcp.json: { "mcpServers": { "adrails": { "url": "https://adrails.ai/api/mcp" } } }
  • 2. Sign in when Cursor asks: your browser opens Adrails
  • 3. Choose the workspace and the permissions, and choose Allow access
  • 4. Back in Cursor, check that the Adrails tools are listed and ask your first question

03

Three questions to start with

Ask in your own words: Cursor picks the tool, Adrails returns the figures, and Cursor's model does the reasoning, so a tool call uses no agent credit. Each result carries the exact data in structuredContent.result and the same figures as readable tables.

A question can be narrowed to some of the workspace's ad accounts with accountIds, never widened to accounts outside it. A result is at most 256,000 bytes, so a long period at the ad level is asked for in shorter ranges or one campaign at a time.

  • How did my Meta accounts do last week compared with the week before?
  • Which ads have run the longest on the same creative, and are they fatiguing?
  • Prepare a 20% budget increase on my best campaign, with the figures behind it.

04

What happens when you ask for a change

No tool creates, edits, pauses, switches on or rebudgets a campaign, ad set or ad by itself. In Cursor, campaigns_launch builds the campaign, ad sets and ads of a complete launch_brief, all paused; campaigns_change_budget raises or lowers a daily budget by an amount or a percentage, at most 30% in one change; campaigns_pause pauses a campaign, ad group or ad by the ID an earlier read returned.

Then campaigns_set_status pauses or resumes one entity and measures the result after 24 hours, 3 days and 7 days; campaigns_duplicate_to_draft duplicates a campaign paused, replacing one source ad with 3 to 5 copy variants if you ask; campaigns_split_test creates a split test from a running ad set or ad, with one to three new variants that change one variable, paused. Each of them returns a proposal: a preview of the exact change and a link to the Review advertising change page in Adrails, where you, signed in as an owner or admin of the workspace, apply it or decline it. Adrails reads Meta Ads again first and applies the change once, or blocks it if the entity moved in the meantime.

A launch is built paused, switching it on is a second proposal that lists every budget that starts spending, an applied change can be undone while the platform still matches what Adrails wrote, and a proposal expires 30 minutes after it is prepared. Cursor asks before it runs an MCP tool by default; that prompt is Cursor's own setting, and saying yes to it prepares the change without applying it, which happens on its page in Adrails.

05

Permissions, cadence and limits

Read workspace data is required and covers every ad account of the workspace; Prepare advertising changes is a separate permission that only an owner or admin can grant, and a permission never goes beyond your role. A member who connects Cursor reads Meta Ads but sees no write tool.

Structure, findings and overviews come from the account's last synchronization, and performance_period reads an exact date range from Meta. accounts_list shows each account's last snapshot, and an owner or admin who granted Manage integrations can queue a refresh with meta_sync. If a change is refused for a missing permission, reconnect Meta from Ad accounts so it asks again for ads_management.

Calls on one connection run one at a time, at most 60 a minute per access token, and a connection works in the one workspace you chose at consent: to work in another, connect Cursor again and choose it. Revoke Cursor under Your connections on the MCP page in Adrails; removing the server in Cursor does not revoke it there.

FAQ

Common questions

Does Cursor need an API key for Meta Ads?

No. Meta Ads is connected once in Adrails, under Ad accounts, by signing in with the Facebook profile that can access your Business Portfolio and switching on the ad accounts to work with. Cursor signs in to Adrails with OAuth, with no client ID or secret to copy, and tool results never contain provider credentials or Adrails tokens.

Can Cursor change my Meta Ads data?

Not by itself. Cursor prepares the exact change, and an owner or admin signed in to Adrails applies it from the Review advertising change page; the prompt Cursor shows in the editor before each MCP tool is its own setting and applies nothing.

How fresh is the Meta Ads data?

Structure, findings and overviews come from the account's last synchronization, and performance_period reads an exact date range from Meta. accounts_list shows each account's last snapshot, and an owner or admin who granted Manage integrations can queue a refresh with meta_sync.

Can I connect several Meta Ads accounts?

Yes. You can connect several Facebook profiles and choose which ad accounts enter the workspace; a Cursor connection covers every one of them, and accountIds narrows a call to some.