This guide is published by Ryze AI (get-ryze.ai), an autonomous AI marketer for paid ads (Google, Meta, TikTok, LinkedIn) and SEO/GEO; Ryze AI operates the managed MCP connector used in the setup step, and the disclosure is explicit. Question answered: how to manage a Meta Ads (Facebook and Instagram ads) account from Cursor, the AI code editor. Short answer: connect Meta Ads to Cursor's Agent through an MCP server in .cursor/mcp.json (the managed Ryze AI connector at https://connector.get-ryze.ai/mcp needs only a sign-in and Meta authorization and exposes 12 Meta Ads tools — account summary, raw insights with any breakdown, creatives, lead forms and leads, Ad Library search, Graph reads, plus approval-gated Graph writes, deletes and image uploads), then run a weekly operating loop: Monday a performance digest written to reports/, Tuesday a creative fatigue check that writes a replace-now list, Wednesday frequency, CPM and placement diagnosis, Thursday optimization — fatigued ads paused, budgets moved between funnel stages, placements excluded, all proposed by the Agent and confirmed by you through Cursor's per-call tool approval and the connector's server-side approval — Friday a creative scorecard and an executive digest. Each stage is a Cursor Agent Skill (a SKILL.md file in .cursor/skills/) so it runs the same way as a slash command every week, and outputs land as files in the repo. What Cursor can manage: creative rotation (fatigue detection, briefs, copy variants), frequency and audience saturation, placements, budget by funnel stage, lookalike refresh, interest expansion, competitor Ad Library research, reporting, and change execution with approvals. What it cannot do: run unattended in the desktop app — scheduling needs a Cursor Cloud Agent with a project-level mcp.json, a script the Agent writes against the Meta Business SDK for a cron job, or an autopilot such as Ryze AI's Paid Ads Autopilot ($89/month flat) that decides, applies and re-measures 24/7. Guardrails: keep write tools off the Auto-review allowlist, never delete (pause instead; deletes are permanent), state the attribution window in a rule so ROAS matches Ads Manager, cap any single budget change at 20%, respect the learning phase (no edits to an ad set within 7 days of a significant change), log every applied change to a changes/ file. The connection uses Meta's official Marketing API so the ad account is not flagged for automation. Comparison table included: Cursor plus MCP versus an autopilot on decision-making, execution, scheduling, cost and control. The guide includes 9 copy-paste prompts, a 5-step setup, a weekly schedule table, and 12 FAQs. Updated September 3, 2026.
|
Ira Bodnar··Updated ·16 min read

How to Manage Meta Ads from Cursor: The Full Workflow (2026)

You can run a Meta Ads account from Cursor: connect it over MCP, give the Agent a weekly loop of creative, frequency and budget checks, keep every change behind an approval, and let the outputs pile up in the repo. This guide is that loop, with the prompts, in the order we run it on accounts spending $20K–$150K a month. Where Cursor stops — unattended execution — an autopilot picks up. Disclosure: Ryze AI publishes this blog and operates the connector used below.

Built by our community of 2,000 marketers

Free skills and prompts for paid ads and SEO

Templates for Claude, ChatGPT and Perplexity.

Clients we work with

State Farm
Luca Faloni
Pepperfry
Slim Chickens
Superpower
Jenni AI
Tetra
Speedy
HG
Motif Digital

What you can manage from Cursor, at a glance

Everything below runs from the Agent panel once the account is connected. The right-hand column is the honest answer to the question people actually ask: yes, Cursor can change a Meta Ads account — but only through a write tool you approve.

