Skip to main content

attainment-meta-ads-mcp

MCP server for creating and managing Meta (Facebook/Instagram) ad campaigns directly from Claude. Tell Claude what you want. It deploys.

Built by Attainment Labs.


What it does

Add this server to your Claude config. You get 5 tools:

Tool What it does
create_meta_campaign Create a full campaign: campaign, ad set, creatives, and ads
get_campaign_status Check status of a campaign, its ad sets, and ads
pause_campaign Pause a live campaign
activate_campaign Activate a paused campaign
delete_campaign Permanently delete a campaign

All campaigns are created as PAUSED by default. You review before spending.


Install

# No setup required — uvx runs it directly

Add to ~/.mcp.json:

{
  "mcpServers": {
    "meta-ads": {
      "command": "uvx",
      "args": ["attainment-meta-ads-mcp"],
      "env": {
        "META_ACCESS_TOKEN": "your-token-here",
        "META_AD_ACCOUNT_ID": "your-account-id",
        "META_PAGE_ID": "your-page-id"
      }
    }
  }
}

Option 2: pip install

pip install attainment-meta-ads-mcp

Then in ~/.mcp.json:

{
  "mcpServers": {
    "meta-ads": {
      "command": "attainment-meta-ads-mcp",
      "env": {
        "META_ACCESS_TOKEN": "your-token-here",
        "META_AD_ACCOUNT_ID": "your-account-id",
        "META_PAGE_ID": "your-page-id"
      }
    }
  }
}

Credentials

You need three values from your Meta Business Manager:

Variable Where to find it
META_ACCESS_TOKEN Meta for Developers: Graph API Explorer, generate a long-lived token with ads_management permission
META_AD_ACCOUNT_ID Meta Business Manager: Settings > Ad Accounts (numbers only, no act_ prefix)
META_PAGE_ID Facebook Page: Settings > Page Info > Page ID

The access token expires. Generate a 60-day long-lived token to reduce rotation frequency.


Usage examples

Once the server is connected, just describe what you want:

Create a campaign:

"Create a Meta campaign targeting US fitness enthusiasts aged 25-40. Daily budget $30. Use the image at /Users/me/ads/hero.jpg. Copy: 'Track every rep. Hit every goal.' Headline: 'FitCommit AI'. CTA: Learn More. Link to fitcommit.ai."

Check status:

"What's the status of campaign 120243616427570285?"

Pause:

"Pause campaign 120243616427570285."

Activate:

"Go live with campaign 120243616427570285."

Delete:

"Delete campaign 120243616427570285."


dry_run mode

create_meta_campaign defaults to dry_run=True. This simulates all API calls and returns fake IDs without making any requests or spending money. Set dry_run=False when you're ready to deploy.


YAML workflow

Prefer writing campaigns as config files? Use meta-ads-cli — the companion CLI tool.


Requirements

  • Python 3.9+
  • uv for the uvx install path
  • A Meta Business Manager account with an ad account and Facebook Page

License

MIT

Metadata

Release files for attainment-meta-ads-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for attainment-meta-ads-mcp 0.1.0
File Size Uploaded
attainment_meta_ads_mcp-0.1.0.tar.gz 6.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for attainment-meta-ads-mcp 0.1.0
File Interpreter ABI Platform
attainment_meta_ads_mcp-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 12.9 kB

Release files / attainment_meta_ads_mcp-0.1.0.tar.gz

Download URL attainment_meta_ads_mcp-0.1.0.tar.gz
Size 6.0 kB
Tags Source
SHA-256 checksum
How to use checksums
7047ba043cd412ac709d47608689a91cc8fdba1dfb05b130a19d8e670dfa4c67
BLAKE2b-256 checksum
How to use checksums
e17b02882c05388446bde76e54651ded845543844f2160650d70a3a74c3543a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Release files / attainment_meta_ads_mcp-0.1.0-py3-none-any.whl

Download URL attainment_meta_ads_mcp-0.1.0-py3-none-any.whl
Size 7.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8089fc6e838117a2743fa4d802abfb56e989d1f1037d836c7c142ba326a48ab1
BLAKE2b-256 checksum
How to use checksums
1a95558128d7629e620e503ca50de8bb9cfffa00e929e0a82e970484fe3bf57f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page