Kampalo
Server Details
Google Ads, Meta Ads, GA4, Search Console and Shopify insights, alerts, ROAS rules and ad actions.
- Status
- Healthy
- Uptime
- 23.7% over 23 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- Tekreign/kampalo-cursor-plugin
- GitHub Stars
- 0
TDQS
Scored across 43 tools
Tools are namespaced by domain (google_ads_, meta_ads_, search_, analytics_, automate_), which helps, but several overlap: google_ads_get_fatigue and meta_ads_get_fatigue vs the cross-platform meta_insights_get_fatigue, plus four different 'overview' tools (overview_get_account, meta_insights_get_overview, meta_organic_get_overview, shopify_get_overview). The meta_insights_ prefix misleadingly houses Google Ads, Shopify, and Search Console data, so an agent may never look there for cross-platform results. The three parallel rule families (alert / automation / seo_alert) are distinguishable only by reading descriptions carefully.
The dominant pattern is domain_verb_object (google_ads_get_campaigns, automate_upsert_alert_rule, search_get_top_queries), applied consistently across most of the surface. Deviations are the meta_insights_* family, which wraps non-Meta platforms, and overview_get_account, which breaks the domain grouping. Minor cosmetic inconsistencies aside, the convention is predictable.
At 43 tools this is well past a comfortable surface, and the bloat is concentrated in the automate domain (14 tools) with three near-identical list/delete/upsert rule triples. Multiple fatigue and overview tools add further redundancy. The breadth is real but not enough to justify this many entry points.
Read coverage is broad and cohesive: ads (Google/Meta) summaries, campaigns, trends, fatigue, SEO/Search Console, GA4, Instagram/Facebook organic, anomalies and Shopify blended MER. Write operations exist for the automation/alert lifecycle and gated pause/budget proposals, which round out the domain. Gaps are modest: Shopify is a single overview tool with no product/order-level drilldown, and there is no creative/content or competitor surface.
Available Tools
43 toolsanalytics_get_ai_referralsAI assistant referralsCRead-onlyInspect
GA4 AI / AEO referrals: ChatGPT, Perplexity, Gemini, and similar assistant traffic.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds only scope context (which assistants are counted), but says nothing about filtering defaults, aggregation, or the practical effect of the 17 optional params. Adequate but thin for the annotation-assisted bar.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler; every word earns its place. It is perhaps too terse for the tool's complexity, but it is structurally clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values needn't be explained, but for a 17-parameter analytics tool with no required params and no schema descriptions, the agent is left without filtering, date-range, or pagination semantics. The description does not close that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 17 parameters at 0% description coverage, and the description offers zero information about any of them (url, date_from/date_to, days, limit, range_preset, activity_only, etc.). With such high parameter count and no schema or description guidance, the description fails entirely to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the data source (GA4), the metric category (AI / AEO referrals), and concrete examples of the referrers (ChatGPT, Perplexity, Gemini), distinguishing it from general siblings like analytics_get_ga4_metrics. It lacks an explicit verb, but the resource is unambiguous enough for an agent to select it correctly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus analytics_get_ga4_metrics or analytics_get_organic_roi, nor any prerequisites or exclusions. Usage is only weakly implied by the 'AI/AEO referrals' scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analytics_get_checkout_funnelCheckout funnelCRead-onlyInspect
GA4 add-to-cart, checkout, purchase funnel and item revenue.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and openWorldHint=false, so safety is covered. Beyond that the description adds no behavioral context: nothing about auth requirements, whether a property_name/site_url is needed, pagination, or how the funnel is computed. It only restates the metric content.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded fragment naming the metrics, with no filler or repetition. It is efficient, though its brevity for a 17-parameter tool borders on under-specification rather than true conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. However, for a tool with 17 optional, null-defaulted filters and zero schema documentation, the description leaves the agent unable to know which parameters matter, what defaults apply, or how to scope the query correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 17 parameters with 0% description coverage and no enums, and the description explains none of them. Date windowing (days, date_from, date_to, range_preset), scoping (url, site_url, property_name, page_id), and paging (limit, sort_by) are all left completely undefined, so the description fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific data domain (GA4) and concrete metrics: add-to-cart, checkout, purchase funnel stages, and item revenue. An agent can tell this is a funnel/revenue analytics tool, though it does nothing to distinguish itself from siblings like analytics_get_ga4_metrics or analytics_get_organic_roi.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus analytics_get_ga4_metrics, analytics_get_organic_roi, or the platform-specific summary tools. No prerequisites, no exclusions, no mention of required GA4 property context. The agent must infer usage purely from the metric names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analytics_get_ga4_metricsGA4 metricsCRead-onlyInspect
GA4 traffic and conversions for this account.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds nothing further: no note on auth/account binding, rate limits, whether missing parameters default to a date range, or what 'this account' resolves to.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence that is front-loaded and wastes no words, but its brevity comes at the cost of under-specification rather than genuine efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists, so return values need not be explained, and annotations cover safety. But with 17 optional parameters, no required fields, and no parameter or usage guidance, the definition leaves an agent without enough information to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Seventeen parameters with 0% schema description coverage and zero explanation in the description. The overlapping filter names (url vs site_url, days vs date_from/date_to vs range_preset, page_id vs property_name) are left entirely ambiguous, which is a severe gap for a tool with this many inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the domain (GA4 traffic and conversions) and scopes it to 'this account', so an agent knows it retrieves GA4 reporting data. However, it does not distinguish this tool from siblings like analytics_get_ai_referrals or analytics_get_checkout_funnel, nor does it say what metric granularity or breakdowns are returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusions, and no mention of the neighboring analytics_* tools that overlap in GA4 reporting. 'For this account' is a scope hint at best, not usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analytics_get_organic_roiOrganic ROICRead-onlyInspect
Join Search Console landing pages with GA4 sessions, conversions, and revenue.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description only restates the join scope and says nothing about default date ranges, behavior when a site/property is omitted, or how the sources are matched, so it adds little behavioral context beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and contains no filler, but for a tool with 17 optional parameters it is under-specified rather than genuinely concise. It earns its words but stops well short of what the tool needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, but a join tool with 17 parameters, zero required and 0% coverage leaves key usage questions unaddressed (how to scope by site/property, which date parameters govern the window). The description is not complete enough for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 17 parameters, yet the description explains none of them (url, site_url, date_from/date_to, range_preset, activity_only, etc.). With the schema doing nothing and the description offering no parameter meaning, an agent cannot determine how to filter or scope the query.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation ('Join') and the two data sources involved (Search Console landing pages and GA4 sessions/conversions/revenue), so the agent can tell it computes an organic-ROI metric. It does not differentiate the tool from siblings like search_get_paid_organic or analytics_get_ga4_metrics, which keeps it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternative tools. The agent is left to infer that this is the ROI-focused join rather than the raw metrics tools despite several overlapping siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automate_confirm_actionConfirm and run a proposalBDestructiveInspect
Execute a pending pause or budget proposal (writes to Google or Meta). Requires confirm=true and a user who can mutate data.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| scope | No | ||
| title | No | ||
| action | No | ||
| metric | No | ||
| reason | No | ||
| confirm | No | ||
| date_to | No | ||
| dry_run | No | ||
| rule_id | No | ||
| user_id | No | ||
| email_to | No | ||
| operator | No | ||
| platform | No | ||
| action_id | No | ||
| client_id | No | ||
| condition | No | ||
| date_from | No | ||
| is_active | No | ||
| min_spend | No | ||
| threshold | No | ||
| to_amount | No | ||
| user_email | No | ||
| campaign_id | No | ||
| report_type | No | ||
| confirm_live | No | ||
| range_preset | No | ||
| lookback_days | No | ||
| cooldown_hours | No | ||
| roas_threshold | No | ||
| consecutive_days | No | ||
| google_customer_id | No | ||
| meta_ad_account_id | No | ||
| max_actions_per_day | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, openWorldHint=true and non-idempotency; the description adds context annotations can't convey — that it writes out to Google/Meta ad platforms and requires a user with data-mutation rights plus confirm=true. It stops short of stating irreversibility or what gets changed on the external platform, but the added auth/external-write detail is real value beyond the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with what runs and where it writes, followed by the gating prerequisite. Nothing wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, but for a destructive 34-parameter, 0%-documented tool the description is far too thin: it gives no guidance on which parameters select the proposal or which are action-type-specific, leaving an agent likely to mis-populate a live external mutation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
34 parameters at 0% schema description coverage, and the description documents only one (confirm=true). It doesn't explain that action_id/rule_id identify the proposal, which fields are needed for a pause vs. budget action, or what dry_run does — the agent must guess across a very large, undocumented surface.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: executes a pending pause or budget proposal, and names the two external write targets (Google, Meta). An agent can distinguish it from automate_propose_pause / automate_propose_budget by the 'execute pending' framing, though it doesn't name those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies the workflow (run a proposal that already exists) and states a hard prerequisite (confirm=true, mutating user), but never explicitly says to call automate_propose_pause or automate_propose_budget first, nor when to use automate_dismiss_action instead. Usage is inferable but not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automate_delete_alert_ruleDelete an ads alert ruleCDestructiveIdempotentInspect
Delete an ads alert rule. Admin only.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| scope | No | ||
| title | No | ||
| action | No | ||
| metric | No | ||
| reason | No | ||
| confirm | No | ||
| date_to | No | ||
| dry_run | No | ||
| rule_id | No | ||
| user_id | No | ||
| email_to | No | ||
| operator | No | ||
| platform | No | ||
| action_id | No | ||
| client_id | No | ||
| condition | No | ||
| date_from | No | ||
| is_active | No | ||
| min_spend | No | ||
| threshold | No | ||
| to_amount | No | ||
| user_email | No | ||
| campaign_id | No | ||
| report_type | No | ||
| confirm_live | No | ||
| range_preset | No | ||
| lookback_days | No | ||
| cooldown_hours | No | ||
| roas_threshold | No | ||
| consecutive_days | No | ||
| google_customer_id | No | ||
| meta_ad_account_id | No | ||
| max_actions_per_day | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the irreversible nature is covered structuredly. The description adds the admin permission requirement, which is genuinely useful extra context, but stays silent on the safety parameters (confirm, confirm_live, dry_run) that govern whether the delete is actually executed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and followed by the permission constraint, so nothing is wasted. But the brevity is under-specification for a 34-parameter destructive tool rather than genuine economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and annotations cover the safety profile. Still, for a destructive tool with 34 undocumented optional parameters, the description omits the essentials an agent needs: how to identify the rule to delete and whether a confirmation flag is required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 34 parameters at 0% description coverage and zero required fields, so the description carries the full burden. It names none of them, giving no indication whether rule_id, name, scope, or a combination identifies the target rule, nor that dry_run and confirm exist. An agent cannot map intent to arguments from this text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Delete an ads alert rule'), which cleanly distinguishes it from automate_upsert_alert_rule and the sibling delete tools for SEO and automation rules. It is not tautological, though it offers no detail beyond the title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Admin only' gives a real prerequisite for use. However, it says nothing about when to choose this over automate_upsert_alert_rule (e.g., deactivating via is_active) or about discovering rules first with automate_list_alert_rules, leaving the routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automate_delete_automation_ruleDelete a ROAS pause ruleCDestructiveIdempotentInspect
Delete an automation rule. Admin only.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| scope | No | ||
| title | No | ||
| action | No | ||
| metric | No | ||
| reason | No | ||
| confirm | No | ||
| date_to | No | ||
| dry_run | No | ||
| rule_id | No | ||
| user_id | No | ||
| email_to | No | ||
| operator | No | ||
| platform | No | ||
| action_id | No | ||
| client_id | No | ||
| condition | No | ||
| date_from | No | ||
| is_active | No | ||
| min_spend | No | ||
| threshold | No | ||
| to_amount | No | ||
| user_email | No | ||
| campaign_id | No | ||
| report_type | No | ||
| confirm_live | No | ||
| range_preset | No | ||
| lookback_days | No | ||
| cooldown_hours | No | ||
| roas_threshold | No | ||
| consecutive_days | No | ||
| google_customer_id | No | ||
| meta_ad_account_id | No | ||
| max_actions_per_day | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the operation's effect, which is already implied by the verb 'Delete' and confirmed by the annotations ('destructiveHint': true). It fails to clarify potential side effects of the deletion.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and efficient, serving only as a minimal identifier, making it appropriate for its brief function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the extreme complexity of 34 parameters with 0% schema coverage, the description is functionally incomplete. It gives the AI agent no meaningful context to guide its parameter filling or decision-making before execution.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 34 input parameters and 0% schema description coverage, the description provides no semantic value to the parameters. An agent cannot use this single sentence to understand how or why specific parameters (like 'roas_threshold' or 'lookback_days') are relevant.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and the resource ('automation rule'). However, it fails to distinguish this tool from other deletion siblings (like delete_alert_rule), which requires relying heavily on the title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only provides a single operational prerequisite ('Admin only'). It offers no guidance on when to use this tool versus when to use related list or upsert functions, nor does it define any failure conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automate_delete_seo_alert_ruleDelete an SEO alert ruleCDestructiveIdempotentInspect
Delete a SEO/AEO alert rule. Admin + Starter+.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| scope | No | ||
| title | No | ||
| action | No | ||
| metric | No | ||
| reason | No | ||
| confirm | No | ||
| date_to | No | ||
| dry_run | No | ||
| rule_id | No | ||
| user_id | No | ||
| email_to | No | ||
| operator | No | ||
| platform | No | ||
| action_id | No | ||
| client_id | No | ||
| condition | No | ||
| date_from | No | ||
| is_active | No | ||
| min_spend | No | ||
| threshold | No | ||
| to_amount | No | ||
| user_email | No | ||
| campaign_id | No | ||
| report_type | No | ||
| confirm_live | No | ||
| range_preset | No | ||
| lookback_days | No | ||
| cooldown_hours | No | ||
| roas_threshold | No | ||
| consecutive_days | No | ||
| google_customer_id | No | ||
| meta_ad_account_id | No | ||
| max_actions_per_day | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the core safety profile is known. The description adds plan/admin eligibility, but does not explain irreversibility, what confirm/dry_run do, or what happens if the rule is missing—all important for a destructive tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler and the action front-loaded. It is concise, though its brevity contributes to the missing parameter and behavior detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 34 undocumented parameters, no required fields, a destructive operation, and a large optional schema, the description is far too thin. The output schema reduces the need to explain return values, but critical input and safety behavior remain unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are 34 parameters with 0% schema description coverage, and the description names none of them. It does not clarify which parameter identifies the rule (rule_id), what dry_run or confirm do, or why unrelated parameters such as campaign_id or date_from exist on a delete tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Delete) and resource (SEO/AEO alert rule), clearly distinguishing it from upsert/list siblings by operation. It does not explicitly contrast with automate_delete_alert_rule or automate_delete_automation_rule, but the resource name is specific enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions the Admin and Starter+ eligibility prerequisites, which is useful. However, it gives no guidance on when to use it versus listing or upserting rules, nor on whether rule_id must exist or whether dry_run/confirm should be used first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automate_dismiss_actionDismiss a proposalCInspect
Dismiss a pending pause proposal without pausing.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| scope | No | ||
| title | No | ||
| action | No | ||
| metric | No | ||
| reason | No | ||
| confirm | No | ||
| date_to | No | ||
| dry_run | No | ||
| rule_id | No | ||
| user_id | No | ||
| email_to | No | ||
| operator | No | ||
| platform | No | ||
| action_id | No | ||
| client_id | No | ||
| condition | No | ||
| date_from | No | ||
| is_active | No | ||
| min_spend | No | ||
| threshold | No | ||
| to_amount | No | ||
| user_email | No | ||
| campaign_id | No | ||
| report_type | No | ||
| confirm_live | No | ||
| range_preset | No | ||
| lookback_days | No | ||
| cooldown_hours | No | ||
| roas_threshold | No | ||
| consecutive_days | No | ||
| google_customer_id | No | ||
| meta_ad_account_id | No | ||
| max_actions_per_day | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly=false, destructive=false, and idempotent=false. The description adds only that dismissal happens 'without pausing', but does not explain what dismissal removes, whether it is reversible, or how confirm/dry_run parameters affect execution for this mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It is as concise as possible for what it chooses to say.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 34-parameter mutation with zero schema descriptions, one sentence is drastically incomplete. Even though an output schema exists, the input surface and confirmation behavior are entirely undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 34 parameters with 0% description coverage, and the description provides no parameter-level information. It does not explain key fields like action_id, rule_id, confirm, dry_run, or any of the campaign/metric/account fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Dismiss') and resource ('a pending pause proposal'), and the phrase 'without pausing' distinguishes it from pause-related siblings. It does not explicitly name alternatives such as automate_confirm_action, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mention of a 'pending pause proposal' implies the usage context, but there is no explicit guidance on when to use this instead of confirming, proposing, or ignoring a proposal. Alternatives and exclusions are left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automate_email_reportEmail a performance reportAInspect
Generate a Kampalo performance report PDF and email it. Sends to the signed-in user's own email by default. Other recipients in email_to require confirm=true. Needs a plan with scheduled reports.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| scope | No | ||
| title | No | ||
| action | No | ||
| metric | No | ||
| reason | No | ||
| confirm | No | ||
| date_to | No | ||
| dry_run | No | ||
| rule_id | No | ||
| user_id | No | ||
| email_to | No | ||
| operator | No | ||
| platform | No | ||
| action_id | No | ||
| client_id | No | ||
| condition | No | ||
| date_from | No | ||
| is_active | No | ||
| min_spend | No | ||
| threshold | No | ||
| to_amount | No | ||
| user_email | No | ||
| campaign_id | No | ||
| report_type | No | ||
| confirm_live | No | ||
| range_preset | No | ||
| lookback_days | No | ||
| cooldown_hours | No | ||
| roas_threshold | No | ||
| consecutive_days | No | ||
| google_customer_id | No | ||
| meta_ad_account_id | No | ||
| max_actions_per_day | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose non-read-only, open-world, non-idempotent, non-destructive behavior. The description adds valuable context beyond annotations: default recipient behavior, a confirmation gate for external recipients, and a plan prerequisite.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is four short sentences with the purpose front-loaded first, followed by key constraints. Every sentence adds a meaningful operational rule without filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. However, for a 34-parameter tool, the description is far too sparse: it omits report configuration, date range options, dry_run behavior, rule/action fields, and most other invocation details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are 34 parameters with 0% schema description coverage. The description only clarifies email_to and confirm semantics, leaving the other 32 parameters opaque and forcing the agent to guess their purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: generate a Kampalo performance report PDF and email it. The emailing step distinguishes it from sibling report-generation tools, so an agent can tell what makes this tool unique.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage conditions: default to the signed-in user's email, require confirm=true for other email_to recipients, and require a plan with scheduled reports. It does not explicitly compare with sibling tools, but the operating context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automate_generate_reportGenerate a performance reportCRead-onlyInspect
Build a Kampalo performance report JSON from synced DB (no PDF). Uses ReportService — same data as /api/marketing/reports/generate/.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| scope | No | ||
| title | No | ||
| action | No | ||
| metric | No | ||
| reason | No | ||
| confirm | No | ||
| date_to | No | ||
| dry_run | No | ||
| rule_id | No | ||
| user_id | No | ||
| email_to | No | ||
| operator | No | ||
| platform | No | ||
| action_id | No | ||
| client_id | No | ||
| condition | No | ||
| date_from | No | ||
| is_active | No | ||
| min_spend | No | ||
| threshold | No | ||
| to_amount | No | ||
| user_email | No | ||
| campaign_id | No | ||
| report_type | No | ||
| confirm_live | No | ||
| range_preset | No | ||
| lookback_days | No | ||
| cooldown_hours | No | ||
| roas_threshold | No | ||
| consecutive_days | No | ||
| google_customer_id | No | ||
| meta_ad_account_id | No | ||
| max_actions_per_day | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the agent knows this is a safe read operation. The description adds that it pulls from a synced DB and returns JSON rather than a PDF, which is useful behavioral context. However, it does not explain the large parameter surface, potential side effects (e.g., confirm/dry_run flags), or what the report contains beyond the output schema. Given the 34 parameters and low schema description coverage, more behavioral detail would be expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and front-loads the core purpose: building a report JSON. The second sentence adds implementation context without excessive verbosity. It could be slightly more informative about usage, but it is appropriately sized and avoids filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 34 input parameters with no schema descriptions, a concise purpose statement is insufficient. The description does not explain which parameters are relevant for report generation versus automation rules, nor does it provide usage guidance. Although an output schema exists, the input-side context is critically incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 34 parameters with 0% description coverage, meaning none of the parameters are documented in the schema. The description says nothing about any parameter's meaning, format, or relevance to the report generation. Even with an output schema, the input parameters are completely unexplained, leaving the agent unable to determine how to use most of them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Build a Kampalo performance report JSON'. It also distinguishes the output format by saying '(no PDF)', which helps differentiate from a PDF-based report tool. However, it does not explicitly differentiate from sibling tools like automate_email_report, which also produces reports, so it falls short of a full 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions an internal endpoint, but that does not help an agent decide between this and other report or automation tools. There is no indication of prerequisites, typical scenarios, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automate_list_actionsList pause and budget proposalsCRead-onlyInspect
List recent Kampalo pause proposals and executions for the active client.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| scope | No | ||
| title | No | ||
| action | No | ||
| metric | No | ||
| reason | No | ||
| confirm | No | ||
| date_to | No | ||
| dry_run | No | ||
| rule_id | No | ||
| user_id | No | ||
| email_to | No | ||
| operator | No | ||
| platform | No | ||
| action_id | No | ||
| client_id | No | ||
| condition | No | ||
| date_from | No | ||
| is_active | No | ||
| min_spend | No | ||
| threshold | No | ||
| to_amount | No | ||
| user_email | No | ||
| campaign_id | No | ||
| report_type | No | ||
| confirm_live | No | ||
| range_preset | No | ||
| lookback_days | No | ||
| cooldown_hours | No | ||
| roas_threshold | No | ||
| consecutive_days | No | ||
| google_customer_id | No | ||
| meta_ad_account_id | No | ||
| max_actions_per_day | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read, so the description adds little beyond the 'active client' scoping and the vague word 'recent'. It says nothing about the default time window, result ordering, pagination, or why a read-only listing would expose confirm/dry_run/confirm_live flags — a genuinely confusing signal an agent needs resolved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One clean, front-loaded sentence with no filler, but here the brevity is under-specification rather than efficiency. The size is appropriate; the content is not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, but for a 34-parameter listing tool with zero schema coverage the description should at minimum explain the filter surface, the meaning of 'recent', and how to relate results to automate_confirm_action / automate_dismiss_action. None of that is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 34 parameters, so the description carries the full burden and mostly fails it. Only 'active client' weakly maps to client_id; date_from/date_to, action, scope, rule_id, and the confirm/dry_run/confirm_live flags are entirely unexplained in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (List) and a specific resource (Kampalo pause proposals and executions) scoped to the active client, which distinguishes it from the mutation siblings automate_propose_pause and automate_confirm_action. It does not, however, differentiate itself from the several automate_list_* siblings, and it drops the 'budget' half of the title, so the inventory of what is listed is slightly inconsistent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage cue is 'for the active client', which implies no client selector is needed. There is no statement of when to reach for this vs automate_list_automation_rules or the propose/confirm tools, and no guidance on the many optional filter parameters that clearly exist for narrowing the query.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automate_list_alert_rulesList ads alert rulesCRead-onlyInspect
List ads performance alert rules (ROAS/CPA/spend pace).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| scope | No | ||
| title | No | ||
| action | No | ||
| metric | No | ||
| reason | No | ||
| confirm | No | ||
| date_to | No | ||
| dry_run | No | ||
| rule_id | No | ||
| user_id | No | ||
| email_to | No | ||
| operator | No | ||
| platform | No | ||
| action_id | No | ||
| client_id | No | ||
| condition | No | ||
| date_from | No | ||
| is_active | No | ||
| min_spend | No | ||
| threshold | No | ||
| to_amount | No | ||
| user_email | No | ||
| campaign_id | No | ||
| report_type | No | ||
| confirm_live | No | ||
| range_preset | No | ||
| lookback_days | No | ||
| cooldown_hours | No | ||
| roas_threshold | No | ||
| consecutive_days | No | ||
| google_customer_id | No | ||
| meta_ad_account_id | No | ||
| max_actions_per_day | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered and the bar is lower. The description adds that these are ads performance rules tied to ROAS/CPA/spend pace, which is useful context beyond the annotations, but it never explains that the 34 parameters act as filters (or that many, like confirm/dry_run/reason, are irrelevant to a read), nor does it mention result volume or ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no filler, which is structurally clean. However, the brevity reflects under-specification rather than disciplined concision given the 34-parameter surface the agent must navigate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. But for a tool exposing 34 undocumented optional parameters and multiple look-alike siblings, one sentence about the rule family is not enough to tell an agent how to filter or what the results will represent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 34 parameters, so the description carries the full burden and largely fails it. The only semantic hint is the parenthetical naming ROAS/CPA/spend pace, which loosely maps to the metric and threshold-type parameters, while rule_id, scope, is_active, platform, campaign_id, and the many mutation-oriented fields (confirm, dry_run, confirm_live) are left entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ("List ads performance alert rules") and parenthesizes the rule family it covers (ROAS/CPA/spend pace), which distinguishes it from the sibling upsert/delete variants and from the SEO/automation rule lists. It does not explicitly name those siblings, so differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus the close siblings (automate_list_automation_rules, automate_list_seo_alert_rules, or the upsert/delete alert-rule tools). The agent must infer from the name alone that this is the read path for ads alert rules, and no filtering or prerequisite guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automate_list_automation_rulesList ROAS pause rulesCRead-onlyInspect
List ROAS-below-N-days pause automation rules.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| scope | No | ||
| title | No | ||
| action | No | ||
| metric | No | ||
| reason | No | ||
| confirm | No | ||
| date_to | No | ||
| dry_run | No | ||
| rule_id | No | ||
| user_id | No | ||
| email_to | No | ||
| operator | No | ||
| platform | No | ||
| action_id | No | ||
| client_id | No | ||
| condition | No | ||
| date_from | No | ||
| is_active | No | ||
| min_spend | No | ||
| threshold | No | ||
| to_amount | No | ||
| user_email | No | ||
| campaign_id | No | ||
| report_type | No | ||
| confirm_live | No | ||
| range_preset | No | ||
| lookback_days | No | ||
| cooldown_hours | No | ||
| roas_threshold | No | ||
| consecutive_days | No | ||
| google_customer_id | No | ||
| meta_ad_account_id | No | ||
| max_actions_per_day | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes that this is a safe read operation, and the description is consistent with that. However, it adds almost no behavioral context beyond the title: it does not explain filtering behavior, default scope, whether all rule types are returned, or how the many optional parameters affect results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and free of filler, which is good. But for a 34-parameter listing tool, it is under-specified rather than appropriately concise, leaving no structure for the filtering surface.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the annotations cover the read-only profile. Still, given 34 undocumented optional parameters and 0% schema description coverage, the description is too thin to call this tool correctly beyond a no-argument listing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 34 optional parameters with 0% description coverage, and the description provides no mapping or meaning for any of them. Even domain terms like ROAS threshold or consecutive days are not explicitly tied to roas_threshold, consecutive_days, or related filters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('pause automation rules') narrowed by ROAS/days, so an agent can tell this lists a particular rule category. It does not explicitly distinguish itself from sibling list tools such as automate_list_alert_rules or automate_list_seo_alert_rules.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the other list-rule siblings, no prerequisites, and no exclusions. The description merely states what it lists, leaving tool selection to inference from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automate_list_seo_alert_rulesList SEO alert rulesCRead-onlyInspect
List Search Console / AI-referral alert rules. Starter+ plan.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| scope | No | ||
| title | No | ||
| action | No | ||
| metric | No | ||
| reason | No | ||
| confirm | No | ||
| date_to | No | ||
| dry_run | No | ||
| rule_id | No | ||
| user_id | No | ||
| email_to | No | ||
| operator | No | ||
| platform | No | ||
| action_id | No | ||
| client_id | No | ||
| condition | No | ||
| date_from | No | ||
| is_active | No | ||
| min_spend | No | ||
| threshold | No | ||
| to_amount | No | ||
| user_email | No | ||
| campaign_id | No | ||
| report_type | No | ||
| confirm_live | No | ||
| range_preset | No | ||
| lookback_days | No | ||
| cooldown_hours | No | ||
| roas_threshold | No | ||
| consecutive_days | No | ||
| google_customer_id | No | ||
| meta_ad_account_id | No | ||
| max_actions_per_day | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds useful plan-gating context ("Starter+ plan"), but it says nothing about the 34 optional filters or how they affect the listing behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and front-loaded with the core listing action. The plan note is relevant and earns its place, though the extreme brevity leaves critical parameter context absent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists, this is a 34-parameter filtering tool and the description explains none of the filter dimensions. It gives only purpose and plan eligibility, leaving the agent unable to construct a meaningful filtered query.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 34 parameters with 0% description coverage, and the description provides no parameter semantics at all. With no compensation from the description, an agent cannot know what name, scope, metric, threshold, date_from, or the other filters mean.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — listing Search Console / AI-referral alert rules — which distinguishes it from the generic alert-rule siblings like automate_list_alert_rules. It is clear, though it does not explicitly name the sibling alternatives it replaces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage-related information is "Starter+ plan," which is an eligibility constraint rather than guidance on when to choose this tool over automate_list_alert_rules or automate_list_automation_rules. No when-to-use or when-not-to-use conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automate_propose_budgetPropose a budget changeAInspect
Create a pending daily-budget change for a selected Google/Meta campaign. Take campaign_id and the account id from the *_get_campaigns rows. Capped at 20% of current daily budget. Does not mutate until automate_confirm_action with confirm=true.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| scope | No | ||
| title | No | ||
| action | No | ||
| metric | No | ||
| reason | No | ||
| confirm | No | ||
| date_to | No | ||
| dry_run | No | ||
| rule_id | No | ||
| user_id | No | ||
| email_to | No | ||
| operator | No | ||
| platform | No | ||
| action_id | No | ||
| client_id | No | ||
| condition | No | ||
| date_from | No | ||
| is_active | No | ||
| min_spend | No | ||
| threshold | No | ||
| to_amount | No | ||
| user_email | No | ||
| campaign_id | No | ||
| report_type | No | ||
| confirm_live | No | ||
| range_preset | No | ||
| lookback_days | No | ||
| cooldown_hours | No | ||
| roas_threshold | No | ||
| consecutive_days | No | ||
| google_customer_id | No | ||
| meta_ad_account_id | No | ||
| max_actions_per_day | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, non-destructive, non-idempotent, so the bar is lower, yet the description adds real context beyond them: the proposal stays pending, it is capped at 20% of current daily budget, and it does not mutate until a separate confirm call. It does not mention the dry_run or confirm parameters even though they exist in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, no waste, front-loaded with the action, followed by ID sourcing, the 20% constraint, and the confirmation gate. Each sentence adds decision-relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, and the core propose-then-confirm flow is covered. However, with 34 optional parameters at 0% coverage, an agent is still left guessing which fields (to_amount, platform, dry_run) actually matter for this operation, which is a notable gap for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% with 34 parameters, and the description clarifies only campaign_id and the account id (google_customer_id/meta_ad_account_id). The remaining ~30 parameters, including to_amount, dry_run, and confirm, receive no explanation, so the description does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Create a pending daily-budget change') scoped to Google/Meta campaigns, and the word 'propose' cleanly distinguishes it from automate_confirm_action and automate_propose_pause. An agent can identify it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the workflow: pull campaign_id and the account id from the *_get_campaigns rows, then confirm later via automate_confirm_action with confirm=true. It stops short of explicitly naming when to prefer automate_propose_pause, but the sequencing and prerequisites are clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automate_propose_pausePropose a campaign pauseAInspect
Create a pending pause proposal for a selected Google/Meta campaign. Take campaign_id plus customer_id (as google_customer_id) or ad_account_id (as meta_ad_account_id) from google_ads_get_campaigns / meta_ads_get_campaigns. Does not pause until automate_confirm_action.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| scope | No | ||
| title | No | ||
| action | No | ||
| metric | No | ||
| reason | No | ||
| confirm | No | ||
| date_to | No | ||
| dry_run | No | ||
| rule_id | No | ||
| user_id | No | ||
| email_to | No | ||
| operator | No | ||
| platform | No | ||
| action_id | No | ||
| client_id | No | ||
| condition | No | ||
| date_from | No | ||
| is_active | No | ||
| min_spend | No | ||
| threshold | No | ||
| to_amount | No | ||
| user_email | No | ||
| campaign_id | No | ||
| report_type | No | ||
| confirm_live | No | ||
| range_preset | No | ||
| lookback_days | No | ||
| cooldown_hours | No | ||
| roas_threshold | No | ||
| consecutive_days | No | ||
| google_customer_id | No | ||
| meta_ad_account_id | No | ||
| max_actions_per_day | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only, not destructive, and not idempotent. The description adds important workflow context: this creates only a pending proposal and does not pause the campaign until a later confirmation step.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three tight sentences, front-loaded with the core action and followed by identifier sourcing and the confirmation constraint. There is no wasted wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema and annotations exist, the input surface is large and entirely undocumented in the schema. The description names only a few identifiers and does not explain enough about the many optional parameters or the required setup for this tool to be complete given its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 34 parameters with 0% description coverage, and the description explains only the key identifier parameters campaign_id, google_customer_id, and meta_ad_account_id. Most parameters, including reason, platform, action, confirm, dry_run, and threshold-related fields, remain undocumented in both the schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: creating a pending pause proposal for a selected Google/Meta campaign. It also distinguishes this from the sibling tool that actually performs the pause, automate_confirm_action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly tells the agent where to obtain the campaign and account identifiers from (google_ads_get_campaigns / meta_ads_get_campaigns) and notes that the pause does not happen until automate_confirm_action. It does not explicitly compare against other proposal tools such as automate_propose_budget, but the usage context is otherwise clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automate_upsert_alert_ruleCreate or update an ads alert ruleBDestructiveInspect
Create or update an ads alert rule. Admin only. Notify after hourly sync; does not pause.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| scope | No | ||
| title | No | ||
| action | No | ||
| metric | No | ||
| reason | No | ||
| confirm | No | ||
| date_to | No | ||
| dry_run | No | ||
| rule_id | No | ||
| user_id | No | ||
| email_to | No | ||
| operator | No | ||
| platform | No | ||
| action_id | No | ||
| client_id | No | ||
| condition | No | ||
| date_from | No | ||
| is_active | No | ||
| min_spend | No | ||
| threshold | No | ||
| to_amount | No | ||
| user_email | No | ||
| campaign_id | No | ||
| report_type | No | ||
| confirm_live | No | ||
| range_preset | No | ||
| lookback_days | No | ||
| cooldown_hours | No | ||
| roas_threshold | No | ||
| consecutive_days | No | ||
| google_customer_id | No | ||
| meta_ad_account_id | No | ||
| max_actions_per_day | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds real context beyond annotations: admin-only access, hourly-sync evaluation timing, and that the rule notifies rather than pauses campaigns, which softens the destructiveHint. However, for a destructive 34-parameter mutation it says nothing about confirm/dry_run safety flow, what an update overwrites, or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded sentences with zero filler; the operation and its constraints come first. It is efficient, though the space saved is not reinvested in any parameter or safety detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a destructive, 34-parameter tool with no parameter documentation, the description is far too thin for correct invocation—an agent cannot know how to use dry_run/confirm or how to target an existing rule. The output schema covers return values, so that gap is acceptable, but the input-side gap is severe.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 34 parameters with 0% description coverage, and the description explains none of them. Critical fields like rule_id (create vs update), dry_run, confirm, confirm_live, and confirm_live's role in a destructive mutation are left entirely undocumented; only the phrase 'create or update' hints at rule_id semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (create or update) and resource (ads alert rule), which clearly separates it from the delete/list variants. It does not explicitly distinguish 'ads alert rule' from siblings automate_upsert_automation_rule or automate_upsert_seo_alert_rule, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Admin only' gives a clear permission precondition and 'Notify after hourly sync; does not pause' tells the agent this is notification-only rather than an action-taking tool. It stops short of naming the alternative (e.g. automate_propose_pause) for pausing, so routing is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automate_upsert_automation_ruleCreate or update a ROAS pause ruleBDestructiveInspect
Create or update a deterministic ROAS pause rule. Defaults to dry_run=true and is_active=false. Live enable requires confirm_live=true.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| scope | No | ||
| title | No | ||
| action | No | ||
| metric | No | ||
| reason | No | ||
| confirm | No | ||
| date_to | No | ||
| dry_run | No | ||
| rule_id | No | ||
| user_id | No | ||
| email_to | No | ||
| operator | No | ||
| platform | No | ||
| action_id | No | ||
| client_id | No | ||
| condition | No | ||
| date_from | No | ||
| is_active | No | ||
| min_spend | No | ||
| threshold | No | ||
| to_amount | No | ||
| user_email | No | ||
| campaign_id | No | ||
| report_type | No | ||
| confirm_live | No | ||
| range_preset | No | ||
| lookback_days | No | ||
| cooldown_hours | No | ||
| roas_threshold | No | ||
| consecutive_days | No | ||
| google_customer_id | No | ||
| meta_ad_account_id | No | ||
| max_actions_per_day | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, so the safety bar is lower, and the description usefully adds the safe-default posture (dry_run=true, is_active=false) and the confirm_live escalation gate. It does not say what a dry run returns, whether confirm_live overrides dry_run, or what existing state an update overwrites — meaningful gaps for a destructive write.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with zero filler, and the most decision-relevant fact (dry_run default) is placed early. The terseness is efficient, though for a 34-parameter tool it edges toward under-specification rather than optimal density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 34 parameters, an upsert with two distinct modes, and no parameter documentation, the description is far too thin. An output schema exists so return values need no explanation, but the agent gets no help on required create fields, rule scoping, or the relationship between confirm, confirm_live, and dry_run.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 34 nullable parameters, so the description must carry the load and it explains only three of them (dry_run, is_active, confirm_live). Nothing is said about the domain-critical fields (roas_threshold, consecutive_days, cooldown_hours, max_actions_per_day, scope/platform) or about which fields are required to create vs update.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb pair (create or update) plus a concrete resource ('deterministic ROAS pause rule'), which lets an agent tell it apart from the generic alert-rule siblings. It does not explicitly distinguish itself from automate_upsert_alert_rule / automate_upsert_seo_alert_rule, so the differentiation is inferred from the ROAS/pause wording rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description supplies a useful operating procedure (dry-run by default, inactive by default, confirm_live required for live enable), which is real when/how guidance. It never explains when to create versus update (rule_id presence), nor does it point to sibling tools for non-ROAS rules, leaving the core routing decision implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
automate_upsert_seo_alert_ruleCreate or update an SEO alert ruleCDestructiveInspect
Create or update a SEO/AEO alert rule. Admin + Starter+. Notify only; never pauses ads.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| scope | No | ||
| title | No | ||
| action | No | ||
| metric | No | ||
| reason | No | ||
| confirm | No | ||
| date_to | No | ||
| dry_run | No | ||
| rule_id | No | ||
| user_id | No | ||
| email_to | No | ||
| operator | No | ||
| platform | No | ||
| action_id | No | ||
| client_id | No | ||
| condition | No | ||
| date_from | No | ||
| is_active | No | ||
| min_spend | No | ||
| threshold | No | ||
| to_amount | No | ||
| user_email | No | ||
| campaign_id | No | ||
| report_type | No | ||
| confirm_live | No | ||
| range_preset | No | ||
| lookback_days | No | ||
| cooldown_hours | No | ||
| roas_threshold | No | ||
| consecutive_days | No | ||
| google_customer_id | No | ||
| meta_ad_account_id | No | ||
| max_actions_per_day | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds genuinely useful context beyond the annotations: 'Notify only; never pauses ads' clarifies the blast radius of a tool flagged destructiveHint=true, and the admin/plan requirement is a real invocation gate. It does not explain the create-vs-update branch or confirm/dry_run behavior, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences with no filler and the key safety statement placed early. Efficiency is good, though the extreme terseness is under-specification rather than true concision given the parameter surface.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 34-parameter destructive upsert with zero schema descriptions, the definition is far too thin: no create-vs-update semantics, no dry_run/confirm workflow, no indication which fields apply to SEO vs AEO rules. An output schema exists, so return values need not be described, but the input surface is largely unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 34 parameters at 0% schema description coverage, the description carries the full burden and contributes nothing — no mention of threshold, operator, metric, rule_id, dry_run, confirm, lookback_days, or cooldown_hours. An agent cannot tell which of the 34 nullable fields are needed for which alert type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb pair (create/update) and specific resource (SEO/AEO alert rule), which distinguishes it from the generic automate_upsert_alert_rule and automate_upsert_automation_rule siblings. However it doesn't explicitly name those siblings or the conditions that select one over the other.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Only a prerequisite is given ('Admin + Starter+'); there is no guidance on when to create vs update, how it differs from the three other upsert_* siblings, or what to do when rule_id is omitted. The agent must infer the routing itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_get_campaignsGoogle Ads campaignsCRead-onlyInspect
Google Ads per-campaign metrics for this account.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds nothing further — no pagination behavior, no default window, no note on how the 17 optional filters interact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, but it is under-specified rather than efficiently concise — brevity here reflects missing content, not tight writing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. However, for a tool with 17 undocumented optional parameters and no usage context, the description is far too thin to let an agent invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
17 parameters with 0% schema description coverage and not a single parameter referenced in the description. Names like 'range_preset', 'activity_only', 'user_id', and 'client_id' are left completely opaque; the description does not compensate for the coverage gap at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb ('get') plus resource ('Google Ads per-campaign metrics') scoped to 'this account'. The 'per-campaign' framing loosely separates it from account-level siblings like google_ads_get_summary, though it never names those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives such as google_ads_get_summary, google_ads_get_trends, or meta_ads_get_campaigns. The agent must infer the scenario entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_get_fatigueGoogle Ads ad fatigueCRead-onlyInspect
Google Ads campaign fatigue: CTR/CPA/ROAS decay vs the prior equal window.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint=true, openWorldHint=false), so the agent knows this is a safe read. The description adds the comparison baseline ('prior equal window'), which is a useful behavioral detail about how decay is computed. But it doesn't touch on permissions, cost/auth context, pagination, or output structure. With annotations carrying safety, 3 is fair – some added value, notable gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense, front-loaded sentence with no waste. It states the resource and comparison basis efficiently. Too terse for the tool's complexity, but as raw conciseness it's strong.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 17-parameter tool with 0% schema coverage and no parameter disambiguation, the description is drastically under-specified. The output schema exists so return values needn't be explained, and annotations cover safety, but parameter handling is a major gap. The comparison-window detail is the only substantive content; everything else an agent needs to invoke correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
17 parameters with 0% schema description coverage, and the description provides zero parameter meaning. No mention of url, days, date_from/date_to, range_preset, campaign_name, ad_account, user_id, page_id, etc. Many params appear overlapping (url/site_url, date range fields), which is exactly the situation where description must disambiguate – and it does nothing. Critical failure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (Google Ads campaign fatigue) and metric (CTR/CPA/ROAS decay vs prior equal window), so the agent knows what the tool returns. However, it doesn't distinguish itself from sibling fatigue tools like meta_ads_get_fatigue or meta_insights_get_fatigue beyond the 'Google Ads' prefix, and the title already conveys that. Purpose is clear but differentiation from siblings is weak.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no alternatives named, no conditions. The comparison window is implied but the agent isn't told when to choose this vs google_ads_get_trends or the meta fatigue siblings. Just a purpose statement, no usage framing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_get_summaryGoogle Ads summaryCRead-onlyInspect
Google Ads rolled-up totals for this account.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read and openWorldHint=false that it is closed-world. The description only adds that results are 'rolled-up totals' and account-scoped. It says nothing about how date ranges are handled, what dimensions are aggregated, or what happens when 17 optional filters are omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though this is more under-specification than deliberate brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, but 17 optional input parameters with zero documentation and no date-range or aggregation guidance make the definition inadequate for correct invocation. One sentence cannot carry this much schema complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 17 parameters have 0% schema description coverage and the description adds no parameter meaning whatsoever. Fields like url, days, date_from/date_to, range_preset, page_id, ad_account, and campaign_name are entirely undocumented, leaving the agent to guess at formats and interactions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (Google Ads) and nature of output (rolled-up totals) scoped to 'this account'. It implicitly distinguishes itself from google_ads_get_campaigns (per-campaign) and google_ads_get_trends (time series), but never names those siblings or states the distinction explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no mention of alternatives, no prerequisites or exclusions. The only usage context is the implicit 'for this account' scope. An agent gets no help deciding between this and google_ads_get_campaigns or meta_ads_get_summary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_get_trendsGoogle Ads trendsCRead-onlyInspect
Google Ads spend/clicks/conversion trends for this account.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that: no granularity, default date behavior, or note on which of the 17 filters actually affect the trend series.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, which is structurally fine. But brevity here reflects under-specification rather than disciplined conciseness for a 17-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, but the input side is a black box: 17 optional parameters with no documentation anywhere. For a tool of this complexity the description is far too thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 17 parameters have 0% schema description coverage and the description mentions none of them. Terms like date_from/date_to, range_preset, days, sort_by, limit, and campaign_name are left entirely unexplained, so the agent must guess at their meaning and interaction.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (Google Ads spend/clicks/conversion trends) and scope ('this account'), which is enough to distinguish it from a summary or campaign-list tool. However it never explicitly contrasts itself with close siblings like google_ads_get_summary or google_ads_get_fatigue, leaving the agent to infer the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose trends over google_ads_get_summary, google_ads_get_campaigns, or google_ads_get_fatigue, and no mention of prerequisites or typical scenarios. The agent gets a topic but no routing logic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_get_campaignsMeta Ads campaignsCRead-onlyInspect
Meta Ads per-campaign metrics for this account.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that: no pagination/limit behavior, no date-range defaults, no note that all 17 parameters are optional, and no indication of what 'this account' resolves to.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. It is efficiently written, though the brevity here reflects under-specification rather than disciplined concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists so return values need not be explained, but for a 17-parameter, zero-required tool the description is far too thin. No filtering semantics, no date/pagination behavior, and no routing guidance are provided, leaving the agent under-equipped to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 17 parameters, so the description carries the full burden and fails it. Terms like days, date_from/date_to, limit, sort_by, activity_only, campaign_name, ad_account and range_preset appear nowhere in the description, leaving their meaning and interactions entirely opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and granularity: per-campaign metrics for Meta Ads on the current account. That distinguishes it from account-level siblings like meta_ads_get_summary and from meta_ads_get_fatigue, though it never explicitly contrasts them. It is clear but minimally elaborated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of alternatives, despite several close siblings (meta_ads_get_summary, meta_ads_get_fatigue, google_ads_get_campaigns). An agent must infer from the name alone which of these to call for campaign-level data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_get_fatigueMeta Ads ad fatigueCRead-onlyInspect
Meta ads/creative fatigue: frequency plus CTR/CPA/ROAS decay vs the prior window.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds one meaningful behavioral detail — the metric is computed as a relative comparison against the prior window — but says nothing about ranking, thresholds, or how many rows come back.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence that leads with the resource and enumerates the contributing signals; nothing is wasted. It is perhaps slightly too compressed given the surface area the tool actually exposes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be explained, but a 17-parameter, zero-required tool with no parameter documentation and no usage framing leaves substantial gaps. The description is not sufficient to invoke this tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 17 parameters, so the description carries the full burden and fails it. An agent cannot tell what distinguishes url from site_url, ad_account from client_id, or range_preset from date_from/date_to, nor how sort_by and activity_only shape results.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific analytical concept (ad/creative fatigue) and pins it to concrete signals: frequency plus CTR/CPA/ROAS decay versus a prior window. This is far more than a restatement of the name and lets an agent recognise it as a diagnostic metric tool, though it never explicitly separates itself from close siblings like meta_insights_get_fatigue or google_ads_get_fatigue.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no routing to alternatives. With three near-identical 'fatigue' siblings in the list, this is a real omission — the agent gets no signal for choosing meta_ads_get_fatigue over meta_insights_get_fatigue.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_get_summaryMeta Ads summaryCRead-onlyInspect
Meta Ads rolled-up totals for this account.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds only the vague 'for this account' scoping hint and says nothing about pagination, aggregation window, or how the many filter parameters interact with the returned totals.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and free of filler, so it is not bloated. But brevity here comes at the cost of substance, given the tool exposes 17 optional parameters that go unmentioned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. For a read-only summary tool with 17 undocumented filter parameters and no usage guidance, however, the description leaves far too much for the agent to infer before it can call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are 17 parameters with 0% schema description coverage, and the description documents none of them. Nothing explains how url, site_url, ad_account, page_id, ig_user_id, range_preset, days, or date_from/date_to relate to one another, leaving every filter's meaning and precedence opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (Meta Ads) and the shape of the output ('rolled-up totals for this account'), which is more specific than a restatement of the title. However, it gives no signal distinguishing it from close siblings such as meta_ads_get_campaigns or google_ads_get_summary, so an agent must guess which aggregate tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of alternatives, and no preconditions. With siblings like meta_ads_get_campaigns and meta_ads_get_fatigue in the same namespace, the agent gets no routing help at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_insights_compare_platformsCompare Google and MetaCRead-onlyInspect
Google vs Meta ads comparison for this account.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds only the 'for this account' scope and nothing about what the comparison returns, how platforms are aligned, or any data-freshness caveats, so it contributes almost no behavioral context beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and free of filler, so it is structurally clean. But for a 17-parameter comparison tool it is drastically underspecified, which is a sizing problem rather than genuine conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be spelled out, but the description still omits how the two platforms are parameterized, which identifiers are required, and how the date window is chosen. For a tool this complex with zero parameter documentation, the definition is far from complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 17 parameters and 0% schema description coverage, the description carries the full burden of explaining the inputs and explains none of them. It is impossible to tell from the definition how date_from/date_to, range_preset, days, sort_by, or the many account-identifier parameters (ad_account, page_id, ig_user_id, client_id, site_url) shape the comparison.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says what the tool does at a high level — it compares Google vs Meta ads for the current account — so the verb and resource are recoverable. However, it is essentially a restatement of the title 'Compare Google and Meta' and adds no differentiation from the sibling summary tools (google_ads_get_summary, meta_ads_get_summary) that also report ad performance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this comparative tool versus the per-platform summary or trends tools in the sibling list. No prerequisites, exclusions, or alternatives are stated; the agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_insights_get_anomaliesUnusual daily changesCRead-onlyInspect
Unusual daily changes (spikes/drops) in Google/Meta spend, clicks, conversions, revenue, Shopify revenue/orders and Search Console clicks, vs a typical same weekday.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, and the description adds useful context by defining an anomaly as a same-weekday comparison and listing the metric families inspected. It does not disclose detection thresholds or output shape, but with a rich output schema and explicit read-only annotation that is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. It is efficient, though its density does not make up for the missing operational detail elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema and annotations cover return shape and safety, but the description is inadequate for a 17-parameter tool. It never explains which parameters narrow the date window, which select platforms or accounts, or how the anomaly comparison is scoped.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 17 parameters with 0% schema description coverage, and the description mentions none of them. It says nothing about how days, date_from/date_to, limit, activity_only, platform-specific IDs, or filters affect behavior, so an agent has no guidance on how to scope the anomaly query.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific analytic result (spikes/drops), the full metric set it covers across Google, Meta, Shopify and Search Console, and the comparison baseline (typical same weekday). An agent can tell what the tool produces, though it does not explicitly differentiate itself from siblings like meta_insights_get_fatigue or meta_insights_get_overview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool over meta_insights_get_fatigue, get_trends, or get_overview, nor any exclusions or prerequisites. The description implies it is for anomaly detection but leaves routing between sibling diagnostic tools entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_insights_get_fatigueCross-platform ad fatigueCRead-onlyInspect
Fatigue across Google Ads, Meta ads, and Shopify stores in one payload.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds nothing beyond the marketing phrase 'in one payload' – it does not explain what 'fatigue' measures, how it is computed, or what the payload contains, which is important for a 17-parameter analytical tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, but it is under-specified for a 17-parameter tool – brevity here comes at the cost of usefulness rather than being earned by efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 17 undocumented, optional parameters and zero schema coverage, the description leaves the agent unable to construct a meaningful call. The existence of an output schema relieves it of explaining return values, but not of explaining inputs and scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
17 parameters with 0% schema description coverage and no enums, and the description says nothing about any of them. An agent has no idea what url, days, range_preset, activity_only, or any of the other 13 arguments mean or how they interact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific metric (fatigue) and scope (across Google Ads, Meta ads, and Shopify), which distinguishes it from the sibling single-platform tools google_ads_get_fatigue and meta_ads_get_fatigue. It does not name those siblings explicitly, but the cross-platform framing is clear enough for an agent to route.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no explicit contrast with the two sibling fatigue tools, even though they exist and compete directly. The phrase 'in one payload' implies a consolidation use case but leaves the choice to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_insights_get_overviewCross-platform ads overviewDRead-onlyInspect
Account overview for insights context.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — no scoping, no mention of which account/platform is queried, no pagination or limit behavior, despite 17 loosely typed optional parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is technically brief, but it is under-specified rather than efficient — the low word count reflects missing information, not tight writing. There is no front-loaded statement of scope or return content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 17 optional parameters, zero required fields, 0% schema coverage, and no description-level parameter guidance, the definition is far too thin. An output schema exists so return values need not be explained, but the invocation contract is left almost entirely unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 17 parameters, and the description mentions none of them. Fields like url, page_id, site_url, client_id, ad_account, ig_user_id, range_preset, and activity_only are entirely unexplained, so an agent cannot know which identifiers are required or how they interact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Account overview for insights context" mostly restates the tool name (get_overview) and adds only the vague qualifier "insights context." It does not distinguish this tool from closely named siblings like meta_insights_compare_platforms, meta_insights_get_fatigue, meta_organic_get_overview, or overview_get_account.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many sibling overview/summary tools (meta_ads_get_summary, overview_get_account, meta_organic_get_overview). No prerequisites, no exclusions, no routing information of any kind.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_organic_get_ig_insightsInstagram insightsCRead-onlyInspect
Instagram organic account insights (reach/views/interactions).
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds the metric scope returned (reach/views/interactions), which is modestly useful, but says nothing about auth requirements, pagination, or date-range behavior for what is clearly a range-based query.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight, front-loaded sentence with no waste, but the terseness here is under-specification rather than genuine conciseness given the tool's 17-parameter surface.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, but for a 17-param, zero-required query tool the description provides no parameter guidance, no usage conditions, and no differentiation from closely related organic-insight siblings. Substantial gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Seventeen parameters with 0% schema description coverage, and the description mentions none of them. Fields like range_preset, activity_only, sort_by, ig_user_id, ad_account, and campaign_name are entirely undocumented anywhere, leaving an agent no basis for supplying or omitting them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Instagram organic account insights') and names the metric families (reach/views/interactions), which separates it from media-level or page-level siblings. It stops short of explicitly contrasting with meta_organic_get_ig_media or meta_organic_get_page_insights, so sibling differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no routing to alternatives despite a crowded sibling set (ig_media, page_insights, page_posts, meta_insights_get_overview). An agent must guess which organic Instagram tool applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_organic_get_ig_mediaInstagram postsCRead-onlyInspect
Recent Instagram media with engagement and insights.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds nothing behavioral beyond that - no note on pagination, what 'insights' requires, or how the 17 optional filters interact - and the output schema only covers return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no filler, which is structurally clean. However, at this level of terseness for a 17-parameter tool it reads as under-specification rather than disciplined concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 17 optional parameters, zero schema descriptions, and no annotations carrying behavioral detail, the description does not supply nearly enough for correct invocation. An output schema covers return values, but selection and filtering semantics are entirely unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 17 parameters, and the description mentions none of them by name or meaning. 'Recent' faintly implies a time window, but the distinction between days, date_from/date_to, range_preset, and sort_by is left completely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'Recent Instagram media with engagement and insights' names the resource (Instagram media) and hints at returned fields, but offers no verb and no differentiation from close siblings like meta_organic_get_ig_insights or meta_organic_get_page_posts. An agent cannot tell from this sentence alone which organic Instagram tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of prerequisites (connected IG account, page/IG user id), and no routing to the many sibling tools. The agent is left to infer applicability from the tool name entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_organic_get_overviewFacebook and Instagram overviewDRead-onlyInspect
Facebook Pages and linked Instagram accounts for organic insights.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and openWorldHint=false, covering the safety profile. The description adds no behavioral context such as data freshness, authentication requirements, typical latency, or whether it aggregates multiple sources. With 17 parameters and no explanation of their effects, the behavioral burden is far from met.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but fails to front-load essential information due to its extreme brevity. It reads more like a label than a functional description, wasting the opportunity to guide the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 17 parameters, 0% schema description coverage, and a complex multi-entity scope, the description is drastically incomplete. It does not help the agent understand parameter usage, data returned, or when to prefer it over siblings, making it inadequate even considering the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides only names and types with no meaning. The description does not mention or explain any of the 17 parameters (e.g., url, days, page_id, ig_user_id), leaving the agent entirely uninformed about what they control.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resources (Facebook Pages and linked Instagram accounts) and the domain (organic insights), which is clearer than the bare title. However, it lacks a specific verb like 'retrieve' or 'aggregate' and gives no indication of what the overview contains, leaving the agent to infer the action from the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many sibling organic tools (meta_organic_get_ig_insights, meta_organic_get_page_insights, meta_organic_get_page_posts, meta_organic_get_ig_media). The description does not mention any alternative or condition for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_organic_get_page_insightsFacebook Page insightsCRead-onlyInspect
Facebook Page organic insights (reach/views/engagement/follows).
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds the useful detail that the returned metrics cover reach/views/engagement/follows, but it says nothing about auth requirements, rate limits, or the fact that this is a multi-page/date-range query. With annotations carrying the safety load, this is an adequate-but-thin 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no waste, which is good structure. But with 17 parameters and a wide scope, that brevity crosses into under-specification rather than tightness, so it earns only a middling score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is complex (17 optional params, no required fields) and the description addresses almost none of that complexity. The presence of an output schema and the readOnly/openWorld annotations lighten the burden for return values and safety, but an agent still lacks the parameter and scoping guidance needed to call this correctly rather than one of its many siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are 17 parameters with 0% schema description coverage, and the description mentions none of them. The agent receives no hint about which of page_id, user_id, client_id, site_url, ad_account, campaign_name, property_name, date_from/date_to, days, or range_preset actually matter, nor which are mutually exclusive. This matches the LOW calibration case of many undocumented params at 0% coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get) and resource (Facebook Page organic insights) and even enumerates the metric families returned (reach/views/engagement/follows). It is clear what the tool does, but it does not differentiate itself from close siblings like meta_organic_get_overview or meta_organic_get_ig_insights, leaving the agent to guess which of the several insight tools to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no indication of prerequisites (e.g., a page must be connected), and never names an alternative among the many sibling insight tools. The only implicit cue is the platform word 'Facebook Page', which is not enough to route an agent between this and meta_organic_get_overview.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_organic_get_page_postsFacebook Page postsCRead-onlyInspect
Recent Facebook Page posts with engagement.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond them: no default time window behind 'recent', no pagination behavior for limit, no note on whether an authenticated page connection is required for the 17 optional identifiers. With the annotation bar lower a 2 reflects that the text contributes essentially zero new behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short fragment, which is superficially concise but reflects under-specification rather than editing: for a 17-parameter tool the absence of substance is the problem, not the length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is not required, but the description leaves the agent with no parameter guidance, no time-range semantics, and no sibling routing for a tool with 17 optional, undocumented inputs. It is far short of complete for this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 17 parameters (url, days, limit, sort_by, range_preset, activity_only, etc.), so the description carries the full documentation burden and supplies none of it. No parameter is mentioned, no format or default is explained, and no interaction between date_from/date_to/days/range_preset is clarified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (Facebook Page posts) with a scope qualifier ('recent') and an indication of the payload ('with engagement'). It is clear what is returned, but it never distinguishes itself from close siblings such as meta_organic_get_page_insights or meta_organic_get_ig_media, so an agent cannot route between them from the text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusions, and no mention of alternatives despite several overlapping organic/insights siblings. The only implicit signal is 'Page posts' versus 'IG media', which is left for the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
overview_get_accountKampalo account overviewCRead-onlyInspect
Connected Google/Meta/SEO resource counts for this account.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that – no pagination behavior, no auth/scope requirements, no note on what the counts represent or their refresh semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, appropriately front-loaded. Its brevity is appropriate structure-wise even though the content is under-specified for a 17-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists (so return values needn't be explained), the definition is far too thin for a tool exposing 17 optional parameters with zero schema documentation and no usage routing. An agent has little basis for deciding when to call it or what the inputs do.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 17 parameters, so the description carries the full explanatory burden. It only loosely gestures at resource types (Google/Meta/SEO) without mapping to any of url, days, limit, client_id, ad_account, ig_user_id, property_name, range_preset, activity_only, or the rest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The fragment 'Connected Google/Meta/SEO resource counts for this account' does communicate the data domain (connected resource counts), but it lacks a verb and sits in tension with the title 'Kampalo account overview,' which implies something broader than counts. It gives no differentiation from overview-style siblings such as shopify_get_overview or meta_organic_get_overview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many analytics/overview siblings, nor any prerequisites or exclusions. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_get_lighthouseLighthouse page auditCRead-onlyInspect
Lighthouse scores and CWV for this account.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover only readOnlyHint=true and openWorldHint=false, leaving most behavior undocumented. With 17 optional filters and no required parameters, the description does not say what happens when filters are omitted, whether results are aggregated or per-page, or any pagination/limit behavior. Only the safety profile comes from annotations, so the description carries the rest and delivers almost nothing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, but it is short by omission rather than by economy — a single noun-phrase fragment with no verb, no scope, and no actionable content. Under-specification, not conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, but for a 17-parameter, zero-required, zero-coverage tool with no usage guidance, the definition is far too thin. An agent cannot confidently populate or omit any of the filters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 17 parameters (url, days, limit, date_from/to, page_id, site_url, client_id, ad_account, ig_user_id, activity_only, etc.). The description mentions none of them, leaving the agent no way to know that e.g. ad_account or ig_user_id are irrelevant to a Lighthouse audit, or how url/site_url/page_id differ.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The fragment names the resource ('Lighthouse scores and CWV') so the agent knows the subject matter is a page-performance audit, but there is no verb and no scope detail ('this account' is unexplained). It is distinguishable from analytics_get_ga4_metrics or search_get_metrics only by topic, not by any stated operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance at all. Siblings like search_get_page_metadata, search_get_metrics and analytics_get_organic_roi are plausible alternatives for page-level data, and the description gives no condition for choosing this one over any of them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_get_metricsSearch Console metricsCRead-onlyInspect
Search Console site metrics for this account.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds only a faint scoping note ('for this account') and omits any behavior around date-window defaults, aggregation granularity, or sort behavior that a metrics tool would need.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence is structurally clean and wastes no words, but its brevity comes from under-specification rather than efficiency. There is nothing to trim, yet nothing substantive was said.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 17-parameter metrics tool, the description is far too thin. The output schema covers return values and annotations cover safety, but with no parameter guidance and no sibling routing, an agent cannot reliably construct a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are 17 parameters with 0% schema description coverage and the description explains none of them. Critical inputs like url, days, date_from/date_to, site_url, limit, and sort_by are left entirely undocumented, so the agent gets no help disambiguating overlapping date and site fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It names the resource (Search Console site metrics) and the account scope, but the verb is generic and it does not distinguish itself from close siblings like search_get_top_queries, search_get_paid_organic, or search_get_page_metadata. An agent cannot tell which Search Console read to pick from this line alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of when this is preferred over the other search_* siblings, and no prerequisites. The only hint is 'for this account', which is context rather than a selection rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_get_page_metadataPage SEO metadataCRead-onlyInspect
On-page SEO metadata issues for this account.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that: no return format, no pagination or limit behavior despite a 'limit' param, and no note on what 'issues' means. It neither contradicts nor enriches the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single compact fragment with no wasted words, so it passes on brevity. However it is under-specified rather than appropriately sized for a 17-parameter tool, leaving no front-loaded context to orient the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. But with 17 undocumented optional parameters and no usage guidance, the description falls well short of what an agent needs to invoke this tool correctly; only the read-only annotations carry any weight.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 17 parameters at 0% description coverage, and the description mentions none of them. Date filters (days, date_from, date_to, range_preset), account identifiers (client_id, user_id, site_url, property_name), and controls like limit/sort_by are entirely undocumented, so an agent has no basis for populating them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The fragment names a specific resource ('on-page SEO metadata issues') but supplies no verb, so it's unclear whether the tool retrieves, lists, or analyzes them. The name search_get_page_metadata implies retrieval, and the resource is distinct from siblings like search_get_lighthouse or search_get_top_queries, but the description alone only implies the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no statement of prerequisites, and no mention of the closely related search_get_lighthouse / search_get_metrics / search_get_top_queries alternatives. The single fragment provides no context for selecting this tool over its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_get_paid_organicPaid vs organic searchCRead-onlyInspect
Google Ads search terms overlapping Search Console queries (paid vs organic).
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds essentially nothing beyond that — no mention of required auth, data sources, join behavior, or what 'overlapping' entails, leaving behavioral context thin for a read/comparison tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no waste. It is appropriately sized, though the brevity comes at the cost of under-specification rather than deliberate economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The presence of an output schema means return values need not be described, but for a 17-parameter comparison tool with zero schema coverage and no usage or parameter guidance, the definition is far too thin to let an agent invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 17 parameters at 0% schema description coverage, the schema documents nothing, so the description must compensate entirely — yet it mentions no parameters (url, days, site_url, ad_account, campaign_name, etc.). This is a complete gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the domain (Google Ads search terms overlapping Search Console queries) but lacks a clear action verb and does not state what the tool actually returns or how it differs from siblings like search_get_top_queries or google_ads_get_summary. The 'paid vs organic' tag hints at a comparison but leaves the exact operation vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or alternative guidance is provided. An agent cannot tell from the description when this comparison should be preferred over related search or ads tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_get_top_queriesTop search queriesCRead-onlyInspect
Top Search Console queries for this account.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond this – no defaults for the date range, limit, or which optional parameters materially change behavior, which matters for a 17-parameter retrieval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single, front-loaded sentence with no filler, which is structurally clean. But for a tool with 17 inputs and no schema documentation, this level of brevity is under-specification rather than effective conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists so return values needn't be explained, but the description is far too thin for a 0%-covered 17-parameter tool. An agent has no way to know which of the many optional parameters to supply or how they interact.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 17 parameters, so the schema provides only titles and defaults and the description must compensate – yet it mentions no parameter at all, not even the url, days, limit, or date_from/date_to fields that drive the query.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (top Search Console queries) scoped to 'this account', so an agent can tell it returns ranked query data. However, it offers no differentiation from siblings such as search_get_metrics or search_get_paid_organic, which likely also surface Search Console data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no indication of when to use this tool versus the other search_* siblings, no mention of prerequisites, and no exclusions. 'For this account' is a scope statement, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shopify_get_overviewShopify store overviewCRead-onlyInspect
Shopify store revenue, orders, AOV, UTM channel mix, top products, and blended MER versus ads spend.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| days | No | ||
| limit | No | ||
| date_to | No | ||
| page_id | No | ||
| sort_by | No | ||
| user_id | No | ||
| site_url | No | ||
| client_id | No | ||
| date_from | No | ||
| ad_account | No | ||
| ig_user_id | No | ||
| user_email | No | ||
| range_preset | No | ||
| activity_only | No | ||
| campaign_name | No | ||
| property_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and openWorldHint=false, so the safety profile is partially covered. However, the description adds zero behavioral context: no default date range (days/date_from/date_to/range_preset all default to null), no statement of what happens when no site is specified, no auth or scope notes. For a read-only overview this is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded fragment with no wasted words, which is efficient. But for a 17-parameter tool it is under-specified rather than concise — the brevity comes at the cost of missing guidance, not from tight editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. Everything else is missing: no usage context, no parameter explanation for 17 undocumented inputs, no defaults or date-handling behavior. The description is far too sparse for the complexity of this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are 17 parameters with 0% schema description coverage and no enums; the description documents none of them. Terms like 'UTM channel mix', 'top products', and 'ads spend' faintly gesture at ad_account, campaign_name, or sort_by, but no parameter name, format, or default is clarified. The description fails to compensate for a total schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase names a specific resource (Shopify store) and enumerates the concrete outputs (revenue, orders, AOV, UTM channel mix, top products, blended MER vs ads spend), so an agent can tell what data this returns. It lacks an explicit verb and does not differentiate itself from the other *_get_overview siblings, but the content scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives among the many overview/analytics siblings (meta_insights_get_overview, meta_organic_get_overview, overview_get_account). The agent is left to infer applicability purely from the metric list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Added
meta_insights_get_anomalies
16 tool updates
- Changed
automate_confirm_action1 field changed- added
Input schema / properties / email_toAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Email To" +}
- Changed
automate_delete_alert_rule1 field changed- added
Input schema / properties / email_toAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Email To" +}
- Changed
automate_delete_automation_rule1 field changed- added
Input schema / properties / email_toAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Email To" +}
- Changed
automate_delete_seo_alert_rule1 field changed- added
Input schema / properties / email_toAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Email To" +}
- Changed
automate_dismiss_action1 field changed- added
Input schema / properties / email_toAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Email To" +}
- Added
automate_email_report - Changed
automate_generate_report1 field changed- added
Input schema / properties / email_toAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Email To" +}
- Changed
automate_list_actions1 field changed- added
Input schema / properties / email_toAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Email To" +}
- Changed
automate_list_alert_rules1 field changed- added
Input schema / properties / email_toAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Email To" +}
- Changed
automate_list_automation_rules1 field changed- added
Input schema / properties / email_toAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Email To" +}
- Changed
automate_list_seo_alert_rules1 field changed- added
Input schema / properties / email_toAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Email To" +}
- Changed
automate_propose_budget1 field changed- added
Input schema / properties / email_toAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Email To" +}
- Changed
automate_propose_pause1 field changed- added
Input schema / properties / email_toAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Email To" +}
- Changed
automate_upsert_alert_rule1 field changed- added
Input schema / properties / email_toAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Email To" +}
- Changed
automate_upsert_automation_rule1 field changed- added
Input schema / properties / email_toAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Email To" +}
- Changed
automate_upsert_seo_alert_rule1 field changed- added
Input schema / properties / email_toAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Email To" +}
41 tool updates
- First observed
analytics_get_ai_referrals - First observed
analytics_get_checkout_funnel - First observed
analytics_get_ga4_metrics - First observed
analytics_get_organic_roi - First observed
automate_confirm_action - First observed
automate_delete_alert_rule - First observed
automate_delete_automation_rule - First observed
automate_delete_seo_alert_rule - First observed
automate_dismiss_action - First observed
automate_generate_report - First observed
automate_list_actions - First observed
automate_list_alert_rules - First observed
automate_list_automation_rules - First observed
automate_list_seo_alert_rules - First observed
automate_propose_budget - First observed
automate_propose_pause - First observed
automate_upsert_alert_rule - First observed
automate_upsert_automation_rule - First observed
automate_upsert_seo_alert_rule - First observed
google_ads_get_campaigns - First observed
google_ads_get_fatigue - First observed
google_ads_get_summary - First observed
google_ads_get_trends - First observed
meta_ads_get_campaigns - First observed
meta_ads_get_fatigue - First observed
meta_ads_get_summary - First observed
meta_insights_compare_platforms - First observed
meta_insights_get_fatigue - First observed
meta_insights_get_overview - First observed
meta_organic_get_ig_insights - First observed
meta_organic_get_ig_media - First observed
meta_organic_get_overview - First observed
meta_organic_get_page_insights - First observed
meta_organic_get_page_posts - First observed
overview_get_account - First observed
search_get_lighthouse - First observed
search_get_metrics - First observed
search_get_page_metadata - First observed
search_get_paid_organic - First observed
search_get_top_queries - First observed
shopify_get_overview
Publisher details
- Operator
- Kampalo, operated by Tekreign (Islamabad, Pakistan) · Publisher source
- Operator website
- https://kampalo.com · Publisher source
- Vendor relationship
- First-party · Publisher source
- Documentation
- https://kampalo.com/kai/mcp · Publisher source
- Trust center
- Not available
- Restrictions
- Requires a paid Kampalo plan (Starter or Enterprise, 7-day trial with card); the Free plan cannot connect. Google Ads, Meta Ads, GA4, Search Console or Shopify must first be connected inside Kampalo. Access is scoped to the user's account, plan and role. Uses OAuth with dynamic client registration, so no custom OAuth app is needed. · Publisher source
Related MCP Connectors
- MCP AdsOAuthcom.mcp-ads
Run Google Ads, Meta Ads, GA4 and Search Console from chat: read, audit and launch campaigns.
AI marketing agent for Google Ads, Meta, GA4, TikTok, LinkedIn, Shopify, HubSpot and more.
- mcp-serverOAuthco.flyweel
Access Google & Meta Ads data via AI. Analyse campaign performance in seconds.
Google Ads, GA4, Search Console and Tag Manager for AI assistants. Every change is proposed first.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceCreate, launch, and manage Meta + Google ads from Claude and ChatGPT. Analytics, strategy, and autopilot automation for any store.1Apache 2.0
- AlicenseNot gradedqualityAmaintenanceAnalyze paid marketing accounts (Google Ads, Meta Ads, GA4, Merchant Center) in plain language, read-only. Provides insights, competitor ads, and landing page audits via natural language.2MIT

Presso MCP Serverofficial
AlicenseNot gradedqualityDmaintenanceConnects e-commerce and marketing data sources like Shopify, GA4, Google Ads, and Meta Ads to AI assistants, enabling natural language queries about store performance, ad campaigns, and customer behavior.11 npm2MIT- FlicenseBqualityDmaintenanceEnables natural language querying of marketing analytics across Google Search Console, GA4, Google Ads, HubSpot, and Bing. Provides tools for search queries, traffic, campaign performance, and composite cross-platform rollups.79-
Glama MCP Gateway
Add one secure layer between your agents and this server.