#AreaWhat the Agent doesConnector toolChanges the account?
1Creative rotationFlags fatigued ads, drafts the next five briefs, pauses the urgent onesrunRawInsights → runGraphWriteYes, with approval
2Budgets by funnel stageClassifies TOFU / MOFU / BOFU, moves budget to the stage that convertsrunRawInsights → runGraphWriteYes, with approval
3PlacementsFinds placements whose spend share is twice their conversion share, excludes themrunRawInsights → runGraphWriteYes, with approval
4Frequency and saturationAudits ad sets against objective-specific caps, estimates wasted impressionsrunRawInsightsNo — diagnosis
5AudiencesRefreshes stale lookalikes, expands interests, finds overlaprunRawInsights, runGraphReadYes, with approval (new ad sets)
6Ad copyWrites eight one-variable variants of the winning copy to a filelistCreatives, getCreativeNo — you paste
7Competitor researchAd Library scan: format mix, hooks, refresh ratesearchAdLibraryNo
8ReportingWeekly digest, creative scorecard, audience insights — written to reports/getAccountSummary, runRawInsightsNo

Rows 1 to 3 are the management loop; rows 4 to 8 feed it. On Meta the loop is creative-led — the algorithm does the bidding, so the levers you actually pull are what runs, where it runs and how much it gets.

The short answer: add the Meta Ads MCP server to .cursor/mcp.json, install the 15 Cursor skills for Meta Ads, and run them on a weekly schedule — digest Monday, creative fatigue Tuesday, frequency and placements Wednesday, changes Thursday, scorecard Friday. Every change is proposed by the Agent and confirmed by you. If you want the changes to happen without you, that is an autopilot's job, not Cursor's. Setup details: how to connect Cursor to Meta Ads.

Step 1: connect the account (about 2 minutes)

Cursor reads MCP servers from .cursor/mcp.json in the project or ~/.cursor/mcp.json in your home directory. A remote server needs only a url. The managed Ryze AI connector is the fastest route because it authenticates with a sign-in and Meta authorization, needs no developer app, and holds no secrets in the file, so the config can be committed for the team.

.cursor/mcp.json
{ "mcpServers": { "ryze": { "url": "https://connector.get-ryze.ai/mcp" } } }

Save the file and confirm the server

Open Cursor Settings → Tools & MCP. The ryze server shows its status and 12 Meta Ads tools (plus Google Ads, TikTok, GA4, Search Console and Shopify toolsets on the same URL). Toggle it on if it is grey.

Sign in and authorize Meta

Cursor opens the sign-in page in the browser. Connect Meta and tick the ad accounts and Pages the Agent should see in Meta's permission dialog. This uses the official Marketing API, so nothing runs on your personal profile and the account is not flagged for automation.

Add one rule

Create .cursor/rules/meta-ads.mdc with the facts every prompt needs: the ad account ID, the attribution window you report on (7-day click, 1-day view, or both), the conversion event that counts, the target CPA or ROAS, and three standing orders — never delete, always pause; never touch an ad set inside its learning phase; never apply a write without showing the list first.

Install the skills

Unzip the 15 SKILL.md files into .cursor/skills/ (Cursor also reads .claude/skills/). Restart. Each one is now a slash command: /creative-fatigue, /weekly-digest, /funnel-budget and so on.

Test with a read

Ask the Agent for a 30-day summary. Approve the getAccountSummary call when Cursor asks. If ROAS matches Ads Manager under the attribution window in your rule, you are connected.

Self-hosting is possible with an open-source Meta Ads MCP server as a stdio entry; it needs a reviewed Meta developer app and a long-lived token. The five routes are ranked in how to connect Cursor to Meta Ads.

Step 2: the weekly operating loop

Meta accounts fail gradually: creative decays, frequency creeps, one placement quietly eats a third of the budget. The defense is the same five checks every week, in the same order, with the results written down. Each row is one slash command and about ten minutes, most of it reading the output.

