54 tools across 6 platforms, listed straight from the running product. Your AI only sees a platform's tools once an account on that platform is switched on in your workspace. The MegaMCP core tools are always there.
MegaMCP core
megamcp_whoami
ReadWorkspace, accounts and guardrails
Shows the workspace you're connected to, your role, plan status, enabled accounts per platform (with the ids tools accept as account_id), budget bumpers, and whether plans can be approved in chat.
No parameters.
megamcp_list_changes
ReadList proposed and applied changes
Lists the workspace's change plans, newest first, optionally filtered by status.
| Parameter | Type | Description |
|---|---|---|
status optional | pending | applying | applied | partially_applied | failed | rejected | expired | reverted | Only plans with this status. |
limit optional | integer (1–50) | How many plans to return (default 20). |
megamcp_get_change
ReadShow a change plan
Shows one plan's full diff, status and review link.
| Parameter | Type | Description |
|---|---|---|
plan_id | string (UUID) | The plan id returned when the change was proposed. |
megamcp_apply_change
Write · needs approvalApply an approved change plan
Applies a pending plan, only after the user has seen the diff and explicitly approved it in the conversation. Works only when the workspace allows approvals in chat and the user is a member or above; otherwise it returns the dashboard link.
| Parameter | Type | Description |
|---|---|---|
plan_id | string (UUID) | The plan to apply. |
megamcp_reject_change
Write · needs approvalReject a pending change plan
Rejects a pending plan so it can't be applied. Nothing changes on any platform.
| Parameter | Type | Description |
|---|---|---|
plan_id | string (UUID) | The plan to reject. |
megamcp_undo_change
Write · needs approvalPropose undoing an applied plan
Creates a new pending plan that reverses every applied change in a plan, newest first. The undo plan needs approval like any other plan.
| Parameter | Type | Description |
|---|---|---|
plan_id | string (UUID) | The applied plan to reverse. |
Google Ads Rolling out
google_ads_account_overview
ReadGoogle Ads account overview
Headline numbers for one Google Ads account over a date range (default: last 30 complete days) compared with the previous period of the same length: spend, clicks, impressions, conversions, conversion value, CPA, ROAS, CTR, avg CPC. Money is in account currency units (already converted from micros).
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Google Ads customer ID (123-456-7890 or 1234567890) or MegaMCP account id. Optional when only one Google Ads account is enabled. |
days optional | integer | Look-back window in whole days, ending yesterday in the account's time zone. Default 30. Ignored when start_date/end_date are given. |
start_date optional | string | Start date YYYY-MM-DD (inclusive). Use with end_date. |
end_date optional | string | End date YYYY-MM-DD (inclusive). Use with start_date. |
google_ads_list_campaigns
ReadList Google Ads campaigns
Campaigns in a Google Ads account with ID, status, channel, daily budget, bidding strategy and metrics for a date range (default last 30 days): spend, clicks, conversions, CPA, ROAS. Budgets and money are in account currency units (converted from micros). Shared budgets are marked; changing one affects every campaign on it. Use the IDs with the write tools.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Google Ads customer ID (123-456-7890 or 1234567890) or MegaMCP account id. Optional when only one Google Ads account is enabled. |
status optional | ENABLED | PAUSED | Only campaigns with this status. Default: both (removed campaigns are never listed). |
limit optional | integer | Max rows to return (default 200, max 1000). |
days optional | integer | Look-back window in whole days, ending yesterday in the account's time zone. Default 30. Ignored when start_date/end_date are given. |
start_date optional | string | Start date YYYY-MM-DD (inclusive). Use with end_date. |
end_date optional | string | End date YYYY-MM-DD (inclusive). Use with start_date. |
google_ads_search_terms
ReadGoogle Ads search terms report
What people actually searched before clicking your Search ads, with spend, clicks, conversions and conversion value for a date range (default last 30 days), highest spend first. Use wasted_only + min_spend to find negative-keyword candidates; terms already negated are left out unless include_negated=true. Money is in account currency units (converted from micros). Performance Max terms aren't included (Google doesn't expose them here).
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Google Ads customer ID (123-456-7890 or 1234567890) or MegaMCP account id. Optional when only one Google Ads account is enabled. |
campaign_id optional | string | Campaign ID (numeric ID from the list tools). |
wasted_only optional | boolean | Only terms that spent money and got zero conversions. |
min_spend optional | number | Only terms with at least this much spend (account currency units). |
include_negated optional | boolean | Include terms already excluded by a negative keyword. Default false. |
limit optional | integer | Max rows to return (default 100, max 500). |
days optional | integer | Look-back window in whole days, ending yesterday in the account's time zone. Default 30. Ignored when start_date/end_date are given. |
start_date optional | string | Start date YYYY-MM-DD (inclusive). Use with end_date. |
end_date optional | string | End date YYYY-MM-DD (inclusive). Use with start_date. |
google_ads_keywords
ReadGoogle Ads keywords
Keywords (not negatives) with match type, status, Quality Score (1-10) and its components, plus spend, clicks, conversions and CPA for a date range (default last 30 days), highest spend first. Keyword IDs are printed as adGroupId~criterionId for google_ads_set_keyword_status. Money is in account currency units (converted from micros).
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Google Ads customer ID (123-456-7890 or 1234567890) or MegaMCP account id. Optional when only one Google Ads account is enabled. |
campaign_id optional | string | Campaign ID (numeric ID from the list tools). |
ad_group_id optional | string | Ad group ID (numeric ID from the list tools). |
limit optional | integer | Max rows to return (default 100, max 1000). |
days optional | integer | Look-back window in whole days, ending yesterday in the account's time zone. Default 30. Ignored when start_date/end_date are given. |
start_date optional | string | Start date YYYY-MM-DD (inclusive). Use with end_date. |
end_date optional | string | End date YYYY-MM-DD (inclusive). Use with start_date. |
google_ads_ads
ReadGoogle Ads responsive search ads
Responsive search ads with status, ad strength, policy approval, headlines, descriptions, final URL and metrics for a date range (default last 30 days), highest spend first. Ad IDs are printed as adGroupId~adId for google_ads_set_ad_status. Money is in account currency units (converted from micros).
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Google Ads customer ID (123-456-7890 or 1234567890) or MegaMCP account id. Optional when only one Google Ads account is enabled. |
campaign_id optional | string | Campaign ID (numeric ID from the list tools). |
ad_group_id optional | string | Ad group ID (numeric ID from the list tools). |
limit optional | integer | Max rows to return (default 50, max 200). |
days optional | integer | Look-back window in whole days, ending yesterday in the account's time zone. Default 30. Ignored when start_date/end_date are given. |
start_date optional | string | Start date YYYY-MM-DD (inclusive). Use with end_date. |
end_date optional | string | End date YYYY-MM-DD (inclusive). Use with start_date. |
google_ads_query
ReadRun a Google Ads (GAQL) report query
Runs ONE read-only Google Ads Query Language (GAQL, https://developers.google.com/google-ads/api/docs/query/overview) SELECT against an allowlisted reporting resource (campaign, ad_group, ad_group_ad, keyword_view, search_term_view, geographic_view, landing_page_view, asset_group, conversion_action, change_event, ...). Anything else is rejected. Results are capped at 1000 rows. Micros fields are converted to account currency units and renamed without the Micros suffix (metrics.cost_micros → metrics.cost; average_cpc and cost_per_conversion too).
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Google Ads customer ID (123-456-7890 or 1234567890) or MegaMCP account id. Optional when only one Google Ads account is enabled. |
query | string | One GAQL SELECT statement, e.g. SELECT campaign.name, metrics.clicks FROM campaign WHERE segments.date DURING LAST_7_DAYS |
google_ads_change_history
ReadGoogle Ads change history
Who changed what in the Google Ads account over the last 14 days (from Google's change history, including changes made outside MegaMCP): time, resource type, operation, changed fields, user and tool. Newest first.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Google Ads customer ID (123-456-7890 or 1234567890) or MegaMCP account id. Optional when only one Google Ads account is enabled. |
campaign_id optional | string | Campaign ID (numeric ID from the list tools). |
limit optional | integer | Max rows to return (default 100, max 1000). |
google_ads_set_campaign_status
Write · needs approvalPause or enable Google Ads campaigns
Proposes pausing or enabling campaigns. Returns a plan (checked by Google in a dry run) for a human to approve; nothing changes until approved. Enabling counts as a spend increase from 0 to the campaign's daily budget for budget bumpers. Undo is available after applying.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Google Ads customer ID (123-456-7890 or 1234567890) or MegaMCP account id. Optional when only one Google Ads account is enabled. |
campaign_ids | array of string | No description. |
status | ENABLED | PAUSED | No description. |
google_ads_set_campaign_budget
Write · needs approvalChange a Google Ads campaign's daily budget
Proposes a new daily budget for a campaign, in account currency units (not micros). If the budget is shared by several campaigns it refuses unless allow_shared=true, and the plan names every affected campaign. Subject to budget bumpers. Returns a plan (dry-run validated by Google) to approve; undo restores the previous amount.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Google Ads customer ID (123-456-7890 or 1234567890) or MegaMCP account id. Optional when only one Google Ads account is enabled. |
campaign_id | string | Campaign ID (numeric ID from the list tools). |
daily_budget | number | New daily budget in account currency units (NOT micros), e.g. 45.5. |
allow_shared optional | boolean | Required when the campaign uses a shared budget: the change then applies to every campaign on that budget. |
google_ads_add_negative_keywords
Write · needs approvalAdd Google Ads negative keywords
Proposes campaign-level negative keywords (EXACT by default; PHRASE or BROAD optional) so a campaign stops showing for those searches. Negatives the campaign already has are skipped. Returns a plan (dry-run validated by Google) to approve; undo removes exactly the negatives it added.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Google Ads customer ID (123-456-7890 or 1234567890) or MegaMCP account id. Optional when only one Google Ads account is enabled. |
campaign_id | string | Campaign ID (numeric ID from the list tools). |
keywords | array of string | Negative keyword texts, without match-type symbols. |
match_type optional | EXACT | PHRASE | BROAD | Match type for all keywords. Default EXACT (safest). |
google_ads_set_ad_group_status
Write · needs approvalPause or enable Google Ads ad groups
Proposes pausing or enabling ad groups. Returns a plan (dry-run validated by Google) to approve; nothing changes until approved. Undo is available after applying.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Google Ads customer ID (123-456-7890 or 1234567890) or MegaMCP account id. Optional when only one Google Ads account is enabled. |
ad_group_ids | array of string | No description. |
status | ENABLED | PAUSED | No description. |
google_ads_set_keyword_status
Write · needs approvalPause or enable Google Ads keywords
Proposes pausing or enabling keywords. keyword_ids are "adGroupId~criterionId" as printed by google_ads_keywords. Returns a plan (dry-run validated by Google) to approve; nothing changes until approved. Undo is available after applying.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Google Ads customer ID (123-456-7890 or 1234567890) or MegaMCP account id. Optional when only one Google Ads account is enabled. |
keyword_ids | array of string | No description. |
status | ENABLED | PAUSED | No description. |
google_ads_set_ad_status
Write · needs approvalPause or enable Google Ads ads
Proposes pausing or enabling ads. ad_ids are "adGroupId~adId" as printed by google_ads_ads. Returns a plan (dry-run validated by Google) to approve; nothing changes until approved. Undo is available after applying.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Google Ads customer ID (123-456-7890 or 1234567890) or MegaMCP account id. Optional when only one Google Ads account is enabled. |
ad_ids | array of string | No description. |
status | ENABLED | PAUSED | No description. |
google_ads_create_search_campaign
Write · needs approvalCreate a Google Ads search campaign
Proposes a complete Search campaign: a daily budget (account currency units, not micros), the campaign (ALWAYS created PAUSED, Google Search only, no display or partners), optional location/language targeting, ad groups with keywords, and one responsive search ad per ad group (3-15 headlines of at most 30 characters, 2-4 descriptions of at most 90, https final URL). Google dry-runs the whole thing before you approve. Everything is created in one atomic request; the new daily budget counts against budget bumpers. Undo removes the campaign and its budget.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Google Ads customer ID (123-456-7890 or 1234567890) or MegaMCP account id. Optional when only one Google Ads account is enabled. |
name | string | Campaign name (must be unique in the account). |
daily_budget | number | Daily budget in account currency units (NOT micros). |
bidding | MANUAL_CPC | MAXIMIZE_CONVERSIONS | Bidding strategy. |
target_cpa optional | number | Optional target CPA (account currency) for MAXIMIZE_CONVERSIONS. |
location_ids optional | array of string | Geo target constant IDs to target, e.g. 2840 = United States. Omit to target all locations. |
language_ids optional | array of string | Language constant IDs, e.g. 1000 = English. Omit for all languages. |
contains_eu_political_advertising | boolean | Google requires advertisers to declare whether the campaign contains EU political advertising. |
ad_groups | array of object | No description. |
Google Analytics 4 Rolling out
ga4_run_report
ReadGA4: run a report
Flexible Google Analytics 4 report using the GA4 Data API runReport method (https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/runReport). Pick metrics (e.g. sessions, totalUsers, keyEvents, engagementRate, screenPageViews, totalRevenue) and dimensions (e.g. date, sessionDefaultChannelGroup, sessionSourceMedium, pagePath, country, deviceCategory, eventName). Up to 4 date ranges (a Range column is added when there are several). Filters match dimension values (exact, contains, begins_with, ends_with, regex, in_list; exclude to negate). Rates are shown as percentages; durations in seconds. Note: GA4 renamed conversions to keyEvents.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | GA4 property id, e.g. 123456789. Optional when only one property is enabled. |
metrics | array of string | No description. |
dimensions optional | array of string | No description. |
date_ranges optional | array of object | Default: [{start_date:"28daysAgo", end_date:"yesterday"}]. |
filters optional | array of object | No description. |
order_by optional | object | Sort by one of the requested metrics or dimensions. Default: first metric, descending. |
limit optional | integer | Max rows (default 100, max 10000). |
ga4_traffic_summary
ReadGA4: traffic summary
Headline GA4 numbers for a date range compared with the previous period of equal length: sessions, users, new users, key events (formerly conversions), engagement rate and average session duration, plus the same by default channel group.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | GA4 property id, e.g. 123456789. Optional when only one property is enabled. |
start_date optional | string | Start date: YYYY-MM-DD, "today", "yesterday" or "NdaysAgo". Default "28daysAgo". |
end_date optional | string | End date. Default "yesterday". |
ga4_compare_periods
ReadGA4: what changed and where
Explains a change in one GA4 metric between two periods: the total for each period and the biggest gains and drops broken down by one dimension (e.g. sessionDefaultChannelGroup, sessionSourceMedium, landingPage, country, deviceCategory). The previous period defaults to the same length right before the current one.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | GA4 property id, e.g. 123456789. Optional when only one property is enabled. |
metric optional | string | Default sessions. |
dimension optional | string | Default sessionDefaultChannelGroup. |
start_date optional | string | Start date: YYYY-MM-DD, "today", "yesterday" or "NdaysAgo". Default "28daysAgo". |
end_date optional | string | End date. Default "yesterday". |
previous_start_date optional | string | No description. |
previous_end_date optional | string | No description. |
top optional | integer | Movers to show each way (default 10). |
ga4_top_pages
ReadGA4: top pages
Top pages in GA4. by=page (default): views, active users, average engagement time per user and key events by page path. by=landing_page: sessions, users, engagement rate and key events by landing page. Optional path_contains filter.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | GA4 property id, e.g. 123456789. Optional when only one property is enabled. |
start_date optional | string | Start date: YYYY-MM-DD, "today", "yesterday" or "NdaysAgo". Default "28daysAgo". |
end_date optional | string | End date. Default "yesterday". |
by optional | page | landing_page | No description. |
path_contains optional | string | No description. |
limit optional | integer | Default 25. |
ga4_realtime
ReadGA4: realtime
Active users on the site in the last 30 minutes (GA4 realtime), total and broken down by one dimension: unifiedScreenName (page title/screen), country, city, deviceCategory, platform or eventName (with event counts).
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | GA4 property id, e.g. 123456789. Optional when only one property is enabled. |
dimension optional | unifiedScreenName | country | city | deviceCategory | platform | eventName | audienceName | Default unifiedScreenName. |
limit optional | integer | Default 20. |
ga4_list_key_events
ReadGA4: list key events
Lists the GA4 property's key events (formerly conversions): event name, counting method, whether it's custom and whether it can be removed.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | GA4 property id, e.g. 123456789. Optional when only one property is enabled. |
ga4_create_key_event
Write · needs approvalGA4: mark an event as a key event
Proposes marking a GA4 event name as a key event (formerly 'conversion'). Returns a plan for the user to approve; nothing changes until approved. Key events count from the moment they're created, not retroactively.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | GA4 property id, e.g. 123456789. Optional when only one property is enabled. |
event_name | string | No description. |
counting_method optional | ONCE_PER_EVENT | ONCE_PER_SESSION | Default ONCE_PER_EVENT. |
Search Console Rolling out
gsc_search_analytics
ReadSearch Console: search performance
Google Search performance from Search Console: clicks, impressions, CTR and average position, broken down by up to 5 dimensions (query, page, country, device, date, searchAppearance), with optional filters. Includes the property's totals for the range. Dates are in Pacific Time; data lags about 2 days.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Search Console property, e.g. https://example.com/ or sc-domain:example.com. Optional when only one is enabled. |
dimensions optional | array of query | page | country | device | date | searchAppearance | Default [query]. |
start_date optional | string | Start date (YYYY-MM-DD or "NdaysAgo"). Default: 28 days ending 2 days ago (Search Console data lags ~2 days). |
end_date optional | string | End date. Default "2daysAgo". |
search_type optional | web | image | video | news | discover | googleNews | Default web. |
filters optional | array of object | All filters must match. Country uses ISO 3166-1 alpha-3 (e.g. usa); device is DESKTOP, MOBILE or TABLET. |
row_limit optional | integer | Default 100, max 25000. |
fresh_data optional | boolean | Include not-yet-final data from the last few days. |
gsc_quick_wins
ReadSearch Console: quick wins
Striking-distance keywords: queries ranking at average position 8–20 (bottom of page 1 / top of page 2) with at least min_impressions impressions, grouped by the page that ranks.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Search Console property, e.g. https://example.com/ or sc-domain:example.com. Optional when only one is enabled. |
start_date optional | string | Start date (YYYY-MM-DD or "NdaysAgo"). Default: 28 days ending 2 days ago (Search Console data lags ~2 days). |
end_date optional | string | End date. Default "2daysAgo". |
min_impressions optional | integer | Default 100. |
min_position optional | number | Default 8. |
max_position optional | number | Default 20. |
limit optional | integer | Pages to show (default 20). |
gsc_cannibalization
ReadSearch Console: keyword cannibalization
Queries where two or more of the site's own pages get impressions, so they compete with each other. Shows each competing page's position, clicks and share of impressions.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Search Console property, e.g. https://example.com/ or sc-domain:example.com. Optional when only one is enabled. |
start_date optional | string | Start date (YYYY-MM-DD or "NdaysAgo"). Default: 28 days ending 2 days ago (Search Console data lags ~2 days). |
end_date optional | string | End date. Default "2daysAgo". |
min_impressions optional | integer | Minimum impressions for a page to count as competing (default 10). |
limit optional | integer | Queries to show (default 20). |
gsc_inspect_url
ReadSearch Console: inspect a URL
Google's index status for one URL in the property (URL Inspection API): verdict, coverage state, last crawl, robots.txt and fetch state, Google-selected vs declared canonical, sitemaps, and rich result issues. Shows what Google has indexed, not a live test.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Search Console property, e.g. https://example.com/ or sc-domain:example.com. Optional when only one is enabled. |
url | string | Full URL inside the property. |
gsc_list_sitemaps
ReadSearch Console: sitemaps
Sitemaps submitted for the property: when each was submitted and last read, pending status, errors, warnings and submitted URL counts.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Search Console property, e.g. https://example.com/ or sc-domain:example.com. Optional when only one is enabled. |
gsc_submit_sitemap
Write · needs approvalSearch Console: submit a sitemap
Proposes submitting (or resubmitting) a sitemap URL to Search Console for the property. Returns a plan for the user to approve; nothing changes until approved. Undo removes the sitemap if it wasn't there before.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Search Console property, e.g. https://example.com/ or sc-domain:example.com. Optional when only one is enabled. |
sitemap_url | string | Absolute sitemap URL inside the property, e.g. https://example.com/sitemap.xml |
Tag Manager Rolling out
gtm_list_containers
ReadTag Manager: containers and workspaces
Lists the enabled Tag Manager containers (public id, type) and each container's workspaces with their ids. Workspace ids are the workspace_id values other gtm_ tools accept.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | GTM container public id, e.g. GTM-ABC1234. Optional when only one container is enabled. |
gtm_audit_container
ReadTag Manager: audit a container
Audits a GTM container (the live version by default, or a workspace) and returns a scored checklist: conversion tags firing on All Pages, duplicate GA4 event tags, tags with no firing trigger, Universal Analytics leftovers, paused tags, unused triggers and unused variables. Score is out of 100.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | GTM container public id, e.g. GTM-ABC1234. Optional when only one container is enabled. |
workspace_id optional | string | Audit this workspace (id or name) instead of the live version. |
gtm_list_versions
ReadTag Manager: versions
Lists a container's versions (newest first) with tag/trigger/variable counts and marks which one is live.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | GTM container public id, e.g. GTM-ABC1234. Optional when only one container is enabled. |
limit optional | integer | Default 20. |
gtm_create_ga4_event_tag
Write · needs approvalTag Manager: create a GA4 event tag
Proposes a GA4 event tag plus its trigger (a dataLayer custom event, or page views matching a path) in a GTM workspace. By default a workspace named 'MegaMCP <date>' is created at apply time. Nothing goes live until the workspace is published with gtm_publish_workspace. Returns a plan to approve.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | GTM container public id, e.g. GTM-ABC1234. Optional when only one container is enabled. |
event_name | string | No description. |
trigger | value | No description. |
measurement_id optional | string | GA4 measurement id. Optional when the container already uses exactly one. |
event_parameters optional | array of object | No description. |
tag_name optional | string | No description. |
workspace_id optional | string | Existing workspace (id or name) to use instead of a new MegaMCP workspace. |
gtm_set_tag_paused
Write · needs approvalTag Manager: pause or unpause a tag
Proposes pausing (or unpausing) a GTM tag, identified by tag id or exact name. The change is made in a workspace ('MegaMCP <date>' by default) and goes live only when that workspace is published. Returns a plan to approve.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | GTM container public id, e.g. GTM-ABC1234. Optional when only one container is enabled. |
tag | string | Tag id or exact tag name. |
paused | boolean | No description. |
workspace_id optional | string | Existing workspace (id or name). Default: a new MegaMCP workspace based on the latest version. |
gtm_publish_workspace
Write · needs approvalTag Manager: publish a workspace
Proposes publishing a GTM workspace: creates a version from it and makes that version live. The plan lists every change in the workspace. Undo republishes the version that was live before. Returns a plan to approve.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | GTM container public id, e.g. GTM-ABC1234. Optional when only one container is enabled. |
workspace_id optional | string | Workspace id or name. Optional when there's exactly one MegaMCP workspace (or one workspace). |
version_name optional | string | No description. |
notes optional | string | No description. |
Meta Ads Rolling out
meta_ads_account_overview
ReadMeta Ads account overview
Headline numbers for a Meta ad account: spend, impressions, reach, frequency, clicks, CTR, CPM, CPC, purchases, leads, revenue (purchase value), ROAS and CPA, with an optional previous-period comparison. Money is in the account currency (major units, e.g. dollars). Dates are in the account's timezone.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Meta ad account, e.g. "act_1234567890" (the "act_" prefix is optional). Optional when only one Meta account is enabled. |
date_preset optional | today | yesterday | last_7d | last_14d | last_28d | last_30d | last_90d | this_month | last_month | Reporting window in the ad account's timezone. Default last_30d. Ignored when since/until are given. |
since optional | string | Start date YYYY-MM-DD (inclusive). Use with until. |
until optional | string | End date YYYY-MM-DD (inclusive). Use with since. |
compare optional | boolean | Compare with the previous period of equal length. |
meta_ads_list_campaigns
ReadList Meta campaigns
Campaigns in a Meta ad account with status, objective, campaign budget (CBO; shown when the budget is set at campaign level) and performance for the period: spend, impressions, CTR, purchases, leads, ROAS, cost per result. Budgets and spend are in account currency major units.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Meta ad account, e.g. "act_1234567890" (the "act_" prefix is optional). Optional when only one Meta account is enabled. |
status optional | active | paused | all | Delivery status filter. 'all' excludes archived and deleted objects. |
date_preset optional | today | yesterday | last_7d | last_14d | last_28d | last_30d | last_90d | this_month | last_month | Reporting window in the ad account's timezone. Default last_30d. Ignored when since/until are given. |
since optional | string | Start date YYYY-MM-DD (inclusive). Use with until. |
until optional | string | End date YYYY-MM-DD (inclusive). Use with since. |
limit optional | integer | Max rows to return, highest spend first. |
meta_ads_list_ad_sets
ReadList Meta ad sets
Ad sets with status, targeting summary (age, gender, locations, interests, audiences), budget (when set at ad set level), optimization goal and performance for the period: spend, frequency, CTR, purchases, leads, cost per result. Optionally filter by campaign. Money in account currency major units.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Meta ad account, e.g. "act_1234567890" (the "act_" prefix is optional). Optional when only one Meta account is enabled. |
campaign_id optional | string | No description. |
status optional | active | paused | all | Delivery status filter. 'all' excludes archived and deleted objects. |
date_preset optional | today | yesterday | last_7d | last_14d | last_28d | last_30d | last_90d | this_month | last_month | Reporting window in the ad account's timezone. Default last_30d. Ignored when since/until are given. |
since optional | string | Start date YYYY-MM-DD (inclusive). Use with until. |
until optional | string | End date YYYY-MM-DD (inclusive). Use with since. |
limit optional | integer | Max rows to return, highest spend first. |
meta_ads_list_ads
ReadList Meta ads
Ads with creative name, status and performance for the period: spend, CTR, frequency, purchases, leads, cost per result. Filter by campaign or ad set. Money in account currency major units.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Meta ad account, e.g. "act_1234567890" (the "act_" prefix is optional). Optional when only one Meta account is enabled. |
campaign_id optional | string | No description. |
adset_id optional | string | No description. |
status optional | active | paused | all | Delivery status filter. 'all' excludes archived and deleted objects. |
date_preset optional | today | yesterday | last_7d | last_14d | last_28d | last_30d | last_90d | this_month | last_month | Reporting window in the ad account's timezone. Default last_30d. Ignored when since/until are given. |
since optional | string | Start date YYYY-MM-DD (inclusive). Use with until. |
until optional | string | End date YYYY-MM-DD (inclusive). Use with since. |
limit optional | integer | Max rows to return, highest spend first. |
meta_ads_insights
ReadMeta Ads insights (flexible)
Flexible report from the Meta Marketing API Insights endpoint (https://developers.facebook.com/docs/marketing-api/insights). Choose the level (account, campaign, adset, ad), metrics from an allowlist, up to 2 breakdowns (age, gender, country, region, publisher_platform, platform_position, device_platform, impression_device) and a time increment (all_days, 1 = daily, 7 = weekly, monthly). 'actions' becomes Purchases and Leads columns; 'action_values' becomes purchase value. Money in account currency major units.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Meta ad account, e.g. "act_1234567890" (the "act_" prefix is optional). Optional when only one Meta account is enabled. |
level optional | account | campaign | adset | ad | No description. |
fields optional | array of spend | impressions | reach | frequency | clicks | unique_clicks | ctr | unique_ctr | cpc | cpm | cpp | inline_link_clicks | inline_link_click_ctr | cost_per_inline_link_click | actions | action_values | cost_per_action_type | purchase_roas | video_p25_watched_actions | video_p50_watched_actions | video_p75_watched_actions | video_p100_watched_actions | video_thruplay_watched_actions | quality_ranking | engagement_rate_ranking | conversion_rate_ranking | No description. |
breakdowns optional | array of age | gender | country | region | publisher_platform | platform_position | device_platform | impression_device | No description. |
time_increment optional | all_days | 1 | 7 | monthly | No description. |
campaign_id optional | string | Only this campaign. |
adset_id optional | string | Only this ad set. |
date_preset optional | today | yesterday | last_7d | last_14d | last_28d | last_30d | last_90d | this_month | last_month | Reporting window in the ad account's timezone. Default last_30d. Ignored when since/until are given. |
since optional | string | Start date YYYY-MM-DD (inclusive). Use with until. |
until optional | string | End date YYYY-MM-DD (inclusive). Use with since. |
limit optional | integer | No description. |
meta_ads_creative_fatigue
ReadFind fatigued Meta creatives
Checks each ad for creative fatigue: 7-day frequency, CTR over the last 3 days vs the prior 14 days, and CPM trend. Flags 'fatigued' when CTR dropped by at least ctr_drop_pct AND frequency is at or above frequency_threshold or CPM rose 20%+; 'watch' when only one signal fires. Ads with too few impressions are marked not_enough_data.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Meta ad account, e.g. "act_1234567890" (the "act_" prefix is optional). Optional when only one Meta account is enabled. |
campaign_id optional | string | No description. |
adset_id optional | string | No description. |
frequency_threshold optional | number | No description. |
ctr_drop_pct optional | number | No description. |
min_impressions optional | integer | Minimum impressions in the prior 14 days to judge an ad. |
limit optional | integer | Max rows to return, highest spend first. |
meta_ads_set_status
Write · needs approvalPause or activate Meta campaigns, ad sets or ads
Proposes pausing or activating Meta campaigns, ad sets or ads (all ids must be the same level). Returns a plan for the user to approve; nothing changes until approved. Activating counts against budget bumpers as an increase from 0 to the daily spend it restarts (its own budget, its active ad sets' budgets, or its parent's budget).
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Meta ad account, e.g. "act_1234567890" (the "act_" prefix is optional). Optional when only one Meta account is enabled. |
level | campaign | adset | ad | What the ids are. |
ids | array of string | No description. |
status | ACTIVE | PAUSED | No description. |
meta_ads_set_budget
Write · needs approvalChange a Meta daily budget
Proposes a new daily budget for a campaign (when it uses campaign budget / CBO) or an ad set (when budgets are set per ad set). daily_budget is in the account currency's major units (e.g. 50 = $50.00/day), not cents. Lifetime budgets aren't supported. Subject to budget bumpers. Returns a plan to approve.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Meta ad account, e.g. "act_1234567890" (the "act_" prefix is optional). Optional when only one Meta account is enabled. |
level | campaign | adset | campaign for CBO campaign budgets, adset for ad set budgets. |
id | string | No description. |
daily_budget | number | New daily budget in account currency major units. |
meta_ads_duplicate_ad_set
Write · needs approvalDuplicate a Meta ad set
Proposes copying an ad set (optionally with its ads, up to 3) into the same campaign. The copy is created PAUSED, so it spends nothing until someone turns it on. Undo deletes the copy. Returns a plan to approve.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Meta ad account, e.g. "act_1234567890" (the "act_" prefix is optional). Optional when only one Meta account is enabled. |
adset_id | string | No description. |
deep_copy optional | boolean | Also copy the ad set's ads (max 3). |
rename_suffix optional | string | No description. |
meta_ads_create_ad
Write · needs approvalCreate a paused Meta ad
Proposes a new ad, created PAUSED, in an existing ad set. Either reuse an existing creative (creative_id) or build a single-image link ad from image_url + primary_text + headline + link_url (+ optional description and call_to_action). page_id is the Facebook Page the ad runs as; if omitted it's taken from an existing ad in the ad set. Undo deletes the ad (and the creative, if this created it). Returns a plan to approve.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Meta ad account, e.g. "act_1234567890" (the "act_" prefix is optional). Optional when only one Meta account is enabled. |
adset_id | string | No description. |
name | string | No description. |
creative_id optional | string | Reuse this existing ad creative. |
image_url optional | string | Public https URL of a JPEG/PNG/GIF/WebP image (max 8 MB). |
primary_text optional | string | No description. |
headline optional | string | No description. |
description optional | string | No description. |
link_url optional | string | Where the ad sends people. |
call_to_action optional | LEARN_MORE | SHOP_NOW | SIGN_UP | SUBSCRIBE | CONTACT_US | GET_QUOTE | GET_OFFER | APPLY_NOW | DOWNLOAD | ORDER_NOW | BOOK_TRAVEL | WATCH_MORE | NO_BUTTON | No description. |
page_id optional | string | Facebook Page id the ad runs as. |
Demo Ads (sandbox) Live
demo_ads_list_campaigns
ReadList demo campaigns
Sandbox ad account (not real money). Lists campaigns with status, daily budget and last-30-day spend, clicks, conversions, CPA and ROAS.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Account id. Optional when only one demo account is enabled. |
demo_ads_search_terms
ReadDemo search terms report
Sandbox. Search terms from the last 30 days with spend, clicks and conversions. Optionally filter by campaign and a minimum spend with zero conversions.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Account id. Optional when only one demo account is enabled. |
campaign_id optional | string | No description. |
wasted_only optional | boolean | Only terms with spend and zero conversions. |
min_spend optional | number | No description. |
demo_ads_set_campaign_status
Write · needs approvalPause or enable demo campaigns
Sandbox. Proposes pausing or enabling campaigns. Returns a plan for the user to approve; nothing changes until approved.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Account id. Optional when only one demo account is enabled. |
campaign_ids | array of string | No description. |
status | PAUSED | ENABLED | No description. |
demo_ads_set_campaign_budget
Write · needs approvalChange a demo campaign's daily budget
Sandbox. Proposes a new daily budget (in account currency, not micros). Subject to budget bumpers. Returns a plan to approve.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Account id. Optional when only one demo account is enabled. |
campaign_id | string | No description. |
daily_budget | number | No description. |
demo_ads_add_negative_keywords
Write · needs approvalAdd demo negative keywords
Sandbox. Proposes adding negative keywords (exact match) to a campaign. Returns a plan to approve.
| Parameter | Type | Description |
|---|---|---|
account_id optional | string | Account id. Optional when only one demo account is enabled. |
campaign_id | string | No description. |
keywords | array of string | No description. |
Haven't started yet? The trial is 14 days, no credit card, and the sandbox is waiting.
Start free trial