Skip to main content
Glama
meta-ads-manager-mcp

meta-ads-manager-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
META_PAGE_IDYesFacebook Page ID
META_ACCESS_TOKENYesLong-lived Meta Graph API token with ads_management permission
META_AD_ACCOUNT_IDYesMeta Ad Account ID (numbers only, no act_ prefix)
META_ADS_AUDIT_LOG_PATHNoOptional JSONL audit log path (default: ~/.meta-ads-mcp/audit.jsonl)
META_ADS_MAX_DAILY_BUDGET_CENTSNoOptional daily budget guardrail in cents (e.g., '5000' for $50)

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
create_meta_campaignA

Create a complete Meta ad campaign: campaign, ad set, creatives, and ads.

Each item in ads is a dict with:

  • name (str): ad name

  • image_path (str): absolute path to image file on disk

  • primary_text (str): ad body copy

  • headline (str): ad headline

  • link (str): destination URL

  • cta (str, optional): call-to-action button, default "LEARN_MORE"

  • description (str, optional): ad description text

daily_budget_cents: budget in cents. 1000 = $10/day, 3000 = $30/day.

dry_run: when True (default), simulates all API calls without spending money. Set dry_run=False to actually deploy. All campaigns start as PAUSED regardless. confirm: required when dry_run=False. This is the approval gate.

Valid objectives: OUTCOME_TRAFFIC, OUTCOME_AWARENESS, OUTCOME_ENGAGEMENT, OUTCOME_LEADS, OUTCOME_SALES, OUTCOME_APP_PROMOTION

Valid CTAs: LEARN_MORE, SIGN_UP, DOWNLOAD, SHOP_NOW, BOOK_NOW, GET_OFFER, SUBSCRIBE, CONTACT_US, APPLY_NOW, WATCH_MORE, INSTALL_MOBILE_APP

get_ad_account_summaryA

Get the configured Meta ad account summary.

Read-only. Use this before campaign work to confirm the connected account, currency, timezone, spend, balance, and account status.

list_campaignsA

List recent campaigns in the configured Meta ad account.

Read-only. Use this to find campaign IDs before status, insights, budget, pause, activate, or bulk operations.

list_ad_setsA

List recent ad sets in the configured Meta ad account.

Read-only. Use this to find ad set IDs before budget or status changes.

list_adsA

List recent ads in the configured Meta ad account.

Read-only. Use this to find ad IDs and inspect delivery status.

get_meta_insightsB

Get Meta Ads performance insights.

Read-only. object_id can be an ad account, campaign, ad set, or ad ID. Leave object_id blank to use the configured ad account. Use level for account breakdowns such as campaign, adset, or ad.

upload_ad_imageA

Upload an image to the configured Meta ad account.

dry_run defaults to True. Set dry_run=False and confirm=True to upload. Returns an image hash that can be used in ad creatives.

update_daily_budgetA

Update daily budget for a campaign or ad set.

dry_run defaults to True. Set dry_run=False and confirm=True after review. If META_ADS_MAX_DAILY_BUDGET_CENTS is set, the budget cannot exceed it.

bulk_update_campaign_statusA

Bulk pause, activate, or delete campaigns.

status must be PAUSED, ACTIVE, or DELETED. dry_run defaults to True. Set dry_run=False and confirm=True after reviewing the campaign IDs.

get_campaign_statusB

Get the status of a Meta campaign including its ad sets and ads.

Returns campaign name, status, objective, and lists of ad sets and ads with their statuses and budgets.

pause_campaignB

Pause a live Meta campaign. Safe to call on already-paused campaigns.

activate_campaignA

Activate (unpause) a Meta campaign. This will resume ad spending.

The campaign must have a valid payment method and approved creatives. Set confirm=True after reviewing the campaign in Ads Manager.

delete_campaignA

Permanently delete a Meta campaign. This cannot be undone.

Set confirm=True after reviewing the campaign ID.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 13 tools

Disambiguation4/5

Most tools target distinct resources or actions, and descriptions clarify intent. There is some overlap between single-campaign pause/activate/delete and bulk_update_campaign_status, and get_campaign_status overlaps with list_campaigns/list_ad_sets/list_ads.

Naming Consistency5/5

All tools use snake_case with a predictable verb-first pattern such as list_campaigns, get_meta_insights, update_daily_budget, and delete_campaign. Minor additions like "meta" or "bulk" do not break consistency.

Tool Count5/5

The server has 13 tools, which is well within a reasonable range for an ad campaign management surface. Each tool has a plausible place in the workflow, from account summary and listing to creation, budget updates, and status controls.

Completeness3/5

Campaign-level CRUD is mostly covered: create, list, inspect status, update budget, pause/activate, delete, and bulk status updates. However, ad sets, ads, and creatives are not independently manageable after creation, and there are no update operations for targeting, creative content, bidding, or ad/ad set lifecycle beyond budget and campaign status.

Maintenance

ActivityNo data
ResponsivenessSyncing