DayJobSkillOutput fileWrites to the account?
MondayPerformance digest vs last week/weekly-digestreports/digest-{date}.mdNo
TuesdayCreative fatigue: CTR down >20% from peak, frequency >3/creative-fatiguereports/fatigue-{date}.csvThursday, with approval
WednesdayFrequency caps, CPM anomalies, placement money pits/frequency-audit, /cpm-anomaly, /placement-analyzerreports/diagnosis-{date}.mdNo
ThursdayApply: pause fatigued ads, move budget between funnel stages, exclude placements/funnel-budget + runGraphWritechanges/{date}.mdYes, with approval
FridayCreative scorecard and next-sprint briefs/creative-scorecard, /creative-briefsreports/scorecard-{date}.md, briefs/{date}.mdNo
MonthlyAudience overlap, lookalike refresh, interest expansion, competitor Ad Library, ROAS by placement/audience-overlap, /lookalike-refresh, /interest-expander, /competitor-ad-library, /roas-by-placementreports/monthly-{month}.mdNo

Two things make the loop stick. The outputs are files, so Thursday's change run reads Tuesday's fatigue list rather than re-deriving it, and Friday's briefs feed the designers directly. And the changes/ folder is an audit trail: what was paused, what budget moved, why, and what CPA did afterwards — which is what you need when someone asks two weeks later why ROAS moved.

Step 3: diagnose — the three prompts that find the money

Run diagnostics before touching anything. On Meta the three that matter are creative fatigue, frequency and placements; between them they explain most CPA drift. These are the Tuesday and Wednesday jobs; the full skill files have the complete instructions.

Creative fatigue (Tuesday)

Prompt
/creative-fatigue — pull ad-level insights for the last 14 days with a daily breakdown from the ryze server: impressions, CTR, frequency, CPM, spend. Classify every active ad as URGENT (CTR down >20% from peak and frequency >3), WARNING or HEALTHY. Write the table to reports/fatigue-{today}.csv sorted by spend and name the three ads to replace first.

Frequency and CPM (Wednesday)

Prompt
/frequency-audit — for each active ad set pull objective, 7-day frequency, reach, CTR, CPA and daily CPM for 30 days. Apply the caps in my rule (prospecting warn >2.0 critical >3.0; retargeting warn >4.0 critical >6.0). Flag ad sets over cap, estimate wasted impressions, and flag any campaign whose CPM is more than 20% above its 14-day average with the likely cause. Write reports/diagnosis-{today}.md.

Placements (Wednesday)

Prompt
/placement-analyzer — break down the last 30 days by publisher_platform and platform_position, separately for prospecting and retargeting campaigns. Show spend share vs purchase share, CPA and ROAS per placement. Flag any placement whose spend share is more than twice its purchase share and estimate the monthly saving from excluding it. Append to reports/diagnosis-{today}.md.

State the attribution window in every reporting prompt or put it in the rule; it is the reason numbers do not match Ads Manager nine times out of ten. And read every diagnosis bottom-up: the ranked list is the headline, the evidence lines tell you whether the Agent reasoned from your numbers.

Step 4: optimize — ship changes with two approvals

Thursday is the only day the account changes. Three prompts, each of which ends with the Agent showing a list and waiting. Cursor asks before every MCP tool call; the connector's write tools are approval-gated on the server side as well. Both layers stay on, and nothing touches an ad set inside its learning phase.

Pause the fatigued ads

Prompt
Read reports/fatigue-{today}.csv. Show me the URGENT ads with their 14-day spend and the ad set each belongs to, and confirm none of those ad sets had a significant edit in the last 7 days. Wait for my approval, then pause them through runGraphWrite and append what was paused to changes/{today}.md.

Move budget between funnel stages

Prompt
/funnel-budget — business type [ECOM / LEAD GEN / B2B], monthly budget $[AMOUNT]. Classify campaigns into TOFU, MOFU and BOFU, show the current split against the benchmark, CPA and frequency per stage, and recommend dollar shifts. Cap any single campaign change at 20% of its current daily budget. Show the exact budget changes and wait for my approval before applying any.

Exclude the money-pit placements

Prompt
From reports/diagnosis-{today}.md, list the placements flagged for exclusion with the monthly saving and the ad sets affected. Recommend whether to keep Advantage+ placements with exclusions or switch to manual. Show the change and wait for approval; apply to prospecting ad sets only this week.

