ZuckerBot — Meta Ads MCP Server
NPM · ZUCKERBOT-MCP · 2 COMPONENTS · SCANNED AUG 3
60+ Meta Ads tools for AI agents: audits, campaign management, audiences and CAPI tracking.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security83
- No malware found by supply-chain analysis.Pass
- CVE check failed: a known medium-severity CVE affects @hono/node-server 1.19.17, reached via @modelcontextprotocol/sdk > @hono/node-server. A fixed version is available. View diagnostics → Fail
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (113 of 117), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 7 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability56
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 9145 tokens (~152/item across 60 items; 60 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · zuckerbot-mcp
claude mcp add crumbedsausage-zuckerbot -- npx -y zuckerbot-mcp
codex mcp add crumbedsausage-zuckerbot -- npx -y zuckerbot-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"crumbedsausage-zuckerbot": {
"type": "local",
"command": [
"npx",
"-y",
"zuckerbot-mcp"
],
"enabled": true
}
}
} openclaw mcp add crumbedsausage-zuckerbot --command npx --arg -y --arg zuckerbot-mcp
mcp_servers:
crumbedsausage-zuckerbot:
command: "npx"
args: ["-y", "zuckerbot-mcp"] {
"mcpServers": {
"crumbedsausage-zuckerbot": {
"command": "npx",
"args": [
"-y",
"zuckerbot-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 −3
No change was recorded against any check on this day. Supply Chain Security went from 93 to 83. Other categories moved too: Stability & Change Management rose 4.
- 2 Aug 26 +25
- Known CVEs: unverified → fail ▼ security
- Malware scan: unverified → pass ▲ security
- Dependency health: unverified → partial ▲ functional
- 1 Aug 26 −9
- Known CVEs: fail → unverified ▼ security
- Dependency health: partial → unverified ▼ functional
- 31 Jul 26 +45
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 −40
- Provenance: fail → unverified ▼ security
- Known CVEs: fail → unverified ▼ security
- Install scripts: pass → unverified ▼ security
- GHSA-frvp-7c67-39w9 no longer affects this package ▲ security
- Dependency health: partial → unverified ▼ functional
- Maintenance: pass → unverified ▼ functional
- Security disclosure: fail → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- License: pass → unverified ▼ functional
- Licence: MIT functional
- 29 Jul 26 +20
- GHSA-frvp-7c67-39w9 affects this package: medium ▼ security
- Known CVEs: unverified → fail ▼ security
- Provenance: unverified → fail ▼ security
- Install scripts: unverified → pass ▲ security
- License: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- Maintenance: unverified → pass ▲ functional
- Licence: MIT functional
- 28 Jul 26 +20
- Tool coverage: unverified → 100 ▲ functional
- First check of Schema quality: fail functional
- First check of Tool coverage: 100 functional
- First check of Schema quality: fail functional
- First check of Schema quality: unverified functional
- 27 Jul 26 6
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Analysed npm/[email protected]
Provenance none
Ecosystem: npm · Outcome: none
Vulnerabilities 1 finding
| ID | CVE | Severity | Vector | Fix available |
|---|---|---|---|---|
| GHSA-frvp-7c67-39w9 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N | yes |
Dependencies 113 packages
113 packages in the resolved dependency tree · 112 deprecated · 34 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
zuckerbot_activate_campaign ~123
Temporarily unavailable during Dealify launch hardening. Intelligence campaigns are planning-only; create a legacy-mode draft and use zuckerbot_launch_campaign for the supported live path.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Intelligence campaign ID |
| meta_access_token | string | — | Optional Meta/Facebook access token override |
| meta_ad_account_id | string | — | Optional Meta ad account ID override (format: act_XXXXX) |
| meta_page_id | string | — | Optional Facebook Page ID override |
| tier_names | array | — | Optional subset of approved tiers to activate |
No output schema declared.
No examples provided.
zuckerbot_ad_accounts ~102
List Meta ad accounts available to the connected user and show which is currently selected for launches and reporting. Optionally select an ad account by providing select_id — this clears the stored page selection so you can pick a matching page. Call this during setup or when switching between multiple ad accounts.
| Name | Type | Req | Description |
|---|---|---|---|
| select_id | string | — | If provided, selects this Meta ad account ID for future operations (format: act_XXXXX). If omitted, lists all available accounts. |
No output schema declared.
No examples provided.
zuckerbot_analyse_account_history ~168
Analyse the historical ad performance for a business. For accounts WITH history: returns aggregated metrics by audience type, top performing creatives, and comparable CPL ranges. For NEW accounts with NO history: returns is_cold_start=true with industry benchmarks. Use this as the FIRST step in campaign planning — feed the result into zuckerbot_recommend_campaign_structure.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | — | Business ID (auto-resolved from API key if omitted) |
| include_audience_history | boolean | — | Include analysis of which audiences have been targeted before |
| lookback_days | integer | — | Number of days of history to analyse (default: 90) |
| target_audience | string | — | Optional audience keyword to check if it has been targeted before (e.g., 'pool builders') |
No output schema declared.
No examples provided.
zuckerbot_approve_campaign_strategy ~104
Approve the AI-generated intelligence strategy for a campaign, optionally narrowing to specific audience tiers and creative angles. This locks in the plan before creative production starts. Required before calling zuckerbot_request_creative or zuckerbot_upload_creative.
| Name | Type | Req | Description |
|---|---|---|---|
| angle_names | array | — | Optional subset of creative angle names to approve |
| campaign_id | string | yes | Intelligence campaign ID |
| tier_names | array | — | Optional subset of audience tier names to approve |
No output schema declared.
No examples provided.
zuckerbot_audit_account ~145
Run a full audit of the connected Meta ad account: wasted spend detection, creative fatigue, a complete-account opportunity score (0-100 when all inputs return), and prioritised action items. Saves a shareable web report when the API key resolves to one saved business. Read-only and available on every tier — the recommended FIRST call for any new account or when a user asks 'how are my ads doing?'.
| Name | Type | Req | Description |
|---|---|---|---|
| company_name | string | — | Company name used in the audit narrative. Defaults to the connected business name. |
| meta_ad_account_id | string | — | Meta ad account ID to audit (format: act_XXXXX). Defaults to the connected account. |
No output schema declared.
No examples provided.
zuckerbot_billing_status ~47
Check your current ZuckerBot billing tier, API call usage this month, remaining quota, and overage costs. Use this when a user asks about their plan or usage limits.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
zuckerbot_capi_status ~79
Get 7-day and 30-day CAPI delivery statistics for the business: total events sent, events by type (Lead/Contact/Purchase), match quality breakdown, and attribution counts. Use this to confirm CAPI is functioning and that events are being matched by Meta.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | — | Optional business ID override |
No output schema declared.
No examples provided.
zuckerbot_capi_test ~197
Send a synthetic CAPI test event through the business configuration to verify the full pipeline: stage mapping, hashing, and Meta Graph API delivery. Logs as a test event (does not affect real attribution). Use after setting up or updating CAPI config to confirm events are flowing.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | — | Optional business ID override |
| crm_source | string | — | Optional CRM source label override |
| fbc | string | — | Optional pre-formatted fbc cookie to verify raw passthrough |
| fbclid | string | — | Optional Facebook click ID to verify fbc construction/passthrough |
| fbp | string | — | Optional _fbp cookie to verify raw passthrough |
| source_stage | string | — | CRM stage key to test against the mapping |
| user_data | object | — | Optional user data to hash into the test payload |
| value | number | — | Optional event value override |
No output schema declared.
No examples provided.
zuckerbot_create_campaign ~389
Create a new campaign draft for a business. Defaults to legacy mode, the only launch-ready path during Dealify hardening. Intelligence mode remains available for planning only and cannot be activated. This tool does not spend money or create anything on Meta; review the draft, then use zuckerbot_launch_campaign.
| Name | Type | Req | Description |
|---|---|---|---|
| architect_session_id | string | — | Optional Campaign Architect session ID. When provided, the intelligence strategy is loaded from the session instead of generating fresh. |
| budget_daily_cents | integer | — | Daily budget in cents (e.g., 2000 = $20/day) |
| business_id | string | — | Existing ZuckerBot business ID to anchor intelligence mode |
| business_name | string | — | Business name (auto-detected from URL if omitted) |
| business_type | string | — | Business category (e.g., 'restaurant', 'fitness', 'roofing') |
| creative_handoff | object | — | Optional creative-production handoff settings |
| destination_url | string | — | Optional landing-page URL override for ad links, e.g. a campaign-specific LP instead of the business homepage. |
| goals | object | — | Optional business goals to guide planning |
| lead_destination | string | — | For objective='leads': 'meta_form' uses a Meta Instant Form (default), 'website' uses a Meta Pixel Lead event and links ads to destination_url. |
| location | object | — | Business location for geo-targeting |
| mode | string | — | Campaign planning mode. Default legacy is the only launch-ready path. auto/intelligence are planning-only while multi-tier activation is disabled. |
| objective | string | — | Campaign objective. 'leads' defaults to Meta Instant Form unless lead_destination is 'website', 'traffic' for website visits, 'conversions' for website actions, 'awareness' for reach. Default: traffic |
| url | string | yes | Business website URL |
No output schema declared.
No examples provided.
zuckerbot_create_campaign_from_spec ~533
Build a complete Meta campaign VERBATIM from a declarative JSON spec — no strategy generation, no copy authoring. Everything is created PAUSED, always; launching remains a separate deliberate call. Recommended flow: send with dry_run=true first to get the fully resolved Graph API payloads without creating anything, review them, then re-send without dry_run to build. Validation failures return an errors array of per-field {path, message, kind: schema|semantic} entries — fix each path and retry. Spec shape: campaign {name, objective OUTCOME_LEADS|OUTCOME_SALES, budget {type CBO_DAILY, amount, bid_strategy HIGHEST_VOLUME|LOWEST_COST_WITHOUT_CAP|COST_CAP}, special_ad_categories}, ad_sets [{name, conversion_location WEBSITE|INSTANT_FORM, attribution {click_days 1|7, view_days 0|1}, targeting {geo — ARRAY of 2-letter country codes e.g. ["AU"], age_min, advantage_audience, excluded_custom_audiences}, placements {mode MANUAL|ADVANTAGE_PLUS, exclude}; WEBSITE additionally: pixel_id, optimisation_event {type CUSTOM_CONVERSION, id}|{type STANDARD, event e.g. Lead}, performance_goal MAXIMISE_CONVERSIONS (the Ads Manager label, not the Graph enum); INSTANT_FORM instead: lead_form_id — the Meta instant form on the connected Page (no pixel_id, no optimisation_event, and its ads take NO final_url — the form is the destination; single-image creative, no multi-ratio placement customisation)}], ads [{name, asset {type IMAGE_SET, refs {1x1,4x5,9x16 — https URLs or uploaded image hashes}}|{type VIDEO, ref — pre-uploaded Meta video id}|{type EXISTING_AD, ad_id — clones that ad's image/video asset from the SAME ad account; copy, CTA and destination come from THIS spec}, primary_text, headline, description, cta, final_url (WEBSITE ad sets only), ad_set_name?}]. EXISTING_AD specs need Meta credentials even for dry_run (the source asset is read from Meta). Use zuckerbot_list_custom_conversions to find custom conversion ids.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | — | Optional business ID override for the authenticated API key |
| dry_run | boolean | — | true = return the resolved Graph payloads without creating anything. Strongly recommended before a real build |
| spec | object | yes | The declarative campaign spec (see tool description for the shape) |
No output schema declared.
No examples provided.
zuckerbot_create_custom_conversion ~150
Create a custom conversion on the connected ad account (requires sufficient Graph permissions on the Meta token — returns insufficient_permission if Meta refuses). Provide the pixel, a name, optionally a rule (e.g. URL contains ...) and the source event type.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | — | Optional business ID override for the authenticated API key |
| custom_event_type | string | — | Source event type, defaults to OTHER |
| name | string | yes | Display name for the custom conversion |
| pixel_id | string | yes | Pixel (event source) the conversion is based on |
| rule | object | — | Optional Meta rule object, e.g. {"url":{"i_contains":"/thank-you"}} |
No output schema declared.
No examples provided.
zuckerbot_create_full_campaign ~236
Build a complete PAUSED Meta campaign from an approved Campaign Architect session. IMPORTANT: dry_run defaults to TRUE. When dry_run=true, returns the exact campaign structure that WOULD be created without calling Meta — safe, free, no side effects. Present this to the customer first. Only set dry_run=false after explicit customer approval. When dry_run=false, creates Meta objects in PAUSED state for review; Architect auto-activation is temporarily disabled. Generated videos get linked for rejection tracking automatically.
| Name | Type | Req | Description |
|---|---|---|---|
| activate | boolean | — | Must remain false. Architect auto-activation is temporarily disabled; live mode creates PAUSED Meta objects only. |
| dry_run | boolean | — | DEFAULT TRUE. Set to false ONLY after customer has approved the dry-run preview. Live mode creates real Meta objects. |
| meta_access_token | string | — | Meta access token override (live mode only) |
| meta_ad_account_id | string | — | Meta ad account ID override (live mode only) |
| meta_page_id | string | — | Facebook Page ID override (live mode only) |
| session_id | string | yes | Campaign Architect session ID with approved strategy and creatives |
No output schema declared.
No examples provided.
zuckerbot_create_lookalike_audience ~145
Create a Meta lookalike audience from a stored seed audience. Expands a first-party seed (e.g., 'customer' stage) into a 1%, 3%, or 5% prospecting audience that Meta will target based on similarity. Typically used for the prospecting tier of an intelligence campaign.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | — | Lookalike country code, such as US or AU |
| name | string | — | Optional audience name override |
| percentage | number | — | Lookalike percentage, typically 1, 3, or 5 |
| seed_audience_id | string | yes | Stored seed audience row ID |
No output schema declared.
No examples provided.
zuckerbot_create_portfolio ~181
Create a planning and monitoring-only multi-tier audience portfolio for a business from a shared template (e.g., 'Local Services', 'eCommerce') or a custom tier array. Portfolios split a proposed total budget across prospecting, retargeting, and reactivation tiers with per-tier CPA targets. Portfolio launch is temporarily disabled during Dealify hardening.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | — | Optional business ID override |
| is_active | boolean | — | Whether the portfolio should be active immediately |
| name | string | — | Optional portfolio name |
| template_id | string | — | Optional portfolio template ID |
| template_name | string | — | Optional portfolio template name, such as 'Local Services' |
| tiers | array | — | Optional custom tier array to override the template |
| total_daily_budget_cents | integer | — | Total daily budget in cents |
No output schema declared.
No examples provided.
zuckerbot_create_seed_audience ~138
Build a Meta custom audience from hashed CAPI user data stored for a business, filtered by CRM lifecycle stage (e.g., 'lead', 'customer'). Use this as the first step to create retargeting or reactivation audiences from your own first-party CRM data.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | — | Optional business ID override |
| lookback_days | integer | — | How many days of CAPI events to include |
| min_contacts | integer | — | Minimum matched contacts required before creation |
| name | string | — | Optional audience name override |
| source_stage | string | yes | CRM lifecycle or source stage to seed from |
No output schema declared.
No examples provided.
zuckerbot_creative_analysis ~249
Analyse creative performance patterns for a business by grouping ads by hook type, visual style, product focus, setting, CTA type, copy tone, or opening element. Returns average CPL/CTR/CPC/frequency per group, per-group trend direction, a structured insight object with recommendations, and can optionally include the top and bottom individual ads for the selected metric. Use this before generating new briefs to inform the creative strategy.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | — | Optional business ID override |
| date_from | string | — | Optional start date in YYYY-MM-DD |
| date_to | string | — | Optional end date in YYYY-MM-DD |
| group_by | string | yes | Creative attribute to group by |
| include_ads | boolean | — | When true, include the top 5 and bottom 5 ads by the selected metric. |
| metric | string | — | Metric to rank by. Defaults to cpl. |
| min_impressions | integer | — | Optional minimum impression threshold per ad |
| min_spend | number | — | Optional minimum spend threshold per ad |
| summary_mode | boolean | — | When true, returns a condensed narrative summary optimised for feeding into recommend_campaign_structure. Default: false. |
No output schema declared.
No examples provided.
zuckerbot_creative_cross_analysis ~156
Cross two creative dimensions to find winning combinations. Example: hook_type × visual_style can reveal that curiosity + ugc outperforms pain_point + stock. Returns a performance matrix, best and worst combinations, and an actionable insight string.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | — | Optional business ID override |
| cross_by | string | yes | Secondary dimension to cross with |
| date_from | string | — | Optional start date in YYYY-MM-DD |
| date_to | string | — | Optional end date in YYYY-MM-DD |
| group_by | string | yes | Primary dimension |
| metric | string | — | Metric to rank by. Defaults to cpl. |
| min_spend | number | — | Optional minimum spend threshold per ad |
No output schema declared.
No examples provided.
zuckerbot_creative_qa ~96
Score proposed creative variants against the business's historical top-performing patterns. Accepts raw creative specs (copy, headline, CTA, asset URLs, frame URLs for video) and returns a pattern-match score for each. Use this before producing expensive creative assets to pre-validate concepts against what has historically worked.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | — | Optional business ID override |
| creatives | array | yes | Creative variants to score |
No output schema declared.
No examples provided.
zuckerbot_delete_audience ~67
Permanently delete a stored audience from both Meta and ZuckerBot's local registry. This cannot be undone. Use when an audience is stale, was created in error, or you need to free up Meta audience slots.
| Name | Type | Req | Description |
|---|---|---|---|
| audience_id | string | yes | Stored audience row ID |
No output schema declared.
No examples provided.
zuckerbot_enrich_business ~118
Crawl a business website and extract structured intelligence used by campaign planning: company description, services, pricing signals, testimonials, location data, and brand tone. Run this before creating a campaign when the business has not been enriched yet, or use force_refresh after a website update to refresh stale context.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | — | Optional business ID override |
| force_refresh | boolean | — | Re-scrape even when cached context exists |
| url | string | — | Optional website URL override. Uses the stored business website when omitted. |
No output schema declared.
No examples provided.
zuckerbot_generate_briefs ~174
Generate creative production briefs based on the business's tagged ad-performance patterns. Each brief specifies hook type, visual style, copy tone, CTA, and script guidance weighted toward the top-performing creative attributes. Use after running zuckerbot_creative_analysis to know which patterns to bias toward.
| Name | Type | Req | Description |
|---|---|---|---|
| bias | string | — | Optional generation bias, for example performance or exploration |
| business_id | string | — | Optional business ID override |
| count | integer | — | How many briefs to generate. Defaults to 5. |
| exclude_angles | array | — | Optional angles or product focuses to avoid |
| font_preset | string | — | Optional font preset override |
| metric | string | — | Optional ranking metric. Defaults to cpl. |
| target_market | string | — | Optional target market override, for example AU or US |
No output schema declared.
No examples provided.
zuckerbot_generate_campaign_brief ~208
Generate a detailed creative brief from an approved campaign structure. SAFE — pure function, no Meta API calls, no money spent. Automatically pulls brand context and historical creative patterns (or uses brand context alone for cold-start accounts). Returns per-slot creative directions: for static ads, specific ad template + headline/body/CTA + hero image prompt; for video ads, hook concept + voiceover direction + visual style. After brief is generated, present it to the customer, then call zuckerbot_generate_static_ad / zuckerbot_generate_video_ad for each slot.
| Name | Type | Req | Description |
|---|---|---|---|
| additional_creative_direction | string | — | Optional extra direction from the customer (e.g., 'lean into fear of missing calls') |
| approved_structure | string | — | JSON string of approved campaign structure (if no session_id) |
| business_id | string | — | Business ID (auto-resolved from API key if omitted) |
| session_id | string | — | Architect session ID from zuckerbot_recommend_campaign_structure |
No output schema declared.
No examples provided.
zuckerbot_get_account_insights ~206
Fetch historical Meta ad account performance for a connected business over a date range. Returns spend, clicks, impressions, CTR, CPM, CPC, and frequency aggregated daily or monthly. AUTO-PAGINATES the full requested range; the response includes row_count, covered {date_from, date_to} (the range actually returned) and truncated — truncated=true means the fetch stopped early: narrow the date range and re-request rather than trusting totals. Note zero-delivery days are legitimately absent from data, so also compare covered against the range you asked for. Useful for top-level budget reporting and month-over-month trend analysis without opening Ads Manager.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | — | Optional business ID override linked to the connected Meta ad account |
| date_from | string | yes | Start date in YYYY-MM-DD format |
| date_to | string | yes | End date in YYYY-MM-DD format |
| time_increment | string | — | Whether to break the results down daily or monthly |
No output schema declared.
No examples provided.
zuckerbot_get_audience_status ~66
Fetch the current Meta delivery status, size, and readiness for a stored audience. Updates the local audience registry row. Use this to check if an audience is large enough to use in a campaign before launch.
| Name | Type | Req | Description |
|---|---|---|---|
| audience_id | string | yes | Stored audience row ID |
No output schema declared.
No examples provided.
zuckerbot_get_campaign ~66
Fetch the full details of a ZuckerBot campaign by ID: intelligence workflow state, approved strategy, stored creatives, audience tier executions, and performance status. Use this to inspect a campaign at any stage of the lifecycle.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | ZuckerBot campaign ID |
No output schema declared.
No examples provided.
zuckerbot_get_campaign_insights ~492
Query campaign, ad set, or ad-level performance for any campaign in the connected Meta ad account — including campaigns not created by ZuckerBot. Tags each row with is_zuckerbot so you can benchmark ZuckerBot campaigns against manually managed ones. Supports date range filtering, campaign name search, status filters, time-series breakdowns, and multi-column sorting. For deduped truth use meta_result / cost_per_meta_result (Meta's Ads Manager "Results" for any objective) or conversion_leads / meta_leads — not the inflated, deprecated leads / cpl (the response's metric_semantics object labels every lead field). meta_result and conversion_leads are most reliable on campaign-level, non-time-incremented queries. Adset/ad rows report their OWN status — status_scope says which entity a row's status belongs to, statuses are as of status_synced_at, and refresh=true re-syncs them; spend-by-date is authoritative for whether delivery actually happened.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | — | Optional business ID override linked to the connected Meta ad account |
| campaign_ids | string | — | Optional comma-separated Meta campaign IDs |
| date_from | string | — | Optional start date in YYYY-MM-DD format. Defaults to 7 days ago. |
| date_to | string | — | Optional end date in YYYY-MM-DD format. Defaults to today. |
| level | string | — | Return campaign totals, ad set breakdowns, or ad breakdowns |
| limit | integer | — | Maximum campaigns to return after sorting |
| refresh | boolean | — | Bypass the short-lived performance cache |
| search | string | — | Optional case-insensitive campaign name substring filter |
| sort | string | — | Optional sort field. Plain values sort descending; prefix with '+' for ascending. One of: spend, leads, cpl, meta_leads, conversion_leads, cpcl, meta_result, cpmr, results, cpr, ctr, impressions. Pre… |
| status | string | — | Optional status filter. Use active, paused, or all for the simple path, or pass legacy comma-separated values such as ACTIVE,PAUSED. |
| time_increment | string | — | Optional daily or monthly time-series breakdown |
No output schema declared.
No examples provided.
zuckerbot_get_capi_config ~123
Fetch the current Conversions API configuration for a business: whether CAPI delivery is enabled, CRM source, currency, stage-to-event mappings, action source, and webhook URL. Use this before configuring CAPI to see what is already set, or to audit the current event mapping. The webhook secret is write-only: reads return webhook_secret_set and webhook_secret_last4, never the full value — use zuckerbot_rotate_webhook_secret to mint a new one.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | — | Optional business ID override for the authenticated API key |
No output schema declared.
No examples provided.
zuckerbot_get_creative_status ~83
Check the asynchronous upload queue for an intelligence campaign to see if Meta ad-creation jobs are complete. Poll this after zuckerbot_upload_creative when the initial response shows creative_status='uploading'. Returns all_complete=true when every queued job has finished for review; intelligence activation is temporarily disabled.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Intelligence campaign ID |
No output schema declared.
No examples provided.
zuckerbot_get_launch_credentials ~69
Resolve and validate all stored Meta launch credentials for the authenticated user: access token, ad account, page, and pixel. Reports whether autonomous launch (no credential params needed at launch time) is possible. Call this after completing the setup sequence to confirm everything is ready before launching a campaign.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
zuckerbot_get_performance ~99
Fetch real-time performance metrics for a ZuckerBot campaign. Legacy campaigns return a flat metrics summary (impressions, clicks, leads, spend, CPL, CTR). Intelligence campaigns additionally return tier-by-tier and ad-by-ad Meta insights, daily breakdowns, CAPI attribution totals, and AI-recommended next actions. Use this to monitor an active campaign or to diagnose underperformance.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | ZuckerBot campaign ID |
No output schema declared.
No examples provided.
zuckerbot_get_portfolio ~73
Fetch the configuration and current performance snapshot for an audience portfolio by ID. Returns tier definitions, budget allocations, CPA targets, and any existing performance data. Use this to inspect a portfolio for planning, monitoring, or rebalancing an already-active portfolio.
| Name | Type | Req | Description |
|---|---|---|---|
| portfolio_id | string | yes | Audience portfolio ID |
No output schema declared.
No examples provided.
zuckerbot_launch_campaign ~278
Launch a draft campaign on Meta (Facebook/Instagram). THIS IS THE MONEY ENDPOINT — it creates real ads on the user's Meta ad account and immediately begins spending their budget. Stored Meta credentials are auto-resolved when available. Set launch_all_variants=true to launch every creative variant as separate ads for A/B testing (Meta auto-optimizes for the winner). Always confirm the user has budget available and Meta is connected (zuckerbot_meta_status) before calling.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | ZuckerBot campaign ID from the create step |
| daily_budget_cents | integer | — | Override daily budget in cents |
| launch_all_variants | boolean | — | Launch all creative variants as separate ads for A/B testing. Meta will auto-optimize for the winner. |
| meta_access_token | string | — | User's Meta/Facebook access token. Optional if Facebook is connected on zuckerbot.ai |
| meta_ad_account_id | string | — | Meta ad account ID (format: act_XXXXX). Optional if Facebook is connected on zuckerbot.ai |
| meta_page_id | string | — | Facebook Page ID. Optional if Facebook is connected on zuckerbot.ai |
| radius_km | integer | — | Override targeting radius in km |
| variant_index | integer | — | Which creative variant to launch (0-indexed) |
No output schema declared.
No examples provided.
zuckerbot_launch_portfolio ~123
Temporarily unavailable during Dealify launch hardening. Portfolio planning and monitoring remain available, but new multi-tier launches must not create Meta objects. Create a legacy-mode draft and use zuckerbot_launch_campaign for the supported live path.
| Name | Type | Req | Description |
|---|---|---|---|
| meta_access_token | string | — | Optional Meta/Facebook access token override |
| meta_ad_account_id | string | — | Optional Meta ad account ID override (format: act_XXXXX) |
| meta_page_id | string | — | Optional Facebook Page ID override |
| portfolio_id | string | yes | Audience portfolio ID to launch |
No output schema declared.
No examples provided.
zuckerbot_lead_forms ~109
List Meta lead forms (Instant Forms) available on the selected Facebook Page and show which is currently selected. Optionally select a form by providing select_id to persist it for future lead generation campaign launches. Use this before launching a leads-objective campaign so ZuckerBot reuses the business's CRM-connected form rather than creating a new one.
| Name | Type | Req | Description |
|---|---|---|---|
| select_id | string | — | If provided, selects this Meta lead form ID for future lead generation launches. If omitted, lists all available forms. |
No output schema declared.
No examples provided.
zuckerbot_list_audiences ~77
List all stored Meta audiences for a business: seed audiences, lookalike audiences, sizes, delivery statuses, and CAPI source details. Use this to see what audiences are available before launching a campaign, or to find audience IDs for refresh and delete operations.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | — | Optional business ID override |
No output schema declared.
No examples provided.
zuckerbot_list_business_context ~64
List all uploaded business-context files for a business along with their extracted summaries. Use this to confirm what planning documents are loaded before creating a campaign, or to check whether a previous upload was processed successfully.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | — | Optional business ID override |
No output schema declared.
No examples provided.
zuckerbot_list_custom_conversions ~68
List the custom conversions on the connected ad account: id, name, rule, source event and pixel. Use this to find the custom conversion id a campaign spec's optimisation_event should reference.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | — | Optional business ID override for the authenticated API key |
No output schema declared.
No examples provided.
zuckerbot_meta_pages ~82
List Facebook Pages available to the connected Meta account and show which is currently selected for ad delivery. Optionally select a page by providing select_id. The selected page is used as the ad identity for all future launches.
| Name | Type | Req | Description |
|---|---|---|---|
| select_id | string | — | If provided, selects this Facebook Page ID for future ad launches. If omitted, lists all available pages. |
No output schema declared.
No examples provided.
zuckerbot_meta_status ~58
Check whether the user's Facebook/Meta account is connected to ZuckerBot. Returns connection status, connected ad accounts, and a connect URL if not yet linked. Always call this before attempting to launch a campaign to confirm Meta credentials are available.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
zuckerbot_pause_campaign ~173
Pause delivery at any level: a whole campaign (default), one ad set, or one ad — set entity_level and pass the matching id. Pausing stops delivery and spend immediately while leaving the object in Meta, and the response reports the prior status. Use adset/ad level to stop an underperformer WITHOUT killing the winners in the same campaign. Resume is temporarily disabled during Dealify launch hardening.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | — | Pause the campaign |
| campaign_id | string | — | ZuckerBot campaign ID (required when entity_level is campaign — the default) |
| entity_id | string | — | Numeric Meta ad set or ad ID (required when entity_level is adset or ad) |
| entity_level | string | — | What to pause: the whole campaign, one ad set, or one ad |
No output schema declared.
No examples provided.
zuckerbot_pixels ~82
List Meta Pixels available on the currently selected ad account and show which is currently selected for conversion tracking. Optionally select a pixel by providing select_id. The selected pixel is used for all future conversion tracking and CAPI attribution.
| Name | Type | Req | Description |
|---|---|---|---|
| select_id | string | — | If provided, selects this Meta Pixel ID for conversion tracking. If omitted, lists all available pixels. |
No output schema declared.
No examples provided.
zuckerbot_portfolio_performance ~76
Fetch live Meta performance and downstream CAPI attribution for a launched audience portfolio. Returns enriched tier rows with ad breakdowns, daily metrics, CPA vs. target comparisons, and autonomous evaluation outputs. Use this to monitor a running portfolio and decide whether to rebalance.
| Name | Type | Req | Description |
|---|---|---|---|
| portfolio_id | string | yes | Audience portfolio ID |
No output schema declared.
No examples provided.
zuckerbot_preview_campaign ~104
Generate a zero-cost campaign preview from any business URL. Scrapes the site, writes AI-generated headlines and body copy, and generates ad images — all without a Meta account or live budget. Use this as the first step to show a user what their ads could look like before committing to a full campaign.
| Name | Type | Req | Description |
|---|---|---|---|
| ad_count | integer | — | Number of ad variants to generate (1-3) |
| url | string | yes | Business website URL to generate ads for |
No output schema declared.
No examples provided.
zuckerbot_quickstart ~87
Show the current ZuckerBot authentication mode (demo vs authenticated), the Free/Pro/Scale and Lifetime billing tiers, setup instructions if not yet configured, and the recommended tool flow from audit → campaign → launch → performance. Returns status, recommended_flow steps, pricing info, and setup guide for unauthenticated users. Call this first in any new session to orient the agent.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
zuckerbot_rebalance_portfolio ~116
Dry-run or execute a budget rebalance across portfolio tiers based on each tier's actual vs. target CPA. With dry_run=true (default) returns recommendations without making changes — useful for review before committing. With dry_run=false updates Meta ad set budgets and local records in one operation.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | — | When true, returns recommendations without applying changes |
| meta_access_token | string | — | Optional Meta access token override for ad set budget updates |
| portfolio_id | string | yes | Audience portfolio ID |
No output schema declared.
No examples provided.
zuckerbot_recommend_campaign_structure ~357
Generate a campaign structure recommendation: audience tiers, budget allocation, creative mix. For accounts WITH history: uses Claude to generate data-driven recommendations. For NEW accounts (cold start): generates conservative defaults from industry benchmarks + safe 2-tier structure (broad 60% / interest 40%). Always returns comparable_historical_cpl with source (account_history or industry_benchmarks) and a disclaimer — NEVER a CPL projection. Lead campaigns default to Meta Instant Form; for leads driving to a website landing page rather than Meta Instant Form, set lead_destination='website'. Present the recommendation to the customer for approval before proceeding.
| Name | Type | Req | Description |
|---|---|---|---|
| business_id | string | — | Business ID (auto-resolved from API key if omitted) |
| constraints | object | — | Optional constraints on the recommendation |
| daily_budget_aud | number | — | Daily budget in AUD. If omitted, defaults to $50/day. |
| destination_url | string | — | Optional landing-page URL for this campaign. Required/recommended for lead_destination='website'; overrides the business website for ad links. |
| history_digest | string | — | Optional JSON string of a prior zuckerbot_analyse_account_history result. If omitted, history is pulled automatically. |
| lead_destination | string | — | For objective='leads': 'meta_form' uses a Meta Instant Form (default), 'website' optimizes for the Pixel Lead event on a landing page. |
| objective | string | — | Campaign objective. If omitted, defaults to 'leads' for most SMB use cases. Leads default to Meta Instant Form unless lead_destination is 'website'. |
| target_audience | string | yes | Target audience description (e.g., 'pool builders in Texas', 'plumbers in Brisbane') |
No output schema declared.
No examples provided.
zuckerbot_redeem_license ~158
Redeem a ZuckerBot lifetime licence code (format ZB-XXXXX-XXXXX-XXXXX) purchased on Dealify or AppSumo. Each code activates the plan it was purchased for: Tier 1 (1 ad account, 2,500 calls/mo), Tier 2 (3 accounts, 10K calls/mo) or Tier 3 (10 accounts, 30K calls/mo). Codes also stack additively on one account up to Tier 3 — e.g. two Tier 1 codes = Tier 2. Redeeming upgrades ALL of the account's API keys to the new tier immediately.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | Lifetime licence code in the format ZB-XXXXX-XXXXX-XXXXX |
No output schema declared.
No examples provided.
zuckerbot_refresh_audience ~89
Rebuild a stored audience from fresh data. For seed audiences: re-hashes the latest CAPI events for the source CRM stage. For lookalike audiences: syncs the current size and delivery status from Meta after the seed refreshes. Use this when CAPI has received new events since the audience was last built.
| Name | Type | Req | Description |
|---|---|---|---|
| audience_id | string | yes | Stored audience row ID |
No output schema declared.
No examples provided.
zuckerbot_research_competitors ~152
Scrape Meta Ad Library and search the web to analyse competitor ads in a given industry and location. Returns competitor positioning, common creative hooks, and exploitable gaps. Use before creating a campaign to benchmark against the competitive landscape and find differentiation opportunities.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | — | Optional 2-letter country code to refine Meta Ad Library results (e.g., 'US', 'AU'). Defaults to US. |
| industry | string | yes | Business industry or category (e.g., 'dental', 'online party games', 'roofing') |
| location | string | yes | City, region, or country to scope the competitor search (e.g., 'Austin, TX', 'United States') |
No output schema declared.
No examples provided.
zuckerbot_research_market ~104
Get market size, addressable audience estimates, and Meta ad benchmarks (CPL, CTR, CPM) for an industry and location. Use before creating a campaign to set realistic budget expectations and understand how large the targetable audience is. Also useful for proposals and client presentations.
| Name | Type | Req | Description |
|---|---|---|---|
| industry | string | yes | Industry/business category (e.g., 'fitness', 'dental') |
| location | string | yes | City/region (e.g., 'United States') |
No output schema declared.
No examples provided.