MCP.Market

Scaleforge Meta Ads MCP server

by Mike25app·io.github.Mike25app/scaleforge-mcp-meta-ads·v0.2.3

Meta Ads MCP by ScaleForge — control Facebook & Instagram Ads via Graph API v24.0. 32 tools.

B72/100grade B
What users say
No reviews yet
Be the first
Safety scan
B72/100

full report

Adoption
New

0 stars90 downloads/wk

Reviews

Write one

Nobody 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 posts

Read from the package source without running it. The installed server may list more.

  • activate_campaigns_batchwrite action

    WRITE (BULK): Activate many campaigns in one Batch API call. BEFORE activation we run

  • create_ad_creativewrite action

    WRITE: Create a single-text ad creative from an `object_story_spec`. Pass page_id plus

  • create_ad_creative_with_asset_feedwrite action

    WRITE: Create a DYNAMIC (multi-text) creative using `asset_feed_spec`. Meta will auto-

  • create_adsetwrite action

    WRITE: Create an ad set under a campaign. Default status is PAUSED. `targeting` is a

  • create_campaignwrite action

    WRITE: Create a new campaign. Default status is PAUSED (recommended — set ACTIVE only

  • delete_adwrite action

    WRITE: Hard-delete an ad. Prefer update_ad status=ARCHIVED to keep history.

  • delete_adsetwrite action

    WRITE: Hard-delete an ad set (and its ads). Prefer update_adset status=ARCHIVED to keep history.

  • delete_campaignwrite action

    WRITE: Hard-delete a campaign (and its ad sets / ads). Prefer update_campaign with

  • get_ad

    Get a single ad by ID. Returns full creative + issues + preview link.

  • get_ad_account

    Get detailed info for a single Ad Account: status, spend cap, balance, funding source,

  • get_ad_insights

    Pull performance metrics for ONE ad. Same fields/breakdowns as get_campaign_insights.

  • get_ads_volume

    PRE-FLIGHT CHECK: Get per-Page ads-running-or-in-review counts and limits for an ad

  • get_adset

    Get a single ad set by ID. Returns default fields plus anything in `fields`.

  • get_adset_insights

    Pull performance metrics for ONE ad set. Same fields/breakdowns as get_campaign_insights.

  • get_campaign

    Get a single campaign by ID. Returns all default fields plus anything in `fields`.

  • get_campaign_insights

    Pull performance metrics for ONE campaign. Default fields: spend, impressions, clicks,

  • get_creative

    Get a single ad creative by ID.

  • get_pbia

    Get (or auto-create) a Page-Backed Instagram Account for a Facebook Page. Use this

  • list_ad_accounts

    List Meta Ad Accounts accessible to the current access token. Returns id (act_XXX),

  • list_ads

    List ads. Pass either `ad_account_id` (all ads in account), `adset_id` (ads in one ad set),

  • list_adsets

    List ad sets. Pass either `ad_account_id` (lists all adsets in account) OR

  • list_campaigns

    List campaigns in an ad account. Returns id, name, status, objective, daily_budget,

  • list_creatives

    List ad creatives in an account. Returns id, name, object_story_spec, asset_feed_spec,

  • list_pages

    List Facebook Pages the current user/System User manages. Each row has id, name,

  • pause_campaigns_batchwrite action

    WRITE (BULK): Pause many campaigns in a single Meta Batch API call (up to 50/request;

  • search_ads_library

    Search Meta's public Ad Library for competitive research. Returns active and inactive

  • update_adwrite action

    WRITE: Update an ad's name, status, or swap its creative. To replace the creative pass

  • update_adsetwrite action

    WRITE: Update any mutable field on an ad set (status, bid_amount, daily_budget,

  • update_bids_batchwrite action

    WRITE (BULK): Update `bid_amount` on many ad sets in one Batch API call. Input is an

  • update_campaignwrite action

    WRITE: Update any mutable field on a campaign (name, status, daily_budget,

  • upload_imagewrite action

    WRITE: Upload an image to an ad account. Returns {images: {filename: {hash}}}. The

  • upload_videowrite action

    WRITE: 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

no findings
  • 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
Overall 72/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

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
Add to Cursor

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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 continue

Smithery 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-ads

Verify 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.