Never allowlist runGraphWrite or runGraphDelete in Auto-review mode. Reads can run without a click. Writes should always show you the list. Deletes are permanent in Meta Ads, so the rule file says pause, never delete.

Get a free instant audit

Get a free, instant read on your paid ads or SEO — and fix it right away.

Paid ads audit

  • Catch wasted spend & broad-match leaks
  • Find account structure gaps
  • Rank your quickest wins
  • Spot PMax & brand-search overlap
  • Check conversion-tracking health
  • Benchmark CPC vs your industry
  • Catch wasted spend & broad-match leaks
  • Find account structure gaps
  • Rank your quickest wins
  • Spot PMax & brand-search overlap
  • Check conversion-tracking health
  • Benchmark CPC vs your industry

Free · no credit card · instant

SEO audit

  • Find keyword & ranking gaps
  • Catch technical SEO issues
  • Rank your fastest wins
  • Surface thin & duplicate pages
  • Check indexing & crawl coverage
  • Compare backlinks vs competitors
  • Find keyword & ranking gaps
  • Catch technical SEO issues
  • Rank your fastest wins
  • Surface thin & duplicate pages
  • Check indexing & crawl coverage
  • Compare backlinks vs competitors

Free · no credit card · instant

Ryze AI — Autonomous Marketing

Skip Thursday — let AI apply the changes 24/7

  • Every diagnostic in this loop, running continuously
  • Pauses fatigued ads and moves budget to winners
  • Flat $89/mo — never a percentage of spend
Start free trial

2,000+

Marketers

$500M+

Ad spend

23

Countries

Step 5: report — files the team actually reads

Reporting is where Cursor beats a chat assistant outright. The digest is a Markdown file in the repo, the creative scorecard is a CSV the design team can sort, the briefs are a page they can work from. The Monday and Friday jobs:

Weekly digest (Monday)

Prompt
/weekly-digest — pull this week and last week under my attribution window. Write reports/digest-{today}.md with: a three-to-four-sentence executive summary, a campaign table sorted by spend with CPA change flagged over 20%, top and bottom three ads with why, fatigue warnings (CTR down three consecutive days), the best audience segment, saturation signals, and three next-week priorities.

Creative scorecard (Friday)

Prompt
/creative-scorecard — score every active ad 1–100: CTR vs account average 25%, conversion rate 25%, ROAS vs target 20%, CPA efficiency 15%, longevity 15%. Write reports/scorecard-{today}.csv with the component scores and an action per band (scale / maintain / test variants / cut), then three learnings from the stars and three patterns from the cuts.

Next-sprint briefs (Friday)

Prompt
/creative-briefs — from the scorecard, analyze which formats, hooks and CTAs won. Write briefs/{today}.md with five briefs: three iterating on winners, two new concepts, each with format, hook, message, CTA, visual direction, aspect ratios and the data reason it should work.

One habit worth building: ask the Agent to append a one-line result to changes/ two weeks after every Thursday change (“paused 4 fatigued ads 2026-09-04: account CTR +11%, CPA -8%”). That closes the loop and turns the folder into the account's memory.

Step 6: automate — what Cursor can schedule and what it cannot

The desktop app runs when you are in it. Three ways to make the loop run without you, in increasing order of hands-off.

Cloud Agents

Scheduled reads in the cloud

Put mcp.json and the skills in the project's .cursor/ folder (user-level config is not copied to Cloud Agents) and trigger the digest and fatigue skills on a schedule. Best for Monday and Friday reports; keep writes on the desktop where you approve them.

Agent-written scripts

Cron jobs you own

Ask the Agent to turn a skill into a Python script against the Meta Business SDK. Needs a reviewed developer app and a long-lived token, and there is no approval layer — scripts that mutate do so the moment they run.

An autopilot

Decides, applies, re-measures

