Ads

88 tools. 45 can modify or destroy data without limits.

8 destructive tools with no built-in limits. Policy required.

Last updated:

45 can modify or destroy data
43 read-only
88 tools total

Community server · catalogue entry verified 03/07/2026

How to control Ads ↓

What Ads exposes to your agents

Read (43) Write / Execute (37) Destructive / Financial (8)
Critical Risk

The most dangerous Ads tools

45 of Ads's 88 tools can modify, destroy, or commit something on every call — and an agent calls them with no built-in limits.

How to control Ads

PolicyLayer is an MCP gateway — it sits between your AI agents and Ads, and nothing reaches the server without passing your rules. These are the rules we recommend:

Deny destructive operations
{
  "ga4.conversion_events.delete": {
    "deny_if": [
      {
        "conditions": [],
        "on_deny": "Blocked by default. Requires approval."
      }
    ]
  }
}

Destructive tools should never be available to autonomous agents without human approval.

Rate limit write operations
{
  "ga4.conversion_events.create": {
    "limits": [
      {
        "counter": "ga4.conversion_events.create_per_hour",
        "window": "hour",
        "max": 30,
        "scope": "grant"
      }
    ]
  }
}

Prevents bulk unintended modifications from agents caught in loops.

Cap read operations
{
  "core.diagnose": {
    "limits": [
      {
        "counter": "core.diagnose_per_minute",
        "window": "minute",
        "max": 60,
        "scope": "grant"
      }
    ]
  }
}

Controls API costs and prevents retry loops from exhausting upstream rate limits.

  1. Create a free account and register Ads — nothing to install.
  2. Add these rules — paste them, or build them visually. Tune the limits to your setup.
  3. Point your MCP client (Claude, Cursor, anything) at your gateway URL.
ENFORCE POLICY ON ADS →

Instant setup, no code required.

All 88 Ads tools

