66 tools, grouped by what they do.
Tools marked WRITE are gated by safety mode — refused by default, returning a manual_steps payload instead.
Competitor watchlist (6)
Track brands and pull their live Meta ads. Powered by the Meta Ad Library — no Meta token required.
watchlist_listList brands the user is tracking.watchlist_addAdd a brand by Facebook page name or page ID.watchlist_removeStop tracking a brand.watchlist_feedRecent ads across all tracked brands, ordered newest-first.watchlist_refreshForce a fresh fetch from Meta Ad Library for one or all brands.watchlist_strategyDistilled strategy summary across a brand's last N ads (hooks, formats, offers).
Watchlist groups (7)
Bundle up to 10 brands into a shareable competitive landscape (e.g. 'DTC athleisure').
watchlist_group_listList groups the user owns or has access to.watchlist_group_createCreate a new group with a name + slug + brand list.watchlist_group_getFetch a group by slug, including brands and recent ads.watchlist_group_updateRename a group, edit its brand list, or change visibility.watchlist_group_deleteDelete a group (does not remove brands from your watchlist).watchlist_group_sharePublish a group as a read-only public link.watchlist_group_unshareRevoke the public share link for a group.
Direct brand spy (3)
Look up brand pages and ads on demand without committing to a watchlist entry.
watch_brands_listBrowse the BrandMov-curated catalog of 10,000+ DTC brands.watch_brand_adsPull a brand's ads from the Meta Ad Library with filters.watch_ad_detailGet the full ad detail (creative, copy, landing) for a single archive ID.
Brand scan & alerts (3)
Scan a website for brand metadata, configure email alerts.
brand_scanScrape a URL for brand name, logo, FB page, IG handle.alerts_get_settingsRead the user's competitor-alert digest config.alerts_update_settingsUpdate digest cadence, recipients, and brand filters.
Swipe files (8)
Save the best ads from your watchlist into named collections, optionally publish as read-only links.
swipe_file_listList swipe files the user owns.swipe_file_createCreate a swipe file with a name and optional description.swipe_file_deleteDelete a swipe file (does not remove ads from Meta).swipe_file_adsList ads saved in a swipe file.swipe_file_save_adSave an ad (by archive ID) into a swipe file.swipe_file_sharePublish a swipe file as a read-only public URL.swipe_file_unshareRevoke the public link for a swipe file.swipe_file_reportRender a Markdown teardown report for a swipe file.
Ad idea generation (1)
Use a competitor's ads as raw material for a new concept.
generate_ad_ideaPick a competitor ad and produce a hook + visual concept + reasoning for your own brand.
Meta accounts (read) (3)
Discover the ad accounts and pages the connected user can manage.
get_ad_accountsList all ad accounts the access token can see.get_account_infoAccount details: currency, timezone, status, business.get_account_pagesFacebook pages owned by or linked to the ad account.
Meta campaigns / ad sets / ads (read) (12)
Inspect existing campaigns, ad sets, ads, and creatives.
get_campaignsList campaigns on an account, with status filters.get_campaign_detailsFull campaign object with budgets, objective, dates.get_adsetsList ad sets in a campaign or account.get_adset_detailsFull ad set object with targeting + bidding.get_adsList ads in an ad set, campaign, or account.get_ad_detailsFull ad object with creative reference.get_ad_creativesCreatives attached to a specific ad.get_creative_detailsResolve a creative ID into copy, image hash, link.get_ad_imagePull the rendered image for an ad.get_ad_videoPull the video URL for an ad.search_pages_by_nameSearch Facebook pages by name (for picking a page when building creatives).list_budget_schedulesList scheduled budget changes on a campaign.
Meta insights (1)
Pull performance reporting with sane compaction defaults for LLMs.
get_insightsInsights for ads / ad sets / campaigns / accounts. compact=True strips omni_*, onsite_web_*, and offsite_conversion.fb_pixel_* prefixes that drown agents in noise.
Meta Ads Archive (1)
Search the public Meta ad library for any advertiser.
search_ads_archiveSearch ads by page name or keyword across countries and date ranges.
Targeting & audience (6)
Resolve interests, behaviors, demographics, and geo for ad-set targeting.
search_interestsSearch Meta's interest taxonomy for a keyword.get_interest_suggestionsAdjacent interests for a seed list.search_behaviorsSearch Meta behavior segments.search_demographicsSearch demographic segments (life events, education, etc.).search_geo_locationsResolve country / region / city / DMA codes for targeting.estimate_audience_sizeReach estimate for a targeting spec, or a quick interest-list estimate.
Meta utilities (1)
Helpers that don't fit a single CRUD bucket.
compute_image_cropsCompute placement-aware crops (FEED, STORY, REELS) from a source image.
Meta writes — gated by safety mode (14)
Refused by default in safety mode (read-only). When enabled, every create/update still ships PAUSED.
create_campaignWRITECreate a campaign with objective, budget, and special ad categories.update_campaignWRITEUpdate a campaign's name, status, budget, objective, or bid strategy.create_adsetWRITECreate an ad set with targeting, optimization goal, billing event, schedule.update_adsetWRITEUpdate an ad set's audience, budget, schedule, or status.create_adWRITECreate an ad inside an ad set, using an existing creative or inline spec.update_adWRITEUpdate an ad's name, creative, or status.create_ad_creativeWRITECreate a creative — simple link/video, dynamic asset feed, or full spec.update_ad_creativeWRITE(Meta-limited) Replaces the creative; usually means create-new + reattach.upload_ad_imageWRITEUpload an image to the ad account's media library, return the image hash.create_budget_scheduleWRITESchedule a temporary budget change on a campaign (e.g. Black Friday).duplicate_campaignWRITEDuplicate a campaign's settings into a new campaign in the same account.duplicate_adsetWRITEDuplicate an ad set into the same or a different campaign.duplicate_adWRITEDuplicate an ad into the same or a different ad set, reusing the creative.duplicate_creativeWRITEDuplicate a creative with optional copy / link rewrites.