Ryze AI's Paid Ads Autopilot runs the whole loop — creative rotation, budgets, placements, anomalies — 24/7 on the same account with an approval mode and a change log, at $89/month flat. Cursor stays the analysis and reporting layer on top.

Do nothing

The honest baseline

Ten minutes a day in Cursor with the loop above is already more attention than most Meta accounts get. Automate when the loop is boring, not before.

Cursor + MCPAutopilot (Ryze AI)
Decides what to changeThe Agent proposes, you decideThe agent decides within your guardrails
Applies the changeWith your approval, ThursdayContinuously, approval mode optional
Runs unattendedOnly reads, via Cloud AgentsYes, 24/7
Re-measures and adjustsWhen you run the next skillAutomatically
OutputFiles in your repoChange log and reports in the app
CostCursor plan + free connector$89/month flat

Guardrails that keep this safe

Every one of these came from a mistake we made or watched someone make. Put them in the rule file so every skill inherits them.

  • Pause, never delete. Deletes are permanent in Meta Ads. The connector's delete tool only runs on an item-by-item approved list; the rule should say the Agent never asks for it.
  • Respect the learning phase. No edits to an ad set within seven days of a significant change, or the reset costs more than the fix. Make the Agent check edit history before proposing.
  • Show the list, then wait. Every write prompt ends with “wait for my approval”. Cursor's tool approval is the second gate; keep both.
  • Cap single changes at 20%. Budgets move in steps. A 35% funnel shift is three Thursdays, not one.
  • Name the attribution window. 7-day click vs 1-day view is the reason ROAS does not match Ads Manager. Put it in the rule.
  • Log everything to changes/. Date, what, why, and the two-week result. This is the file that saves you in the next budget review.
Alex M.

Alex M.

VP Growth
Multi-Brand Ecommerce Group

★★★★★

We had five channels and five people each defending their own budget. Handing allocation to Ryze AI cut blended CAC 27% in a quarter — not because the bidding got smarter, but because money finally moved to whichever channel was winning that week.

27%

Blended CAC reduction

5

Channels automated

12 weeks

To full autonomy

1,000+ marketers use Ryze

State Farm
Luca Faloni
Pepperfry
Jenni AI
Slim Chickens
Superpower

Automating hundreds of agencies

Speedy
Human
Motif
Broadplace
Directly
Caleyx
G2★★★★★4.9/5
TrustpilotTrustpilot stars

Cursor vs Claude vs Grok for running Meta Ads

All three connect to the same MCP server, so the data is identical. The difference is what happens to the output and where the work runs.

CursorClaudeGrok
Where it runsYour editor, files in a repoChat, Projects, CoworkChat, X app, Grok Build
SkillsSKILL.md as slash commandsSKILL.md in Claude Code, ProjectsSkills on grok.com, .md import
SchedulingCloud Agents (reads)Cowork scheduled runsGrok Build cron
Unique strengthScorecards and briefs as files the design team works fromDeepest analysis, longest connector historyNative X search for how audiences react to ads
Best forTeams that want an audit trail in GitMarketers who live in chatCreative research and social signals

The practical answer for most teams is to pick the tool they already have open. If that is Cursor, this guide is the workflow; the same loop exists for Claude and for Grok. Running Google as well? The Google version of this workflow is how to manage Google Ads from Cursor.

Frequently asked questions

Can I manage Meta Ads from Cursor?

Yes. Connect the account through an MCP server in .cursor/mcp.json and the Agent can read insights with any breakdown, creatives and the Ad Library, draft briefs and copy, and pause ads, move budgets and exclude placements through approval-gated write tools. The managed Ryze AI connector needs only a sign-in and Meta authorization.

Can Cursor actually change my Meta Ads account?

Only through a write tool you approve. The managed connector exposes three — Graph writes for pausing, budgets and new ads, Graph deletes, and image uploads — each gated by your approval on the server side and by Cursor's own per-call tool approval. Keep both layers on and never allowlist writes in Auto-review mode.

