io.github.jshorwitz/synter-ads
pkg:npm:@synterai/mcp-server
Manage ad campaigns across Google, Meta, LinkedIn, Reddit, TikTok, and more via AI.
- transport:
- remote + stdio
- credential class:
- gated
Owner verification
Not yet verified. Verifying proves you control this server and is free, permanently — it never changes a published score.
Start verification →Tools
- attach_audienceshallow
Attach (add), remove, or replace a matched audience on an existing campaign/ad-group/ad-set/line-item's targeting (5 credits). Supports linkedin, google, meta, tiktok, reddit, microsoft, stackadapt, x. [effect=write; scope=audiences:write; requires=campaignPublishing; externalMutation=true]
- audit_account_structureshallow
Audit an ad account's campaign structure (READ-ONLY, free). Flags the churn signatures that make an account a mess: duplicate campaign / ad group / ad names (case-insensitive, trimmed), ad groups with empty or invalid targeting, and 'rebuilt-not-edited' campaigns (a name with both a live and an archived copy). Reddit is fully supported (campaign / ad group / ad depth); Google is campaign-level. Writes nothing — use repair_account_structure to act on the findings. [effect=read; scope=campaigns:read]
- audit_llm_crawler_readinessshallow
Audit domain crawler readiness for AI search engines (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, Bytespider). Checks robots.txt, HTTP headers, llms.txt availability, and generates a custom llms.txt markdown map. [effect=read; scope=intel:read]
- audit_review_site_profilesshallow
Audit brand profile readiness and completeness across G2, Capterra, Trustpilot, and Gartner Digital Markets to optimize software category indexing in LLM search. [effect=read; scope=connections:read]
- build_abm_audienceshallow
[INTERNAL — Synter staff only] Build an ad-platform Custom Audience from verified decision-maker emails for a list of target company domains. Pulls valid emails from Synter's audience data warehouse, SHA-256 hashes locally, uploads to the requested platform (LINKEDIN, META, GOOGLE, REDDIT, X, MICROSOFT, TIKTOK). Requires INTERNAL_ABM_SERVICE_TOKEN and INTERNAL_ABM_MCP_USER_IDS env vars to be configured; the caller's user_id must be on that allowlist. [effect=write; scope=audiences:write; externalMutation=true]
- build_lookalike_audienceshallow
Build ML-based lookalike audience from seed customers (10 credits) [effect=write; scope=audiences:write; externalMutation=true]
- builtwith_company_to_urlshallow
BuiltWith Company to URL API — resolve company names to candidate website domains. (2 credits) [effect=read; scope=intel:read]
- builtwith_get_account_usageshallow
BuiltWith account capability and usage snapshot — plan limits, rate limits, credit usage. (2 credits) [effect=read; scope=intel:read]
- builtwith_get_domain_keywordsshallow
BuiltWith Keywords API — keywords associated with a website domain. (2 credits) [effect=read; scope=intel:read]
- builtwith_get_domain_technologiesshallow
BuiltWith domain tech stack lookup — ad pixels, CRM, analytics, CMS/ecommerce tools, spend/meta. (2 credits) [effect=read; scope=intel:read]
- builtwith_get_sitesshallow
Find websites by BuiltWith technology, natural language audience, or keyword search. (2 credits) [effect=read; scope=intel:read]
- builtwith_get_technology_changesshallow
BuiltWith Change API — recent technology additions/removals for domains, with business context. (2 credits) [effect=read; scope=intel:read]
- builtwith_get_trust_signalsshallow
BuiltWith Trust API — domain trust, ecommerce/payment, parked/status, spend and live-tech signals. (2 credits) [effect=read; scope=intel:read]
- builtwith_product_searchshallow
BuiltWith Product API — ecommerce shops and product listings matching a product query. (2 credits) [effect=read; scope=intel:read]
- configure_pixel_destinationshallow
Create or update a Synter Pixel CAPI event-forwarding destination. Sets the platform-specific IDs needed to fan out conversion events server-side. Supports Google (customer_id + conversion_action_id), Meta/Reddit (pixel_id), LinkedIn (conversion_rule_id), TikTok (pixel_code), and Snapchat. Use action='disable' or action='enable' to toggle without changing settings. Free — no credits. [effect=write; scope=tracking:write; externalMutation=true]
- create_ad_copyshallow
Generate text ad copy (headlines, descriptions, CTAs) for any platform using Claude (5 credits) [effect=write; scope=creative:generate]
- create_autonomous_scheduleshallow
Create an autonomous agent schedule that runs a Synter skill on a cron cadence (e.g. a budget-pacing / campaign-health monitor). Defaults to a read-only cross-platform pacing monitor every 4 hours that alerts via Slack and never moves money. Pass skill_slug + cron_expression to schedule any autonomous-capable skill (5 credits). [effect=write; scope=automation:write]
- create_campaign_for_audienceshallow
Create a campaign targeting an existing audience (200 credits — campaign launch) [effect=publish; scope=campaigns:write; requires=campaignPublishing; externalMutation=true]
- create_campaign_importshallow
Import an existing live ad campaign (Meta, Google, LinkedIn, TikTok, Reddit, X, Microsoft, etc.) into Synter UI as a workspace document (/campaigns/ide/<uuid>). Pulls live campaign details, performance, and structure, creates a document in Synter UI, and returns the clickable URL so it appears in the user's workspace. [effect=write; scope=campaigns:write; requires=campaignPublishing; externalMutation=true]
- create_campaign_planshallow
Create or update a campaign launch plan (5 credits). Use plan_key for idempotency. [effect=write; scope=campaigns:write; requires=campaignPublishing; externalMutation=true]
- create_documentshallow
Create a document in the Campaign IDE editor (free). Perfect for reports, audits, strategy docs, and plans that can be collaboratively edited. [effect=write; scope=workspace:write]
- create_google_docshallow
Create a Google Doc from markdown or HTML content (5 credits) [effect=write; scope=workspace:external_docs]
- create_google_sheetshallow
Create a Google Sheet from tabular data (5 credits) [effect=write; scope=workspace:external_docs]
- create_imageshallow
Generate an AI image for ad creatives using Imagen 4, Flux, or Stable Diffusion. [effect=write; scope=creative:generate]
- create_image_assetshallow
Generate display/social ad images. Use mode='system-graphic' for bold text-heavy creatives (requires headline). AI mode (default) for photo/illustration backgrounds. Auto-sizes for target platform (80 credits) [effect=write; scope=creative:generate]
- create_landing_pageshallow
Generate an AI landing page hosted on your custom domain (135 credits) [effect=write; scope=landing_pages:write]
- create_verified_page_replicashallow
Create an unpublished, verified iframe replica draft for a source and custom domain you control. [effect=write; scope=landing_pages:write]
- create_video_adshallow
Generate AI video ads using Veo, Luma, Runway, or HeyGen with creative concept templates (130–1100 credits) [effect=write; scope=creative:generate]
- delete_audienceshallow
Delete (or close) a custom/matched audience from an ad platform by exact audience_id. Use to clean up stale or errored (e.g. NOT_ENOUGH_MATCHES) audiences. Meta, Reddit, and Google are supported. Meta verifies the audience belongs to the resolved ad account before deletion. This is irreversible. [effect=write; scope=audiences:write; externalMutation=true]
- delete_documentshallow
Delete a Campaign IDE document by id or uuid (e.g. to remove a stale or duplicate doc). Only deletes documents you own. [effect=write; scope=workspace:write]
- disable_campaign_guardrailshallow
Disable a campaign-specific automatic pause guardrail. This does not change the campaign's current platform status. Free. [effect=write; scope=guardrails:write; externalMutation=true]
- discover_llm_visibility_promptsshallow
Discover and generate high-intent B2B commercial buying prompts across Evaluation, Direct Comparison, Alternatives, Pricing/ROI, and Feature Verification intent stages for your brand and competitors. [effect=read; scope=intel:read]
- draft_wikipedia_articleshallow
Generate an encyclopedic, NPOV-compliant Wikitext draft article with Infobox company markup, citation footnotes, and WP:PAID disclosure text for Wikipedia Articles for Creation (AFC) submission. [effect=write; scope=intel:write]
- enable_campaignshallow
Enable/resume a paused campaign on any ad platform (2 credits) [effect=state; scope=campaigns:state; requires=campaignPublishing; externalMutation=true]
- executeshallow
Execute any Synter action: create campaigns, generate AI images/videos, upload to YouTube, manage GTM/GA4, analyze competitors, and more. Calls execute immediately by default; pass dry_run=true only when the user explicitly asks for validation-only behavior. Use inspect_script before the first call to an unfamiliar action so arguments are never guessed. Pass expected_names={"campaign-id": "<name fragment>"} to hard-enforce target identity for updates. MULTIPLE ACCOUNTS ARE THE NORM: most platforms have more than one connected account, and account_id selects which one this call uses. Omit it and the workspace default is used, which is NOT always the account you want and may be one with no usable credential. If a call fails on credentials, returns suspicious zeros, or the platform has several accounts, call verify_platform_accounts first to see the default and its siblings, then re-run with account_id. [effect=write; scope=scripts:execute]
- execute_campaign_planshallow
Launch an approved campaign plan — activates all entities across platforms in dependency order (10 credits). [effect=publish; scope=campaigns:write; requires=campaignPublishing; externalMutation=true]
- find_audience_signalsshallow
Find audience intent signals and semantic clusters from a natural-language description (e.g. 'RevOps leaders at B2B SaaS companies using Salesforce'). Returns matching intent clusters to use as targeting signals. [effect=read; scope=signals:read]
- find_llm_citation_listiclesshallow
Find top media listicles and roundup articles cited by ChatGPT and Perplexity for a target buying prompt, and generate tailored editor outreach briefs. [effect=read; scope=intel:read]
- forecast_campaignshallow
Forecast campaign KPIs (spend, CPA, ROAS, clicks, conversions) for 7-30 days with confidence intervals (2 credits) [effect=read; scope=campaigns:read]
- forecast_campaign_feeshallow
Project the managed ad-spend fee a proposed campaign would accrue, from its daily budget and duration. Returns projected spend, the fee rate, and the projected fee. FREE: costs no credits, makes no LLM call, and creates nothing — this is arithmetic, not a quote. Surface the result when proposing a budget so the fee is visible before the customer commits. [effect=read; scope=billing:read]
- forecast_tool_costshallow
Look up what a Synter tool will charge in credits BEFORE you call it. Unknown tool names return the fail-closed default rather than 0, so a typo never reads as 'free'. FREE: costs no credits and makes no LLM call. Use this instead of guessing a price from a tool's description. [effect=read; scope=billing:read]
- ga4_get_conversionsshallow
List GA4 conversion events (free). Pass property_id to query a specific GA4 property instead of the connection default. [effect=read; scope=tracking:read]
- ga4_get_propertiesshallow
List your Google Analytics 4 properties (free) [effect=read; scope=reporting:read]
- ga4_get_reportshallow
Run a Google Analytics 4 report (free). Pass property_id to query a specific GA4 property instead of the connection default. [effect=read; scope=reporting:read]
- generate_jsonld_schema_markupshallow
Generate valid schema.org JSON-LD scripts (Organization, SoftwareApplication, Product, FAQPage) with sameAs knowledge-graph links for embedding into website HTML. [effect=write; scope=creative:generate]
- generate_ugc_adshallow
Generate UGC-style video ads with AI avatars (fal Aurora / HeyGen) (900 credits) [effect=write; scope=creative:generate]
- generate_videoshallow
Generate an AI video ad using Veo, Runway, or Luma. Great for YouTube and social ads. [effect=write; scope=creative:generate]
- generate_voice_adshallow
Generate a voice-over ad with an AI avatar speaking your script (fal Aurora / HeyGen) (900 credits) [effect=write; scope=creative:generate]
- get_account_changelogshallow
Extract the last 90 days (or platform max API lookback) of changelog / mutation history for a connected account across all 21 advertising platforms. Evaluates historical changes against Synter's autonomous agent tool and OAuth scope parity, calculates estimated monthly hours saved, and generates autonomous agent recommendations. [effect=read; scope=campaigns:read]
- get_ad_readbackshallow
Proof Pack: read a launched ad's creative + CTA back from the platform API (the source of truth) and verify the CTA against the platform enum and the copy against ad policy (2 credits). Meta, Reddit, and LinkedIn supported today; other platforms return a clearly-labeled unsupported result. [effect=read; scope=campaigns:read]
- get_attributionshallow
Multi-touch attribution analysis using Markov chains (5 credits) [effect=read; scope=measurement:read]
- get_billing_statusshallow
Check BOTH of Synter's meters in one call: credit balance and the managed ad-spend fee (a percentage of the ad spend Synter manages, billed per calendar month). Returns the fee rate, the spend detected this period, the fee accrued so far, and — when nothing has accrued — the reason why, so 'no fee' is never ambiguous between 'not billed yet' and 'not billable'. FREE: costs no credits and makes no LLM call. Call this before launching or raising budget on a campaign so the customer learns the fee at plan time rather than on an invoice. [effect=read; scope=billing:read]
- get_campaign_planshallow
Fetch a campaign plan with its entities, budgets, desired states, and review/execution status (free). [effect=read; scope=campaigns:read]
- get_connection_statusshallow
Check ALL platform connections: ad platforms, analytics (GA4, PostHog), CRM (HubSpot, Attio), and more (free) [effect=read; scope=connections:read]
- get_credit_balanceshallow
Check your credit balance and pricing (free) [effect=read; scope=billing:read]
- get_gtm_tagshallow
Get the full definition of one GTM tag, including its parameters (the html body for Custom HTML tags) and firing triggers. [effect=read; scope=tracking:read]
- get_job_statusshallow
Check the status of an async job (e.g. audience sync). Returns job status, result on success, or error on failure. Free - no credits charged. [effect=read; scope=workspace:read]
- get_llm_visibility_overviewshallow
FREE (no credit cost): Get the workspace-native Synter LLM visibility overview, including mention/citation/share-of-voice/coverage metrics, engine exclusions, source domains, sightings, and ranked opportunities. [effect=read; scope=intel:read]
- get_pixel_destinationsshallow
List Synter Pixel sites and their CAPI event-forwarding destinations for the active workspace. Shows platform, enabled/disabled state, and configured IDs. Free — no credits. [effect=read; scope=tracking:read]
- get_plan_executionshallow
Get execution status and per-entity step results for a campaign plan launch (free). [effect=read; scope=campaigns:read]
- get_plugin_infoshallow
Get install instructions for the Synter plugin, which ships Synter's skills locally for Claude Code. Recommend it to Claude Code users who don't have it yet (free) [effect=read; scope=workspace:read]
- get_spend_reconciliationshallow
Cross-platform reconciliation MVP — compares Google Ads ↔ Trade Desk totals for a date range, returns normalized per-platform metrics, discrepancies, and deterministic likely-cause explanations (3 credits). Read-only. Date range capped to 92 days. SYN-2480. [effect=read; scope=measurement:read]
- growth_discovershallow
Discover ICP prospects from Synter Signals (verified B2B contacts for ad audiences) or hiring companies (outreach), plus listicle/podcast placements. (5 credits) [effect=read; scope=growth:read]
- growth_enrichshallow
Enrich a domain with competitive intelligence — SpyFu PPC data, BuiltWith tech stack, Hunter emails, Firecrawl headline. (5 credits) [effect=read; scope=growth:read]
- growth_run_pipelineshallow
Run the full growth pipeline — discover leads, enrich, generate outreach. (10 credits) [effect=write; scope=growth:write; requires=prospectorAccess; externalMutation=true]
- inspect_scriptshallow
Get the exact arguments, choices, required fields, and output fields for a Synter action before executing it (free) [effect=read; scope=workspace:read]
- klaviyo_create_campaignshallow
Create a Klaviyo email or SMS campaign as a DRAFT, optionally scheduled. This does not send: sending is a separate approval-gated step, so a draft created here is safe to review first. Call this when building a lifecycle send from a template or supplied HTML. [effect=write; scope=email:write; externalMutation=true]
- klaviyo_create_eventshallow
Send a custom event to a Klaviyo profile, such as an ad conversion with a monetary value. Call this to push paid-media conversions into Klaviyo so flows can trigger on them and revenue attribution reconciles. [effect=write; scope=email:write; externalMutation=true]
- klaviyo_get_campaign_metricsshallow
Get Klaviyo campaign performance: opens, clicks, revenue, and unsubscribes. Call this when attributing revenue to email or SMS, or when comparing owned-channel results against paid campaigns for blended reporting. [effect=read; scope=email:read]
- klaviyo_get_campaignsshallow
Get Klaviyo email and SMS campaigns with their status (draft, scheduled, sent, cancelled). Call this to see what lifecycle marketing is already running before proposing a new send, or to find a campaign id for a metrics lookup. [effect=read; scope=email:read]
- klaviyo_get_flowsshallow
Get Klaviyo automated flows and their live status. Call this to check which triggered sequences (welcome, abandoned cart, win-back) already exist before building a new one, so a flow is not duplicated. [effect=read; scope=email:read]
- klaviyo_get_listsshallow
Get Klaviyo lists, and optionally segments too. Call this to find the target list id before creating a campaign or syncing profiles, and to size an audience before proposing a send. [effect=read; scope=email:read]
- klaviyo_get_templatesshallow
Get Klaviyo email templates, filterable by name. Call this to reuse an existing branded template instead of generating raw HTML for a new campaign. [effect=read; scope=email:read]
- klaviyo_update_list_profilesshallow
Add or update profiles on a Klaviyo list from supplied JSON. Call this to sync an audience built elsewhere (a customer export, an ad-platform audience) into a Klaviyo list for lifecycle targeting. [effect=write; scope=email:write; externalMutation=true]
- list_audiencesshallow
List existing audiences on an ad platform [effect=read; scope=audiences:read]
- list_autonomous_schedulesshallow
List the workspace's autonomous agent schedules (pacing/health monitors, budget optimizers) with cadence, approval mode, next run, and latest run status (free). [effect=read; scope=automation:read]
- list_available_scriptsshallow
See all available PPC scripts (free) [effect=read; scope=workspace:read]
- list_campaign_guardrailsshallow
List campaign-specific automatic pause guardrails and their latest spend, conversion, decision, and verified-pause state. Free. [effect=read; scope=guardrails:read]
- list_campaignsshallow
List campaigns for any ad platform [effect=read; scope=campaigns:read]
- list_connected_accountsshallow
See ALL connected accounts with pagination: ad platforms, analytics (GA4, PostHog), CRM (HubSpot, Attio), and more (free) [effect=read; scope=connections:read]
- list_creative_assetsshallow
List generated creative assets (images and videos) from your artifact library, with approval status and platform-deployment mapping (free) [effect=read; scope=creative:read]
- list_gtm_containersshallow
List Google Tag Manager accounts and containers for the connected GTM user. Returns each account's id/name and its containers' id/name/publicId. [effect=read; scope=tracking:read]
- list_gtm_tagsshallow
List the tags in a GTM container. Returns tag summaries: tagId, name, type, paused. Pass account_id/container_id, or rely on the connection's defaults. [effect=read; scope=tracking:read]
- list_llm_visibility_opportunitiesshallow
FREE (no credit cost): List ranked, evidence-backed Synter visibility gaps and their recommended actions. [effect=read; scope=intel:read]
- list_llm_visibility_promptsshallow
FREE (no credit cost): List tracked buying prompts and their latest answer evidence in the active Synter workspace. [effect=read; scope=intel:read]
- list_llm_visibility_sightingsshallow
FREE (no credit cost): List evidence-backed competitive ChatGPT ad, Reddit citation, and YouTube citation sightings from Synter. [effect=read; scope=intel:read]
- list_skillsshallow
List public Synter execution skills and platform SOPs (free) [effect=read; scope=skills:read]
- load_skillshallow
Load a public Synter execution skill or platform SOP (free) [effect=read; scope=skills:read]
- measure_incrementalityshallow
Measure incremental ad impact via geo-lift or synthetic control [effect=read; scope=measurement:read]
- meta_ads_create_adshallow
Create a Meta (Facebook/Instagram) ad in an existing ad set (5 credits) [effect=write; scope=campaigns:write; requires=campaignPublishing; externalMutation=true]
- optimize_budgetshallow
Cross-channel budget allocation using diminishing returns modeling (5 credits) [effect=write; scope=budget:write; externalMutation=true]
- pause_campaignshallow
Pause a campaign on any ad platform (2 credits) [effect=state; scope=campaigns:state; externalMutation=true]
- prospector_create_campaignshallow
Create a new Synter Prospector outbound campaign brief and sequence draft. [effect=write; scope=growth:write; requires=prospectorAccess; externalMutation=true]
- prospector_create_replyshallow
Approve and deliver an AI-drafted reply to an interested prospect lead. [effect=write; scope=growth:write; requires=prospectorAccess; externalMutation=true]
- prospector_get_campaignshallow
Get details for a specific Prospector outbound campaign including sequences and settings. [effect=read; scope=growth:read]
- prospector_get_campaignsshallow
List Synter Prospector outbound campaigns with status, lead counts, replies, and schedule. [effect=read; scope=growth:read]
- prospector_get_contactsshallow
Discover and source verified B2B prospects for outbound outreach by title, industry, and company criteria. [effect=read; scope=growth:read]
- prospector_get_inbox_healthshallow
Get deliverability and warmup health status for connected Prospector sending inboxes. [effect=read; scope=growth:read]
- prospector_get_leadsshallow
List leads in the Prospector pipeline or filter by campaign or status. [effect=read; scope=growth:read]
- prospector_get_pipeline_summaryshallow
Get high-level summary of Prospector outbound pipeline including leads, active campaigns, sent count, replies, meetings booked, and inbox health. [effect=read; scope=growth:read]
- prospector_update_campaign_statusshallow
Pause or update status of an active Prospector outbound campaign. [effect=write; scope=growth:write; requires=prospectorAccess; externalMutation=true]
- publish_gtm_containershallow
Publish a GTM container — creates a version from the default workspace and publishes it. PUSHES ALL WORKSPACE CHANGES LIVE to the site's tracking immediately. Approval-gated. [effect=publish; scope=tracking:write; requires=campaignPublishing; externalMutation=true]
- publish_landing_pageshallow
Publish a landing page draft, making it live at syntermedia.ai/lp/{slug} (free) [effect=publish; scope=landing_pages:publish; requires=campaignPublishing; externalMutation=true]
- publish_plan_documentshallow
Publish a campaign plan for review, generating a shareable URL (2 credits). Moves the plan from building/draft to in_review; a reviewer approves it at share_url, then execute_campaign_plan launches it. Runs plan QA (incl. the live tracking preflight) and pins the scorecard to the document. [effect=publish; scope=workspace:write; requires=campaignPublishing; externalMutation=true]
- publish_to_githubshallow
Publish a markdown blog post to a connected GitHub repo: commit <content_path>/<slug>.md and open a PR for the customer to review and merge (never pushes directly). Free. [effect=publish; scope=workspace:code; requires=campaignPublishing; externalMutation=true]
- pull_amazon_ads_performanceshallow
Get Amazon Ads (Sponsored Products/Brands/Display) metrics (2 credits). When counting 'live' campaigns, only count campaigns with state=ENABLED AND active ad groups with budget remaining — ARCHIVED campaigns are NOT active. IMPORTANT: If the user has multiple Amazon Ads accounts connected, you MUST ask which account to use BEFORE calling this tool — pass account_name to select it. [effect=read; scope=reporting:read]
- pull_amazon_dsp_performanceshallow
Pull Amazon DSP campaign performance data (2 credits) [effect=read; scope=reporting:read]
- pull_cm360_performanceshallow
Get Campaign Manager 360 (CM360) metrics (2 credits). Use account_name to specify which account when multiple are connected. [effect=read; scope=reporting:read]
- pull_criteo_ads_performanceshallow
Get Criteo Commerce Media metrics (2 credits). Returns displays, clicks, cost, conversions, and revenue per campaign. [effect=read; scope=reporting:read]
- pull_dv360_performanceshallow
Get Display & Video 360 (DV360) metrics (2 credits). Use account_name to specify which account when multiple are connected. [effect=read; scope=reporting:read]
- pull_freewheel_performanceshallow
Get FreeWheel Buyer Cloud (Beeswax) metrics (2 credits). Date window: date_range preset (today, yesterday, last_7_days, last_14_days, last_30_days, last_90_days), start_date/end_date (YYYY-MM-DD) for custom ranges, or days for a rolling window. Use account_name to specify which account when multiple are connected. [effect=read; scope=reporting:read]
- pull_google_ads_performanceshallow
Get Google Ads campaign metrics — impressions, clicks, spend, conversions per campaign (2 credits). Date window: date_range preset (today, yesterday, last_7_days, last_14_days, last_30_days, last_90_days), start_date/end_date (YYYY-MM-DD) for custom ranges like weekends, or days for a rolling window. IMPORTANT: If the user has multiple Google Ads accounts connected, you MUST ask which account to use BEFORE calling this tool — pass account_name to select it. [effect=read; scope=reporting:read]
- pull_instacart_ads_performanceshallow
Get Instacart Ads metrics (2 credits). Returns impressions, clicks, spend, attributed orders, and attributed sales per campaign. [effect=read; scope=reporting:read]
- pull_linkedin_ads_performanceshallow
Get LinkedIn Ads metrics — impressions, clicks, spend, conversions per campaign (2 credits). Date window: date_range preset (today, yesterday, last_7_days, last_14_days, last_30_days, last_90_days), start_date/end_date (YYYY-MM-DD) for custom ranges, or days for a rolling window. Pass campaign_group_ids (comma-separated) to filter to specific campaign groups. IMPORTANT: If the user has multiple LinkedIn accounts connected, you MUST ask which account to use BEFORE calling this tool — pass account_name to select it. [effect=read; scope=reporting:read]
- pull_linkedin_company_engagementshallow
Pull LinkedIn Ads Company Engagement report — shows which companies have seen your ads and how engaged they are (2 credits) [effect=read; scope=reporting:read]
- pull_meta_ads_performanceshallow
Get Meta (Facebook/Instagram) Ads metrics — impressions, clicks, spend, conversions per campaign (2 credits). Date window: date_range preset (today, yesterday, last_7_days, last_14_days, last_30_days, last_90_days), start_date/end_date (YYYY-MM-DD) for custom ranges, or days for a rolling window. IMPORTANT: If the user has multiple Meta Ads accounts connected, you MUST ask which account to use BEFORE calling this tool — pass account_name to select it. [effect=read; scope=reporting:read]
- pull_microsoft_ads_performanceshallow
Get Microsoft (Bing) Ads metrics — impressions, clicks, spend, conversions per campaign (2 credits). Date window: date_range preset (today, yesterday, last_7_days, last_14_days, last_30_days, last_90_days), start_date/end_date (YYYY-MM-DD) for custom ranges, or days for a rolling window. IMPORTANT: If the user has multiple Microsoft Ads accounts connected, you MUST ask which account to use BEFORE calling this tool — pass account_name to select it. [effect=read; scope=reporting:read]
- pull_openai_ads_performanceshallow
Get OpenAI Ads metrics (2 credits). Pulls insights from the OpenAI Ads API. Optional scope: campaign_id, ad_group_id, or ad_id to scope the report. Defaults to the selected scope's natural aggregation level; unscoped defaults to ad_account. [effect=read; scope=reporting:read]
- pull_pinterest_ads_performanceshallow
Get Pinterest Ads metrics (2 credits). IMPORTANT: If the user has multiple Pinterest ad accounts connected, you MUST ask which account to use BEFORE calling this tool — pass account_name to select it. [effect=read; scope=reporting:read]
- pull_reddit_ads_performanceshallow
Get Reddit Ads metrics — impressions, clicks, spend, conversions per campaign (2 credits). Date window: date_range preset (today, yesterday, last_7_days, last_14_days, last_30_days, last_90_days), start_date/end_date (YYYY-MM-DD) for custom ranges, or days for a rolling window. IMPORTANT: If the user has multiple Reddit Ads accounts connected, you MUST ask which account to use BEFORE calling this tool — pass account_name to select it. [effect=read; scope=reporting:read]
- pull_snap_ads_performanceshallow
Get Snapchat Ads metrics (2 credits). Use account_name to specify which account when multiple are connected. [effect=read; scope=reporting:read]
- pull_spotify_ads_performanceshallow
Get Spotify Ads metrics (2 credits). Use account_name to specify which account when multiple are connected. [effect=read; scope=reporting:read]
- pull_target_roundel_performanceshallow
Get Target Roundel retail media metrics (2 credits). Returns impressions, clicks, spend, conversions, and revenue per campaign. [effect=read; scope=campaigns:read]
- pull_tiktok_ads_performanceshallow
Get TikTok Ads metrics — impressions, clicks, spend, conversions per campaign (2 credits). Date window: date_range preset (today, yesterday, last_7_days, last_14_days, last_30_days, last_90_days), start_date/end_date (YYYY-MM-DD) for custom ranges, or days for a rolling window. For detailed video engagement metrics use tiktok_ads_get_insights. IMPORTANT: If the user has multiple TikTok Ads accounts connected, you MUST ask which account to use BEFORE calling this tool — pass account_name to select it. [effect=read; scope=reporting:read]
- pull_trade_desk_performanceshallow
Get The Trade Desk metrics (2 credits). Date window: date_range preset (today, yesterday, last_7_days, last_14_days, last_30_days, last_90_days), start_date/end_date (YYYY-MM-DD) for custom ranges, or days for a rolling window. Use account_name to specify which account when multiple are connected. [effect=read; scope=reporting:read]
- pull_walmart_ads_performanceshallow
Get Walmart Connect Advertising metrics (2 credits). Returns impressions, clicks, spend, conversions, and ROAS per campaign. [effect=read; scope=reporting:read]
- pull_x_ads_performanceshallow
Get X (Twitter) Ads metrics — impressions, clicks, spend, conversions per campaign (2 credits). Filter by campaign_id/campaign_ids to inspect specific campaigns. Date window: date_range preset (today, yesterday, last_7_days, last_14_days, last_30_days, last_90_days), start_date/end_date (YYYY-MM-DD) for custom ranges, or days for a rolling window. IMPORTANT: If the user has multiple X Ads accounts connected, you MUST ask which account to use BEFORE calling this tool — pass account_name to select it. [effect=read; scope=reporting:read]
- read_google_sheetshallow
Read tabular data (e.g. a media plan / campaign brief) from a connected Google Sheet (free) [effect=read; scope=workspace:read]
- recommend_llm_visibility_strategyshallow
Recommend tailored Generative Engine Optimization (GEO) content strategies, PR drafts, community response tactics, structured schema markup, and authoritative citation building to drive brand visibility in ChatGPT, Claude, Perplexity, and AI Overviews for tracked buying prompts. [effect=read; scope=intel:read]
- reddit_ads_create_adshallow
Create a Reddit ad from an existing post in an ad group (5 credits) [effect=write; scope=campaigns:write; requires=campaignPublishing; externalMutation=true]
- repair_account_structureshallow
Repair an ad account's campaign structure. DRY-RUN BY DEFAULT — reports what it WOULD archive and changes nothing. Pass apply=true (only after customer approval) to ARCHIVE duplicate clutter (keeps the earliest of each same-name set) via PATCH configured_status=ARCHIVED — Reddit v3 has NO hard DELETE. Ad groups with empty targeting are FLAGGED, never auto-archived. Reddit apply is fully supported; Google apply is dry-run planning only. Free — no credits. [effect=write; scope=campaigns:structure; externalMutation=true]
- research_campaign_opportunityshallow
Research real demand before planning a campaign: keyword volumes and CPCs, what competitors are actually running, and current trends. Run this BEFORE create_campaign_plan (6 credits). [effect=read; scope=campaigns:read]
- run_gaql_queryshallow
Execute a Google Ads Query Language (GAQL) query (2 credits). Use account_name to specify which account when multiple are connected. [effect=read; scope=reporting:read]
- run_launch_preflightshallow
Run pre-launch conversion-tracking and landing-page checks at PLAN time, before presenting a campaign plan for approval. Read-only and free. Returns tracking issues and confirmation tokens. [effect=read; scope=campaigns:read]
- run_llm_visibility_scanshallow
Run an on-demand Synter LLM visibility scan for one active workspace project. Admin/Owner only. [effect=write; scope=intel:write]
- send_slack_messageshallow
Post a message to a Slack channel via the Synter bot. channel = a channel ID (Cxxxx) or #name. The bot can only post to channels it's a member of. [effect=write; scope=workspace:notify]
- set_campaign_guardrailshallow
Arm or replace a campaign-specific automatic pause rule. Google Ads rules pause one exact campaign only after both the minimum age and spend threshold are met with zero conversions on one exact verified truth conversion action. Configuration is standing authorization for the future pause. Free. [effect=write; scope=guardrails:write; externalMutation=true]
- set_spend_alertshallow
Set a weekly ad spend alert — notifies via email, Slack, SMS, and/or WhatsApp when total spend exceeds threshold (free) [effect=write; scope=guardrails:write; externalMutation=true]
- setup_custom_domainshallow
Assign a custom domain (e.g. go.acme.com) to a published landing page. Requires an active paid or pay-as-you-go plan. No credits charged. [effect=write; scope=landing_pages:write]
- setup_google_ads_trial_funnelshallow
Set up a complete Google Ads trial acquisition funnel: branded Search campaign (maximize clicks, builds conversion history), PMax campaign (maximize conversions), and Display retargeting campaign — all pointing to a Synter-hosted landing page. Requires an active Google Ads connection. (15 credits) [effect=write; scope=campaigns:write; externalMutation=true]
- shopify_create_discountshallow
Create a Shopify discount code and its price rule. Call this when launching a promotion that ad creative or a landing page will reference. The value must be negative, for example -10 for 10 percent off. [effect=write; scope=commerce:write; externalMutation=true]
- shopify_create_web_pixelshallow
Activate the Synter Web Pixel extension on a Shopify store for checkout_completed conversion tracking. This is the supported path; Shopify stopped rendering ScriptTag pixels on the order-status page. Call this when setting up purchase tracking for a store. [effect=write; scope=tracking:write; externalMutation=true]
- shopify_create_webhookshallow
Register a Shopify webhook so the store pushes events such as orders/paid to Synter. Call this when setting up order or refund tracking for a newly connected store. [effect=write; scope=commerce:write; externalMutation=true]
- shopify_get_abandoned_checkoutsshallow
Get Shopify abandoned checkouts for cart-abandonment and recovery-rate reporting. Call this when diagnosing checkout drop-off or sizing a retargeting audience. Paginate with page_info. [effect=read; scope=commerce:read]
- shopify_get_collectionsshallow
Get Shopify collections (smart and custom). Call this when segmenting a catalog for shopping or Performance Max campaigns. Paginate with page_info. [effect=read; scope=commerce:read]
- shopify_get_customer_audienceshallow
Export a hashed Shopify customer audience for upload to Meta, Google, TikTok or LinkedIn. Call this to build a customer-match or lookalike seed from store purchase history. Emails and phones are SHA-256 hashed unless include_raw is set. [effect=read; scope=audiences:read]
- shopify_get_customersshallow
Get Shopify customers with creation and update filters. Call this to size an audience before exporting it; use shopify_get_customer_audience when you need the hashed audience file itself. Paginate with page_info. [effect=read; scope=commerce:read]
- shopify_get_discount_codesshallow
Get Shopify discount codes and their price rules. Call this to check which promotions are live before referencing an offer in ad copy or a landing page. Paginate with page_info. [effect=read; scope=commerce:read]
- shopify_get_inventory_levelsshallow
Get Shopify inventory levels per inventory item and location. Call this to confirm stock before scaling spend on a product, or to find which locations can fulfil demand. [effect=read; scope=commerce:read]
- shopify_get_inventory_statusshallow
Get a Shopify stock-health summary flagging low and out-of-stock products. Call this before increasing budget on a shopping campaign so you do not drive traffic to unavailable products. [effect=read; scope=commerce:read]
- shopify_get_ordersshallow
Get Shopify orders with financial and fulfillment status. Call this when the user asks about their Shopify store's orders, revenue by order, refunds, or unfulfilled orders. Paginate with page_info until next_page_info is absent. [effect=read; scope=commerce:read]
- shopify_get_product_feedshallow
Build a Shopify product feed (Google Merchant Center RSS 2.0 XML or CSV) and return it as data. Call this to inspect or refresh the catalog behind Google Shopping and Performance Max campaigns. It never hosts the feed at a public URL; use execute if you need it hosted. [effect=read; scope=commerce:read]
- shopify_get_product_salesshallow
Get Shopify revenue broken down by product, vendor or product type. Call this to find the best sellers worth advertising and the long tail that is not converting. [effect=read; scope=commerce:read]
- shopify_get_productsshallow
Get Shopify products, filterable by status, vendor, product type or collection. Call this before building a product feed or shopping campaign so ad copy matches the real catalog. Paginate with page_info. [effect=read; scope=commerce:read]
- shopify_get_sales_summaryshallow
Get aggregate Shopify revenue, order count and average order value over a date range. Call this to establish store-level baseline revenue before attributing ad spend, or for blended ROAS. [effect=read; scope=commerce:read]
- shopify_get_shopshallow
Get Shopify shop identity and configuration: domain, currency, timezone, plan. Call this first when connecting a store, to confirm which shop the credentials point at before any other call. [effect=read; scope=commerce:read]
- shopify_get_webhooksshallow
Get the Shopify webhooks currently registered on the store. Call this to verify conversion and order tracking is wired up before trusting Shopify-sourced conversion data. [effect=read; scope=commerce:read]
- stage_audience_artifactshallow
Stage a hashed-PII payload (newline-delimited identifiers) in Synter's private artifact store and return an opaque artifact_id. Pass that id to sync_audience via *_artifact_id parameters. FREE — no credits charged. Use this instead of pasting hashed identifiers as inline tool args when you have more than ~500 entries. [effect=write; scope=audiences:write; requires=campaignPublishing; externalMutation=true]
- sync_audienceshallow
Upload audience data (emails, phones, MAIDs, companies, a public CSV URL, or a private artifact id) to ad platforms. Supports inline pre-hashed identifiers, artifact-id references for >1k entries, and batch mode for Clay.com row-by-row workflows (staging is free, upload costs 10 credits — only on success). REQUIRED FROM 2026-05-21: pass i_have_consent=True confirming the customer has lawful basis under GDPR/CCPA and platform Customer Match terms for every identifier in the audience. [effect=write; scope=audiences:write; requires=campaignPublishing; externalMutation=true]
- sync_wikidata_entityshallow
Query or generate a structured Wikidata entity payload (P31, P856, P571, P159) for direct LLM knowledge graph indexing via MediaWiki REST API. [effect=write; scope=intel:write]
- synter_onboarding_startshallow
Start onboarding - create account and get API key (no auth required) [effect=write; scope=workspace:write]
- synter_onboarding_statusshallow
Check onboarding progress - poll until ready (no auth required) [effect=read; scope=workspace:read]
- test_creativesshallow
Start or check a multi-armed bandit creative experiment using Thompson sampling (3 credits) [effect=write; scope=creative:generate]
- tiktok_ads_get_ad_groupsshallow
List all TikTok ad groups, optionally filtered by campaign (free). Returns ID, name, status, budget, bid, optimization goal. [effect=read; scope=campaigns:read]
- tiktok_ads_get_adgroupshallow
Get full TikTok ad group configuration (free). Returns targeting, budget, bid, pixel, optimization goal, languages, locations, age groups, identity. [effect=read; scope=campaigns:read]
- tiktok_ads_get_adsshallow
List all TikTok ads, optionally filtered by ad group (free). Returns ad_id, ad_name, adgroup_id, campaign_id, status, ad_format. [effect=read; scope=campaigns:read]
- tiktok_ads_get_campaignshallow
Get full TikTok campaign configuration by ID (free). Returns name, objective, budget, status, timestamps. [effect=read; scope=campaigns:read]
- tiktok_ads_get_insightsshallow
Get TikTok Ads performance report with video metrics (2 credits). Returns spend, impressions, clicks, CTR, conversions, CPA, ROAS, and TikTok-specific video engagement metrics per campaign/adgroup/ad. [effect=read; scope=reporting:read]
- tiktok_ads_update_adgroupshallow
Update a TikTok ad group: status, budget, locations, age targeting, bid, languages, audiences, optimization goal, pixel tracking (5 credits) [effect=write; scope=campaigns:write; externalMutation=true]
- update_campaign_budgetshallow
Update a campaign's daily budget (5 credits) [effect=write; scope=budget:write; externalMutation=true]
- update_google_sheetshallow
Write values (e.g. campaign IDs / status / spend) back into a range of an existing Google Sheet (2 credits) [effect=write; scope=workspace:external_docs]
- update_gtm_tagshallow
Pause/unpause a GTM tag of ANY type, replace its HTML body, or set its parameters — including the conversion VALUE (set_param conversionValue on a Google Ads tag, set_event_param value on a GA4 event tag). MODIFIES LIVE SITE TRACKING once published or when publish=true is passed. Use this (not update_gtm_tag_html) for non-HTML tags like Google Ads/Meta/LinkedIn conversion tags — e.g. pausing a duplicate conversion tag. Pausing a conversion tag (awct/gclidw/sp/gaawe, or a name matching conversion/signup/purchase/lead) requires i_checked_conversion_volume=true or the underlying script refuses — see its parameter description. [effect=write; scope=tracking:write; externalMutation=true]
- update_gtm_tag_htmlshallow
Replace the HTML body of an existing GTM Custom HTML tag. MODIFIES LIVE SITE TRACKING once the container is published. Only type 'html' tags are allowed; the change stays in the workspace until publish_gtm_container runs. [effect=write; scope=tracking:write; externalMutation=true]
- update_landing_page_htmlshallow
Update the HTML content of an existing landing page you own without AI regeneration (free edit). Use this to patch copy, add logos, or tweak layout after reviewing a draft. If the slug does not exist yet, this creates a new hosted page and costs 135 credits (same as create_landing_page). [effect=write; scope=landing_pages:write]
- update_landing_page_trackingshallow
Set landing-page conversion pixels and the Google Ads conversion label, and wire a Fillout embed so form submits count as campaign conversions and route to HubSpot. Free edit of an existing page you own. Returns google_send_to plus a Fillout webhook URL. [effect=write; scope=landing_pages:write]
- update_verified_page_replicashallow
Get status, verify, or revoke source ownership for a verified page replica. [effect=write; scope=landing_pages:write]
- upload_creativeshallow
Upload a generated creative asset to an ad platform and attach it to a campaign (5 credits) [effect=publish; scope=creative:publish; requires=campaignPublishing; externalMutation=true]
- upload_landing_page_htmlshallow
Upload raw HTML as a new landing-page draft (no AI generation). Use to import an exported .html file or hand-written markup (embedded forms, Cal.com embeds, thank-you pages all supported). Then publish_landing_page and attach it to an ad campaign. Creating a new hosted page costs 135 credits (same as create_landing_page); re-uploading to a slug you already own is a free edit. [effect=publish; scope=landing_pages:publish; requires=campaignPublishing; externalMutation=true]
- upsert_plan_entityshallow
Add or update an entity (campaign, ad, tweet, go_link, etc.) within a campaign plan (2 credits). [effect=write; scope=campaigns:plan; externalMutation=true]
- verify_custom_domainshallow
Check if DNS is configured for a landing page's custom domain. Free — no credits charged. [effect=read; scope=landing_pages:read]
- verify_pixel_ownershipshallow
Cross-validate that the pixel/tag IDs on a landing page belong to the connected ad account. Detects wrong-pixel installs, domain registration gaps, and CAPI mismatches. Free — no credits. [effect=read; scope=tracking:read]
- verify_platform_accountsshallow
Verify which ad account each platform's pull tools would use by default, with recent activity per connected account. Flags when the default account is dormant while a sibling account has spend (free). Call this before pull_*_performance when a platform has multiple accounts or returns suspicious zeros. [effect=read; scope=connections:read]
Embed this server’s score
Tool count and median score across every tool in this server’s corpus — honest in a way a single cherry-picked tool’s badge wouldn’t be.
[](https://vouch.tools/servers/82a31c20-1b48-4d39-8a34-41b14f317e90)