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 router —google_ads, meta_ads, linkedin_ads, tiktok_ads, amazon_ads,
chatgpt_ads, microsoft_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: call them directly by name.
If your client’s tool list was frozen when you installed it and doesn’t include get_tool_schema —
the ChatGPT plugin is the usual case — call it through any platform router instead:
get_tool_schema is missing from your tool list; calling it directly by name is the normal path.
search_tools is unaffected.
The adspirer-mcp skill teaches this contract to your assistant, along with
the per-platform account ids and budget units.
Google Ads Tools (156)
LinkedIn Ads Tools (55)
Meta Ads Tools (60)
TikTok Ads Tools (37)
Amazon Ads Tools (61)
ChatGPT Ads Tools (50)
Microsoft Advertising Tools (36)
Read, create, and edit on Microsoft Advertising (Bing Ads). Budgets and bids are plain decimals in the account’s own currency, never cents and never micros. Performance reporting is not live yet. Edits are partial — pass the fields you want changed and the rest is left alone. Two exceptions: setting a creative list (headlines, descriptions, images) replaces that whole list, and an ad-extension edit has to carry the complete object because Microsoft deletes any field you don’t send.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 callsaction="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.
And more than one property inside an account. One Google login usually reaches several GA4 properties, several verified Search Console sites, or a Tag Manager account with containers under it. Call an action that operates on one of those without naming it — no property, no siteUrl, no accountId/containerId/workspaceId — and the agent pulls the labelled list off your connection and asks which to use instead of picking one. Reads auto-resolve when there is exactly one; writes (submit-url-for-indexing, submit-sitemap, delete-sitemap, create-tag, update-tag, update-variable) confirm their target every time, even at one. Tag Manager asks one level at a time — account, then container, then workspace. The question is a precondition, not a result, so it doesn’t cost a tool call.
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 optionalraw_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=truefor compact output: When you need just the numbers without recommendations, passraw_data=trueto 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→ getcampaign_idbefore update/pause/structureget_campaign_structure→ getad_group_idbefore keyword operationsdiscover_existing_assets→ getimage_hash,video_idbefore campaign creationget_linkedin_organizations→ getorganization_idandaccount_id
Text Length Limits
The server will reject text that exceeds platform limits:Meta Ad Copy Formatting
Metaprimary_text supports emojis, line breaks (\n), and bullet points for higher engagement:
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
Foradd_negative_keywords, each keyword must be an object with text and match_type fields:
Related Documentation
- Core Workflows — See how these tools fit into step-by-step processes
- Skills Overview
- Google Ads Integration
- Meta Ads Integration
- LinkedIn Ads Integration
- TikTok Ads Integration
- Prompt Engineering Playbook — A custom skill, account dossier, and prompt book generated from your own ad account ($39 one-time, one free on annual)