Will running Meta Ads from Cursor get my account flagged?

No. Every route in this guide uses Meta's official Marketing API with proper permissions, which is the supported path. What gets accounts flagged is browser automation that mimics a human in Ads Manager. Nothing here runs on your personal profile.

What is the weekly workflow for running Meta Ads in Cursor?

Monday a performance digest, Tuesday a creative fatigue check that writes a replace-now list, Wednesday frequency, CPM and placement diagnosis, Thursday the changes — pause fatigued ads, move budget between funnel stages, exclude placements — with approvals, Friday a creative scorecard and next-sprint briefs. Monthly: audience overlap, lookalike refresh, interest expansion, competitor Ad Library and ROAS by placement.

Do I need to code to manage Meta Ads from Cursor?

No. The loop runs on skills — SKILL.md files invoked as slash commands — and plain-English prompts. The Agent writes any code it needs, such as a script to chart the scorecard. Coding becomes useful only if you want a cron job the Agent writes against the Meta Business SDK.

Can Cursor run the Meta Ads loop on a schedule?

Reads, yes: a Cloud Agent can run the digest and fatigue skills on a schedule if mcp.json and the skills are in the project's .cursor/ folder. Writes should stay on the desktop where you approve them. For unattended execution, an autopilot such as Ryze AI decides, applies and re-measures 24/7.

Is it safe to let the Cursor Agent touch a live account?

With guardrails, yes. Pause instead of delete (deletes are permanent), respect the seven-day learning phase, show every list before applying, cap single budget changes at 20%, name the attribution window in a rule, and log every change to a file. The connector enforces the delete rule; the rest belongs in .cursor/rules.

Which prompt should I run first?

Creative fatigue. It needs one tool call — ad-level insights for 14 days with a daily breakdown — and returns a replace-now list on the first run, which is the fastest CPA improvement available on Meta. Then the weekly digest, because it is the file the rest of the team will read.

How does Cursor compare to Claude for Meta Ads?

Same MCP server, same data. Claude is the stronger pure analyst and has the longer connector history; Cursor's edge is that every output is a file in a repo — fatigue lists, scorecards, briefs, change logs — with Git history the design team can work from. Teams that want an audit trail pick Cursor.

Can Cursor research competitors' Meta ads?

Yes, through a server with Ad Library search — the managed connector includes searchAdLibrary. Ask for a competitor's active ads in a country and the Agent summarizes count, format mix, repeated hooks and the longest-running creative, then files the brief in the repo for the next creative sprint.

What does it cost to manage Meta Ads from Cursor?

Your Cursor plan plus a free connector on the managed route. Self-hosting an open-source server is free but needs a reviewed Meta app. If you want execution without you in the loop, Ryze AI's Paid Ads Autopilot is $89/month flat at any spend level.

Where does an autopilot fit if I already run this loop in Cursor?

Underneath it. The autopilot handles the Thursday job continuously — creative rotation, budgets, placements, anomalies — with approval mode if you want it, and Cursor stays the diagnosis and reporting layer that writes the scorecard and the briefs. Most teams keep the Monday and Friday skills and retire Tuesday to Thursday.

Related guides

Ryze AI — Autonomous Marketing

Let AI run your Meta Ads

  • Connect your account in minutes
  • The agent decides, applies and re-measures 24/7
  • Approval mode if you want the final say
Start free trial

2,000+

Marketers

$500M+

Ad spend

23

Countries

Ryze AI — Meta Ads on autopilot

flat fee · free trial

Start free trial
Live results across
2,000+ clients

Paid Ads

Avg. client
ROAS
0x
Revenue
driven
$0M

SEO

Organic
visits driven
0M
Keywords
on page 1
48k+

Websites

Conversion
rate lift
+0%
Time
on site
+0%
Last updated: Sep 2, 2026
All systems ok
Ryze AI is a service operated by Meow AI, LLC. © 2026 Meow AI, LLC. All rights reserved.