Adbloop Meta Ads is a remote MCP server that gives an AI agent 23 tools, among them add_ad_to_adset, bulk_create_campaigns, bulk_create_multi_account. It answers at https://mcp.adbloop.com/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 10 of 10 times since 4 September 2026; the last check, on 17 October 2026, succeeded.
Meta Ads MCP: bulk-create Facebook & Instagram ads across accounts from Drive folders, guardrailed.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
add_ad_to_adset | Add a NEW ad (with creative) to an EXISTING ad set. Created PAUSED. Accepts either an existing creative_id, a library image_hash (this is where saved library creatives CAN be used), or ad copy fields. WRITES live. Inputs: adset_id, ad_name, creative_id, image_hash, website_url, primary_text |
bulk_create_campaigns | Create many Meta campaigns at once on ONE account (rate-limit-safe, validated). WRITES live. Honors plan limits, spend guardrails, and capacity. Auto-uses the correct Page/Instagram/pixel. Each campaign needs an imageUrl (public image, or D Inputs: meta_account_id, page_id, instagram_account_id, pixel_id, catalogId, productSetId |
bulk_create_multi_account | Launch the SAME campaign set across MULTIPLE ad accounts in one call (up to 5 accounts; chain calls for more). Each account gets its own currency-aware guardrails, capacity check (throttled accounts are skipped, not hammered), and correct P Inputs: account_ids, confirm, campaigns |
check_capacity | Check an ad account's current Meta API rate-limit headroom BEFORE a bulk run. Read-only. Returns GO/TIGHT/SPLIT/WAIT_OR_SPLIT/WAIT + utilization + regain minutes. Inputs: meta_account_id, campaign_count |
create_campaign | Create ONE Meta campaign (created PAUSED for review). Free-plan friendly — counts toward your monthly campaign limit. To launch many at once or from a Drive folder, use bulk_create_campaigns (Pro). Needs a public imageUrl (or Drive/Dropbox Inputs: meta_account_id, campaignName, objective, performanceGoal, conversionLocation, useCBO |
create_structured | Create ONE campaign with MULTIPLE ad sets and MULTIPLE ads each (1 campaign -> N ad sets -> M ads), image or video, including DPA/Catalog dynamic product ads. Created PAUSED. Honors spend guardrails. Pro feature. WRITES live. Inputs: meta_account_id, campaigns |
delete_campaigns | PERMANENTLY delete campaigns/ad sets/ads by ID. Irreversible — requires confirm:true. Use pause instead if unsure. Inputs: campaign_ids, meta_account_id, confirm |
estimate_bulk_create | Estimate how long bulk creation will take for N campaigns. Read-only. Inputs: count |
get_ad_accounts | List the Meta ad accounts connected to this Adbloop user, with the Page NAME + Instagram username + pixel each account uses. Use this to resolve a spoken account/page name to IDs. |
get_campaign_structure | Full tree of one campaign: its ad sets and every ad inside each. Read-only. Inputs: campaign_id, meta_account_id |
get_creative_library | List the user's saved creatives. NOTE: image_hash works with add_ad_to_adset, but bulk_create_campaigns needs a public imageUrl (or Drive/Dropbox link). Read-only. Inputs: limit |
get_guardrails | View the spend safety limits for an account. Read-only. Editable only by the owner in Adbloop settings. Inputs: meta_account_id |
get_insights | Rate-limit-safe Meta performance metrics (spend, impressions, clicks, CTR, leads, purchases, ROAS). Read-only. Inputs: meta_account_id, level, date_preset, since, until, campaign_id |
get_lead_forms | List the lead-gen forms available on a Facebook Page (for OUTCOME_LEADS campaigns). Read-only. Inputs: page_id, meta_account_id |
list_ads | List ads — across the account or inside one ad set. Includes creative preview info. Read-only. Inputs: meta_account_id, adset_id, limit |
list_adsets | List ad sets — across the account or inside one campaign. Shows budget, optimization goal, status. Read-only. Inputs: meta_account_id, campaign_id, limit |
list_campaigns | List existing campaigns with status, budget, effective status. Read-only. Inputs: meta_account_id, status_filter, limit, after |
list_drive_folder | List the images/videos inside a PUBLIC Google Drive folder (must be shared as 'Anyone with the link'). Returns each file's name and a Drive URL usable directly as imageUrl in bulk_create_campaigns. Perfect for 'create one campaign per image Inputs: folder_url |
pause_campaigns | Pause campaigns/ad sets/ads by ID. Reversible. Inputs: campaign_ids, meta_account_id |
resume_campaigns | Resume (activate) paused campaigns/ad sets/ads by ID. Turns spend ON. Inputs: campaign_ids, meta_account_id |
search_targeting | Search Meta's targeting interests by keyword (e.g. 'yoga', 'small business owners'). Returns interest names, IDs, and audience sizes — useful when planning campaigns. Read-only. Inputs: query, meta_account_id |
update_campaign_budget | Change the daily budget (and/or rename) of an existing campaign or ad set. The account is required so the new budget is checked against your spend guardrails. WRITES live. Inputs: entity_id, daily_budget, name, meta_account_id |
validate_campaigns | Pre-flight check campaign rows BEFORE creating. Read-only. Per-row verdict: will_create / will_create_with_changes / will_fail. Pass meta_account_id to also check spend guardrails. Inputs: meta_account_id, campaigns |
Every block below points at https://mcp.adbloop.com/mcp. Pick your client and copy.
claude mcp add --transport http adbloop-meta-ads https://mcp.adbloop.com/mcp
{
"mcpServers": {
"adbloop-meta-ads": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.adbloop.com/mcp"]
}
}
}{
"mcpServers": {
"adbloop-meta-ads": {
"url": "https://mcp.adbloop.com/mcp"
}
}
}{
"servers": {
"adbloop-meta-ads": {
"type": "http",
"url": "https://mcp.adbloop.com/mcp"
}
}
}{
"context_servers": {
"adbloop-meta-ads": {
"url": "https://mcp.adbloop.com/mcp"
}
}
}{
"mcpServers": {
"adbloop-meta-ads": {
"serverUrl": "https://mcp.adbloop.com/mcp"
}
}
}{
"mcpServers": {
"adbloop-meta-ads": {
"url": "https://mcp.adbloop.com/mcp"
}
}
}name: Adbloop Meta Ads
version: 0.0.1
schema: v1
mcpServers:
- name: Adbloop Meta Ads
type: streamable-http
url: https://mcp.adbloop.com/mcp{
"mcpServers": {
"adbloop-meta-ads": {
"httpUrl": "https://mcp.adbloop.com/mcp"
}
}
}{
"mcpServers": {
"adbloop-meta-ads": {
"type": "http",
"url": "https://mcp.adbloop.com/mcp"
}
}
}{
"mcpServers": {
"adbloop-meta-ads": {
"url": "https://mcp.adbloop.com/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fmcp.adbloop.com%2Fmcp&type=streamable_http&id=adbloop-meta-ads&name=Adbloop%20Meta%20Ads
It answered our last check on 17 October 2026 in 322 ms. Over 10 checks since 4 September 2026 it answered 10. Status here comes from Neuronto's own probes, not from the publisher.
Yes. It is published by adbloop.com and served from mcp.adbloop.com, the vendor's own domain: https://mcp.adbloop.com/mcp.
23, as returned by the server's own tools/list on 9 September 2026: add_ad_to_adset, bulk_create_campaigns, bulk_create_multi_account, check_capacity, create_campaign, create_structured, delete_campaigns, estimate_bulk_create, and 15 more.
It answered our last check on 17 October 2026 in 322 ms. Over 10 checks since 4 September 2026 it answered 10.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://mcp.adbloop.com/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: com.adbloop. Endpoint host: mcp.adbloop.com. ARD identifier: urn:air:com.adbloop:mcp:meta-ads.
First indexed 31 August 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.