Skip to main content
Glama

Read TikTok Ads data

tiktok_ads_read
Read-onlyIdempotent

Reads Meta ad accounts. action "list_tools" lists every operation of every router with its field names, flags and the router that executes it (get_tool_schema returns the input schema); it does not call Meta and is free. action "execute" runs one read: {"action":"execute","tool_name":"list_campaigns","arguments":{}}. Reads:

  • tiktok_account_summary: The connected TikTok ad account: name, currency, time zone, country and status.

  • tiktok_list_campaigns: Campaigns of the TikTok ad account: objective, budget, whether they are on, and what TikTok says about delivery.

  • tiktok_list_adgroups: Ad groups of the TikTok ad account, or of one campaign: budget, bid, optimisation goal and schedule.

  • tiktok_list_ads: Ads of the TikTok ad account, or of one campaign or ad group: what they say, where they lead and which video they use.

  • tiktok_performance: What the TikTok ad account spent and got for it: spend, impressions, clicks, CTR, CPC, CPM, reach, conversions and results.

  • tiktok_revenue_report: Money your CRM or payment system received beside TikTok spend, per campaign or ad group: revenue, payments, ROAS, cost per payment and a verdict. Payments that matched nothing are a line of their own.

  • tiktok_ad_review_issues: Which switched-on TikTok ads failed review or run only partly, with TikTok's reasons and suggestions: the first thing to check when an ad does not spend.

  • tiktok_audience_breakdown: Where TikTok spend goes and what it brings by age, gender, country, region, placement or operating system.

  • tiktok_change_history: Who changed what in the TikTok ad account and when: budgets, bids, on/off status, targeting, creation and deletion.

  • tiktok_list_monitors: Monitors of this TikTok ad account: their conditions, status, last check and how often they triggered.

  • tiktok_get_monitor_history: When a TikTok monitor triggered, on which campaigns, ad groups or ads, with what numbers, and whether an email went out.

  • tiktok_test_monitor: Dry-run a TikTok monitor now: which campaigns, ad groups or ads would trigger and which are skipped, without recording or emailing. Read-only and free: changes nothing and does not count toward the monthly change limit. An identical read within 30 seconds may return the same data (see data_age_seconds).

Input Schema

NameRequiredDescriptionDefault
actionYeslist_tools: every operation with its field names, flags and router. execute: run the read named by tool_name.
argumentsNoFor execute: the fields of the operation, plus "connection" when several ad accounts are connected. Omit or {} when it has none.
tool_nameNoFor execute: the operation name from list_tools, e.g. tiktok_list_campaigns.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, but the description adds genuinely new behavior: reads do not count toward the monthly change limit, and an identical read within 30 seconds may return cached data (see data_age_seconds). That caching disclosure is exactly the kind of non-obvious trait that saves an agent from misreading stale results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The twelve-operation bullet list is largely justified because the tool_name routing requires knowing available operation names, but the preamble wastes its most prominent sentences on Meta references and meta-commentary about list_tools instead of front-loading what the tool is. The critical routing example is buried mid-paragraph rather than leading.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the per-operation bullets usefully describe what each read returns (spend, CTR, ROAS, review reasons, change attribution), which is the main burden here. The residual gap is the platform mix-up: an agent reading only the first line could conclude this touches Meta rather than TikTok ad accounts.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, and the description exceeds it by supplying a concrete invocation example ({"action":"execute","tool_name":"list_campaigns","arguments":{}}) and noting that "connection" is needed when several ad accounts are connected. The Meta/TikTok confusion in the preamble slightly muddies which account identifiers apply.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence, "Reads Meta ad accounts," names the wrong platform entirely and contradicts the tool name/title (TikTok), which is a real risk of misselection against meta_ads_read. The bulleted enumeration of twelve tiktok_* operations does eventually make the purpose unambiguous, but the agent has to read past a misleading lead to get there.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly explains the two-mode pattern — list_tools to discover operation names and fields, execute to run one read — and states that list_tools is free and makes no API call. What it does not do is tell the agent how to choose between this router and platform siblings like meta_ads_read, google_ads_read, revenue_report or performance_dashboard.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.