Skip to main content

Tool Types

  • Read Safe to run anytime. Pulls data, analyzes performance, provides insights. No spending impact.
  • Write Requires user confirmation. Creates campaigns, updates budgets, modifies targeting. Affects spend.

How the agent reaches these tools

Adspirer exposes a small set of top-level tools. Most of the tools listed on this page sit behind a platform routergoogle_ads, meta_ads, linkedin_ads, tiktok_ads, amazon_ads, chatgpt_ads — and are reached in two steps:
Only these tools are callable directly by name: start_here, search_tools, get_tool_schema, get_connections_status, get_usage_status, switch_primary_account, get_campaign_performance, get_meta_campaign_performance, audit_conversion_tracking, competitor_ads_research, and echo_test.Everything else in this catalog goes through its platform router. Calling a routed tool by name returns “tool not found.”
search_tools finds the right tool from a plain-English description, and get_tool_schema returns its exact live signature. Both are top-level: they are never wrapped in action: "execute". The adspirer-mcp skill teaches this contract to your assistant, along with the per-platform account ids and budget units.

LinkedIn Ads Tools (55)

Meta Ads Tools (60)

TikTok Ads Tools (37)

Amazon Ads Tools (61)

ChatGPT Ads Tools (36)

Audit Tools (1)

Competitor Research (1)

Which sources to ask for. Google is pulled by default; name the others and they’re added — “what is figma.com running on LinkedIn and Meta”. Each extra source is another set of lookups, so ask for the platforms your competitor actually advertises on rather than all four by reflex. region doesn’t apply everywhere. Google and Meta ad libraries are filtered by market. TikTok’s and LinkedIn’s are worldwide and can’t be narrowed, so results from those two are labelled worldwide instead of being passed off as your market. Matching is strict on purpose. A domain is resolved to one advertiser, confirmed against the links in their own ads where the platform exposes them. When the match can’t be confirmed you get an honest empty result rather than a similarly-named stranger’s ads. TikTok and LinkedIn have no website to verify against, so a match there is by advertiser name and the result says so. The your-ads half of the comparison reads Google, Meta, TikTok, and Amazon. LinkedIn ad copy isn’t stored, so LinkedIn is left out of the copy comparison rather than guessed at. The Your ads tab appears only when your connected accounts have creatives to put beside theirs — and its absence never blocks the research. If you run Meta only, or haven’t connected anything yet, you still get the competitor findings. Not to be confused with start_research below, which launches an async AI research job. competitor_ads_research returns real ads that are running right now.

Automation Tools (16)

Marketing Stack Integrations (Plus and above)

Router tools that proxy to third-party marketing tools through Pipedream Connect. The agent calls action="list_tools" first to discover what’s available, then action="execute" with the specific tool name. google_tag_manager is the tool behind “is my Meta pixel installed?” and “why isn’t this conversion firing?”. The read actions (google_tag_manager-get-tags, google_tag_manager-get-tag) answer both. Its three write actions — create a tag, update a tag, update a variable — change a live container that fires tracking on your real website, where a wrong edit can break conversion tracking site-wide, so the agent confirms the exact change with you before writing. google_search_console exposes two actions. google_search_console-retrieve-site-performance-data is read-only: pass the site URL, a start and end date, the dimensions you want (query, page, country, device, date), and a row limit. google_search_console-submit-url-for-indexing is a write — it tells Google a URL was updated or deleted — so the agent confirms the exact URL with you before submitting. Every integration requires the user to connect the account in the Connections panel. Free-tier users see the integration cards with an Upgrade prompt. These four tools are listed in your AI client whether or not you’ve connected them, the same as every ad platform. Call one you haven’t connected and it answers with a prompt to authorize it in Connections — it doesn’t disappear from the tool list, so you can find out an integration exists by asking for it. More than one account per integration. You can connect several accounts to the same integration — two GA4 logins, a client’s Tag Manager container next to your own, a second Search Console user — up to your plan’s account limit. Connect the extra one from Connect another account on that integration’s card. When an integration has more than one account, pass account_id to say which; leave it off with a single account and nothing changes. Ask the agent and it lists the accounts it can see.

System Tools (5)

Diagnostic & Helper Tools (9)

Read-only “get unstuck” tools — get-started guidance, draft validation, error diagnosis, and value summaries. All quota-free (they never count against your tool-call limit) and available on every plan, including Free. Your assistant discovers them automatically; in ChatGPT and Claude their results render as interactive cards. See the Diagnostic & Helper Tools reference. diagnose_my_setup, preflight_campaign, whats_changed_since_last_visit, and weekly_opportunities were withdrawn on August 24, 2026 — see Recently withdrawn.

Raw data mode

All performance and analytics tools accept an optional raw_data parameter. When set to true, the tool returns a compact JSON code block with only raw metrics — no severity labels, suggested bids/budgets, industry benchmarks, or optimization recommendations. Default is false (full markdown output with recommendations). Use raw_data=true when you run your own attribution model, want to minimize token usage, or need to pipe metrics into an external tool.

Tool call best practices

  • Always start with get_connections_status: Verify the correct ad account is active before using platform-specific tools
  • Chain Read tools before Write tools: Research, validate, then create. Never jump straight to campaign creation.
  • Ask for user confirmation before Write tools: Present the plan, get approval, then execute.
  • Never retry Write tools on error: If a campaign creation fails, report the error and wait for user input. Don’t auto-retry.
  • Format results as tables: Performance data should be scannable (columns: metric, value, change vs. previous period)
  • Use raw_data=true for compact output: When you need just the numbers without recommendations, pass raw_data=true to any performance tool.

Input Format Requirements

Follow these rules when calling Adspirer tools to avoid validation errors:

IDs Must Be Strings

All IDs (campaign_id, ad_account_id, video_id, image_hash, ad_group_id, keyword_id, organization_id, creative_id) must be passed as quoted strings, never as bare integers.

Never Modify IDs

Copy IDs exactly as returned by list/discover tools. Do not round, truncate, or change any digits.

Always Call List/Discover Before Create/Update

Many tools require IDs from prior tool calls:
  • list_campaigns → get campaign_id before update/pause/structure
  • get_campaign_structure → get ad_group_id before keyword operations
  • discover_existing_assets → get image_hash, video_id before campaign creation
  • get_linkedin_organizations → get organization_id and account_id

Text Length Limits

The server will reject text that exceeds platform limits:

Meta Ad Copy Formatting

Meta primary_text supports emojis, line breaks (\n), and bullet points for higher engagement:
Use emojis strategically (🔥 ✅ 🎯 💰 ⚡ 🚀 👉 ⭐ 💡 📈) and structure copy with line breaks and bullet points (•, ✅, ▸) for readability.

Enum Values Are Case-Insensitive

The server auto-normalizes casing. Common enum values:
  • status: ENABLED, PAUSED, ACTIVE, ARCHIVED
  • objective: OUTCOME_TRAFFIC, OUTCOME_SALES, OUTCOME_LEADS
  • match_type: EXACT, PHRASE, BROAD
  • date_range: last_7_days, last_30_days, last_90_days
  • campaign_type: search, pmax, image, video, carousel

Budgets Are Numbers

Pass budget fields as numbers, not strings. Budget is in the account’s local currency (not cents).

Keywords Format

For add_negative_keywords, each keyword must be an object with text and match_type fields:
Last modified on August 26, 2026