Scaleforge Meta Ads MCP server
io.github.Mike25app/scaleforge-mcp-meta-ads·v0.2.3Meta Ads MCP by ScaleForge — control Facebook & Instagram Ads via Graph API v24.0. 32 tools.
0 stars90 downloads/wk
Reviews
Write oneNobody has reviewed Scaleforge Meta Ads yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Scaleforge Meta Ads tools (32, 15 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
activate_campaigns_batchwrite actionWRITE (BULK): Activate many campaigns in one Batch API call. BEFORE activation we run
create_ad_creativewrite actionWRITE: Create a single-text ad creative from an `object_story_spec`. Pass page_id plus
create_ad_creative_with_asset_feedwrite actionWRITE: Create a DYNAMIC (multi-text) creative using `asset_feed_spec`. Meta will auto-
create_adsetwrite actionWRITE: Create an ad set under a campaign. Default status is PAUSED. `targeting` is a
create_campaignwrite actionWRITE: Create a new campaign. Default status is PAUSED (recommended — set ACTIVE only
delete_adwrite actionWRITE: Hard-delete an ad. Prefer update_ad status=ARCHIVED to keep history.
delete_adsetwrite actionWRITE: Hard-delete an ad set (and its ads). Prefer update_adset status=ARCHIVED to keep history.
delete_campaignwrite actionWRITE: Hard-delete a campaign (and its ad sets / ads). Prefer update_campaign with
get_adGet a single ad by ID. Returns full creative + issues + preview link.
get_ad_accountGet detailed info for a single Ad Account: status, spend cap, balance, funding source,
get_ad_insightsPull performance metrics for ONE ad. Same fields/breakdowns as get_campaign_insights.
get_ads_volumePRE-FLIGHT CHECK: Get per-Page ads-running-or-in-review counts and limits for an ad
get_adsetGet a single ad set by ID. Returns default fields plus anything in `fields`.
get_adset_insightsPull performance metrics for ONE ad set. Same fields/breakdowns as get_campaign_insights.
get_campaignGet a single campaign by ID. Returns all default fields plus anything in `fields`.
get_campaign_insightsPull performance metrics for ONE campaign. Default fields: spend, impressions, clicks,
get_creativeGet a single ad creative by ID.
get_pbiaGet (or auto-create) a Page-Backed Instagram Account for a Facebook Page. Use this
list_ad_accountsList Meta Ad Accounts accessible to the current access token. Returns id (act_XXX),
list_adsList ads. Pass either `ad_account_id` (all ads in account), `adset_id` (ads in one ad set),
list_adsetsList ad sets. Pass either `ad_account_id` (lists all adsets in account) OR
list_campaignsList campaigns in an ad account. Returns id, name, status, objective, daily_budget,
list_creativesList ad creatives in an account. Returns id, name, object_story_spec, asset_feed_spec,
list_pagesList Facebook Pages the current user/System User manages. Each row has id, name,
pause_campaigns_batchwrite actionWRITE (BULK): Pause many campaigns in a single Meta Batch API call (up to 50/request;
search_ads_librarySearch Meta's public Ad Library for competitive research. Returns active and inactive
update_adwrite actionWRITE: Update an ad's name, status, or swap its creative. To replace the creative pass
update_adsetwrite actionWRITE: Update any mutable field on an ad set (status, bid_amount, daily_budget,
update_bids_batchwrite actionWRITE (BULK): Update `bid_amount` on many ad sets in one Batch API call. Input is an
update_campaignwrite actionWRITE: Update any mutable field on a campaign (name, status, daily_budget,
upload_imagewrite actionWRITE: Upload an image to an ad account. Returns {images: {filename: {hash}}}. The
upload_videowrite actionWRITE: Upload a video to an ad account. Returns {id, title}. Prefer `file_url` (remote
Public scan report
scanner v0.1.9 · 2026-09-27 · same rubric, same numbers if you re-run it
- Code scan29 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 155 days ago8/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How Scaleforge Meta Ads compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 72/100
- higher than 38% of 48,273 servers
- Tools
- 32
- the typical server has 7
- Tools that change things
- 47%
- typical: 0%. Fewer write tools means less an agent can break
- Downloads a week
- 90
- more than 62% of 11,915 servers with a package
What its tools let an agent do: 17 read · 6 create · 6 change · 3 delete
Install Scaleforge Meta Ads in Claude Code, Cursor or VS Code
Runs npx -y @getscaleforge/mcp-meta-ads on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add scaleforge-mcp-meta-ads -- npx -y @getscaleforge/mcp-meta-ads
What the publisher says
From the Scaleforge Meta Ads repository's README, as published. We do not edit it. Read it on GitHub
Meta Ads MCP by ScaleForge
Control Facebook & Instagram Ads from Claude, ChatGPT, Cursor, or any MCP-compatible agent.
Direct Meta Graph API v24.0 wrapper. 32 tools. No backend required — just bring your own Meta access token.
The problem
Meta's Marketing API is powerful but punishing. Anyone who's tried to automate Meta Ads has run into these five walls:
- Rate-limit whack-a-mole (error code #17). Your script hits User request limit reached halfway through a launch and leaves campaigns in a half-configured state. Meta's per-account budget of calls resets over 5 minutes, but nothing in the API tells you that without context.
- Token expiry chaos. User access tokens from the Graph API Explorer die every ~2 hours. You fix a bug, come back from lunch, and every request is suddenly (#190) Error validating access token.
- v22 → v24 deprecations (Sept 2025). instagramactorid → instagramuserid, degreesoffreedomspec is gone entirely, assetfeed_id has been deprecated since v3.1. Copy-pasted sample code from Stack Overflow breaks silently.
- Image hashes are per-ad-account. An image uploaded on Account A cannot be used on Account B — you get Image Not Found on the second account. Video IDs are global, but image hashes are not. This trips up 100% of first-time multi-account automations.
- The 250-ads-per-Page cap. Meta limits ads-running-or-in-review per Page (not per account) — and this limit is shared across every account using that Page. Overshoot and the 251st ad silently fails review.
The solution
This MCP is a thin, typed wrapper over Meta's Graph API with those five pains baked out:
- Auto-batch for bulk ops (pausecampaignsbatch, activatecampaignsbatch, updatebidsbatch) — up to 50 ops per HTTP request, chunked automatically. Sidesteps rate-limit code #17 for bulk work.
- Pre-flight adsvolume check** before every bulk activation — warns you when a Page is near the 250-ad cap, per ad account, before Meta silently fails the reviews.
- Enhanced error messages with actionable links — when your token expires or a rate limit fires, the MCP tells your agent exactly what to do (create a System User token, wait 5 min, etc.).
- v24.0 everywhere — current field names, no deprecated spec shapes.
- PBIA auto-provisioning (get_pbia) — when a Page has no linked Instagram account, the MCP creates a Page-Backed Instagram Account on demand so IG placements work.
No ScaleForge backend is in the chain. Your agent → this MCP → https://graph.facebook.com/v24.0/*. That's it.
Hosted endpoint (no install)
Use the ScaleForge-hosted Streamable HTTP endpoint — zero install, nothing to run locally:
- Smithery listing: https://smithery.ai/server/kirichyk-misha/meta-ads (one-click install for Claude Desktop, Cursor, Windsurf, Continue, ChatGPT Desktop — Smithery prompts for your Meta token, writes the config).
- Direct URL for custom clients: https://getscaleforge.com/mcp (MCP Streamable HTTP). Supply your token via Smithery session config or Authorization: Bearer header.
Prefer a local npm install? Use the stdio package below.
Quick start — pick one
Smithery (easiest, auto-configures the client)
npx -y @smithery/cli install @getscaleforge/mcp-meta-ads --client claude
# also: --client cursor | --client windsurf | --client continueSmithery will prompt you for the Meta access token and write the config file.
Claude Code CLI
claude mcp add scaleforge \
--env META_ACCESS_TOKEN=YOUR_TOKEN \
-- npx -y @getscaleforge/mcp-meta-adsVerify with claude mcp list.
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Scaleforge Meta Ads: common questions
- Is Scaleforge Meta Ads MCP server safe?
- Mostly: it is graded B (72/100). Read the Scaleforge Meta Ads safety report
- How do I install Scaleforge Meta Ads?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Scaleforge Meta Ads need an API key?
- Yes. The registry entry asks for
META_ACCESS_TOKEN. - Is Scaleforge Meta Ads maintained?
- The last commit was 191 days ago (2026-04-25). The latest release is v0.2.3.
- How does Scaleforge Meta Ads compare with other MCP servers?
- safety score 72/100 (higher than 38% of 48,273 servers); tools 32 (the typical server has 7); tools that change things 47% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.