WRITE 31 tools
Write ga4.conversion_events.create Mark an event as a conversion event on the configured GA4 property. Write ga4.custom_dimensions.create Create a custom dimension on a GA4 property. Required fields: parameter_name (the tag/event param to source fr Write ga4.custom_metrics.create Create a custom metric on a GA4 property. Required fields: parameter_name, display_name, measurement_unit. Dry Write google_ads.campaigns.pause Pause a Google Ads campaign by mutating campaign.status to PAUSED. Reversible. Dry-run by default. Write google_ads.campaigns.resume Resume a paused Google Ads campaign by setting campaign.status to ENABLED. Dry-run by default. Write google_ads.campaigns.update_budget Update a Google Ads campaign Write gsc.sitemaps.submit Submit a sitemap to Search Console for the configured site. Write gsc.sites.add Claim a site in Search Console. Verification still required separately. Write linkedin.campaigns.pause Pause a LinkedIn campaign by PARTIAL_UPDATE to status=PAUSED. Reversible. Dry-run by default. Write linkedin.campaigns.resume Resume a paused LinkedIn campaign by PARTIAL_UPDATE to status=ACTIVE. Dry-run by default. Write linkedin.campaigns.update_budget Update LinkedIn campaign daily or total budget. Pass exactly one. amount is a decimal string ( Write linkedin.creatives.pause Pause a LinkedIn ad creative by PARTIAL_UPDATE to status=PAUSED. Reversible via linkedin.creatives.resume. Dry Write linkedin.creatives.resume Resume a paused LinkedIn ad creative by PARTIAL_UPDATE to status=ACTIVE. Dry-run by default. Write meta.ads.create Create a Meta ad under an existing ad set, attaching a previously-created creative. Defaults to status=PAUSED. Write meta.ads.pause Pause a Meta ad by setting status to PAUSED. Reversible via meta.ads.resume. Common operation for stopping low Write meta.ads.resume Resume a paused Meta ad by setting status to ACTIVE. Dry-run by default. Write meta.ads.update Update a Meta ad Write meta.adsets.create Create a Meta ad set under a campaign with targeting, budget, schedule, billing event, and optimization goal. Write meta.adsets.pause Pause a Meta ad set by setting status to PAUSED. Reversible via meta.adsets.resume. Dry-run by default. Write meta.adsets.resume Resume a paused Meta ad set by setting status to ACTIVE. Dry-run by default. Write meta.adsets.update Update a Meta ad set Write meta.adsets.update_budget Update a Meta ad set Write meta.campaigns.create Create a new Meta ad campaign. Defaults to status=PAUSED so it does not begin spending until explicitly activa Write meta.campaigns.pause Pause a Meta campaign by setting status to PAUSED. Reversible via meta.campaigns.resume. Dry-run by default. Write meta.campaigns.resume Resume a paused Meta campaign by setting status to ACTIVE. Dry-run by default. Write meta.campaigns.update Update a Meta campaign Write meta.campaigns.update_budget Update a Meta campaign Write meta.creatives.create_image Create a single-image ad creative referencing a previously-uploaded image_hash. Builds a link_data object_stor Write meta.custom_audiences.create_lookalike Create a lookalike audience from a source audience. Meta builds an audience of users who resemble the source w Write meta.custom_audiences.create_saved Create a saved Meta custom audience from a rule (pixel events, app events, page engagement, or video views). T Write meta.custom_conversions.create Create a custom conversion on the ad account, derived from a pixel by URL/parameter rules and mapped to a stan
READ 43 tools
Read core.diagnose Diagnostic. Returns server config status, enabled platforms, accounts (no secrets), rate-limit usage. Use to v Read ga4.accounts.list List GA4 analytics accounts the credentials can see. Read ga4.conversion_events.list List conversion events configured on the GA4 property (deprecated by Google in favor of key events; both endpo Read ga4.custom_dimensions.list List custom dimensions on the configured GA4 property. Read ga4.custom_metrics.list List custom metrics on the configured GA4 property. Read ga4.data_streams.list List data streams attached to the configured GA4 property. Read ga4.passthrough.read Fallback: call any GA4 Data API method (POST) or Admin API GET endpoint not yet covered by named tools. Read-o Read ga4.properties.get Get details of a GA4 property. Read ga4.report.batch Run up to 5 GA4 reports in a single call (batchRunReports). Read ga4.report.realtime Run a GA4 realtime report (last 30 minutes of activity). Read google_ads.ad_groups.list List Google Ads ad groups with bid, status, parent campaign, and core metrics over a date range. Optional filt Read google_ads.campaigns.list List Google Ads campaigns over a date range with budgets and core metrics. Convenience wrapper over GAQL; for Read gsc.search_analytics.query Query Search Console search analytics: clicks, impressions, CTR, position by query / page / country / device / Read gsc.sitemaps.get Get details for a specific sitemap. Read gsc.sitemaps.list List sitemaps registered for the configured site. Read gsc.sites.list List sites verified for the authenticated account. Read gsc.url_inspection.inspect Inspect a single URL: index status, last crawl, mobile usability, rich results, AMP, and live indexing eligibi Read linkedin.account.overview LinkedIn Ads account overview: account details + optional analytics rollup over a date range. Read linkedin.analytics LinkedIn Ads analytics over a date range, broken down by a pivot (CAMPAIGN, CREATIVE, ACCOUNT, MEMBER_COMPANY, Read linkedin.campaigns.list List LinkedIn ad campaigns with status, budget, and optional per-campaign analytics. Read linkedin.creatives.list List LinkedIn ad creatives for an account, optionally filtered to a single campaign. Returns the creative URN, Read linkedin.passthrough.read Fallback: GET any LinkedIn /rest endpoint not covered by named tools. Read-only. Prefer linkedin.account.overv Read meta.account.overview High-level Meta ad account overview: total spend, impressions, clicks, CTR, CPM, CPC, configurable trend, and Read meta.ads.list List ads in a Meta ad set with creative details and per-ad performance metrics. Read meta.adsets.list List ad sets for a Meta campaign with targeting, budgets, and performance metrics. Read meta.campaigns.list List Meta ad campaigns with status, budgets, and performance metrics. Supports status filter and pagination. Read meta.creatives.get Fetch a single Meta ad creative by id with full details (object_story_spec, asset_feed_spec, tracking_specs, i Read meta.creatives.list List ad creatives in the account library. Returns title, body, image/video reference, and the object_story_spe Read meta.custom_audiences.list List Meta custom audiences for an account: saved audiences, lookalikes, customer-list audiences, retargeting a Read meta.custom_conversions.list List custom conversions defined on the ad account, including the matching rule, event type, and last-fired tim Read meta.delivery_estimate Get Meta Read meta.insights.action_breakdown Break Meta insights down by action_type so you see spend and outcomes per conversion event (link clicks, leads Read meta.insights.budget_pacing Budget pacing report: campaign and ad set budgets vs actual spend, budget remaining, and a configurable trend. Read meta.insights.creative Compare performance across individual ad creatives (images, videos, copy) with creative details inline. Suppor Read meta.insights.demographics Break down Meta ad performance by audience demographics: age+gender, country, region, DMA, or surface dimensio Read meta.insights.funnel Conversion funnel analysis: impressions → clicks → outbound clicks → actions, with quality/engagement/conversi Read meta.insights.placements Break down Meta ad performance by placement (Facebook Feed, Instagram Stories, Reels, Audience Network). Suppo Read meta.lead_gen_forms.get_leads Pull leads collected by a Meta lead gen form, including each respondent Read meta.lead_gen_forms.list List lead gen forms attached to a Facebook Page. Returns form name, status, question schema, and lead count pe Read meta.pixels.list List Meta Pixels assigned to the ad account: name, install snippet, last-fired timestamp, and matching setting Read meta.targeting.account_search Search the account-scoped Meta targeting taxonomy via /act_<id>/targetingsearch?type=<type>&q=<keyword>. Use t Read meta.targeting.browse Browse the FULL Meta targeting catalog for a class via /act_<id>/targetingbrowse?class=<class>. Use this when Read meta.targeting.search Search Meta

Related servers

Other MCP servers with similar tools — same risk classification, starter policies for each.

Questions about Ads

Can an AI agent delete data through the Ads MCP server? +

Yes. The Ads server exposes 8 destructive tools including ga4.conversion_events.delete, ga4.passthrough.write, gsc.sitemaps.delete. These permanently remove resources with no undo. PolicyLayer blocks destructive tools by default so they never reach the upstream server.

How do I prevent bulk modifications through Ads? +

The Ads server has 31 write tools including ga4.conversion_events.create, ga4.custom_dimensions.create, ga4.custom_metrics.create. Set a rate limit in your policy -- for example, 10 calls per hour prevents an agent from making more than 10 modifications per hour. PolicyLayer enforces this at the gateway, before calls reach Ads.

How many tools does the Ads MCP server expose? +

88 tools across 4 categories: Destructive, Execute, Read, Write. 43 are read-only. 45 can modify, create, or delete data.

How do I enforce a policy on Ads? +

Register the Ads MCP server in PolicyLayer, apply the suggested rules above (adjust the limits to your use case), and point your AI client at the PolicyLayer proxy URL instead of the server directly. Your agents keep the same tools; PolicyLayer evaluates every call against policy before it executes. Nothing to install, live in minutes.

Enforce policy on every Ads tool call.

Deterministic rules across all 88 Ads tools. Per-identity grants. Full audit log. Live in minutes. Nothing to install.

Instant setup, no code required.

88 Ads tools catalogued and risk-classified — across an index of 43,000+ MCP servers.

// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.