Kampalo
Server Details
Google Ads, Meta Ads, GA4, Search Console and Shopify insights, alerts, ROAS rules and ad actions.
- Status
- Healthy
- 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 41 tools
Most tools have distinct resource+action targets, but several clusters overlap: three fatigue tools (platform-specific vs cross-platform), multiple overview/metrics tools, and similarly named rule CRUD for alert/automation/SEO rules. Descriptions largely disambiguate, but an agent could still misselect among the fatigue or overview variants.
All names are lowercase snake_case with a consistent resource-prefix + get/action + noun pattern (e.g., google_ads_get_campaigns, automate_upsert_alert_rule, meta_organic_get_ig_insights). No mixed conventions or vague verbs.
41 tools is well above the practical range for an agent toolset, with many near-parallel read tools per platform and rule type. The count likely creates selection overhead despite the broad domain.
The surface covers read analytics across GA4, Google Ads, Meta Ads, organic social, Search Console, and Shopify, plus automation proposals and rule lifecycle. Minor gaps include no campaign creation/update beyond pause/budget proposals and limited Shopify order-level or creative detail.
Available Tools
41 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 proposalADestructiveInspect
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 | ||
| 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=false and openWorldHint=true, so the safety profile is covered. The description adds real value beyond that: it names the external systems written to (Google, Meta), the required confirm flag, and the permission requirement for the acting user.
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 tight sentences with the action and its constraints front-loaded and no filler. However, given 33 optional parameters it is arguably under-specified rather than optimally sized.
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 destructive, open-world tool with 33 parameters and zero schema descriptions, the description does not show how to identify which proposal is being executed or what dry_run does. The presence of an output schema covers return values, but the input-side guidance is far from sufficient.
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?
33 parameters, none required, and 0% schema description coverage, yet the description only clarifies one (confirm=true). It leaves the identity/selection parameters (action_id, name, scope, platform, client_id, rule_id) and the dry_run flag entirely unexplained, which is a substantial 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?
States a specific verb (execute) and resource (a pending pause or budget proposal), and names the two downstream platforms it writes to. It clearly pairs with the sibling propose_* tools, though it never names them 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?
"Pending ... proposal" plus "Requires confirm=true and a user who can mutate data" communicates the precondition and the gate for calling it. There is no explicit when-not guidance or named alternative, but the context is clear enough to act on.
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 | ||
| 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 blast radius is known. The description adds the 'Admin only' auth requirement, which is real added context, but says nothing about the confirm/confirm_live/dry_run safety flags that are present 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?
Two front-loaded sentences with zero filler. Brevity is a virtue here, though the extreme terseness is arguably under-specification rather than economy given the tool's complexity.
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 destructive tool with 33 undocumented parameters, the definition provides only an auth note. The output schema may cover returns, but the input surface — which fields identify the rule and which are safety switches — is completely 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?
33 parameters at 0% schema description coverage, and the description mentions none of them. An agent has no way to know whether rule_id, name, or scope identifies the target rule, nor what confirm, dry_run, or confirm_live do. The description fails the compensation burden entirely.
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 separates it from deletion siblings covering SEO alert rules and automation rules. It stops short of naming those siblings, but the resource 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?
'Admin only' is a permission gate, not usage guidance. The description never says when to delete versus upsert (automate_upsert_alert_rule) or how it relates to list_alert_rules, nor does it warn that this is irreversible.
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 | ||
| 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 cover the destructive/idempotent/read-only profile, and the description adds the useful 'Admin only' auth constraint. But for a destructive operation whose schema exposes confirm, confirm_live, and dry_run, the description says nothing about dry-run previewing, confirmation requirements, or irreversibility 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?
Two short sentences, front-loaded with the action, with no filler. It is terse to the point of under-specification, but no sentence is 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?
For a 33-parameter destructive tool with zero required fields and no schema documentation, the description leaves out the identifying parameter, the meaning of confirm/dry_run, and the target rule type. An output schema exists so return values need not be explained, but the invocation-relevant gaps are 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 33 parameters with 0% description coverage and no enums, and the description mentions none of them. An agent cannot tell from the description that rule_id is the likely identifier or what confirm/dry_run do, 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?
States a specific verb (Delete) and resource (automation rule), which separates it from the upsert/list siblings. However, it does not differentiate itself from the adjacent delete siblings (delete_alert_rule, delete_seo_alert_rule) or explain what an 'automation rule' is, leaving the title to carry that specificity.
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' is the sole usage constraint and functions as a permission prerequisite rather than a when-to-use guide. Nothing says when to delete versus deactivate a rule, nor when to prefer the sibling delete tools, and no alternatives are named.
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 | ||
| 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 safety profile is covered. The description adds one genuinely new behavioral fact, the Admin plan and Starter+ tier requirement, which the annotations do not carry, but it omits the likely confirmation/dry-run flow suggested by the confirm, confirm_live and dry_run 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?
Two short, front-loaded sentences with no filler. It is efficient, but the brevity is partly under-specification rather than disciplined concision given the complexity of the operation.
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 destructive tool with 33 undocumented, non-required parameters and 0% schema coverage, the description supplies only a purpose and a plan gate. It says nothing about identifying the target rule, the confirmation mechanics, or the intended invocation path, leaving the agent without what it needs to call this safely.
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 33 parameters and the description offers no parameter meaning at all. An agent gets no help identifying which field (e.g., rule_id, name, or scope) actually targets the rule, and no guidance on the many null-defaulted fields, 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?
States a specific verb ('Delete') and a specific resource ('SEO/AEO alert rule'), which lets an agent distinguish it from automate_delete_alert_rule and automate_delete_automation_rule by resource type. However, it never clarifies what distinguishes an SEO/AEO alert rule from a plain alert rule, so the differentiation still leans on the tool 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?
'Admin + Starter+' is a plan/permission gate, not usage guidance. The description never says when this tool should be chosen over the sibling delete tools, nor does it mention the confirm/dry_run path that a 33-parameter destructive operation clearly implies.
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 proposalBInspect
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 | ||
| 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=false, destructiveHint=false, idempotentHint=false, so safety profile is covered. The description adds the useful behavioral fact that this dismisses rather than pausing. But with 33 parameters and no explanation of how any are used (which identify the proposal to dismiss), it leaves significant behavioral context unstated.
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 economical sentence with no wasted words, front-loading the action and the key modifier ('without pausing'). Its brevity is appropriate, though it leaves a lot unsaid for a 33-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 semantics needn't be described. But for a tool with 33 optional parameters and 0% schema description coverage, the one-sentence description is far too thin to guide correct invocation — it doesn't identify which parameters select the proposal, what confirm/dry_run do, or required identifiers.
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% for 33 parameters with no enums, defaults only. The description mentions none of them, so an agent has no way to know which of the 33 fields actually identify the proposal to dismiss or what 'confirm', 'dry_run', etc. do. This is a severe gap that the description fails to compensate for.
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 the sibling automate_propose_pause. It's clear, though it doesn't name the sibling alternatives (automate_confirm_action) 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?
The phrase 'pending pause proposal' implies usage context, and 'without pausing' hints at contrast with confirm. However, it never states when to use this vs automate_confirm_action or automate_propose_pause, nor what preconditions (e.g., a proposal must exist) apply.
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 | ||
| 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 safety is covered. The description adds useful context beyond that: the data source (synced DB) and the output format (JSON, not PDF, referencing the underlying service/endpoint). It does not mention pagination, size, or auth, but with annotations carrying the safety profile a 3 is appropriate.
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. The scope qualifier ("no PDF") and data source come early. It is tight, though it leaves obvious capacity unused given the tool's huge 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. However, for a tool with 33 undocumented, all-optional parameters, the description is far too thin to make the tool callable with confidence. It does not compensate for the total absence of parameter documentation.
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 33 parameters at 0% schema description coverage, and the description explains none of them. The parameter set even contains mutation-flavored fields (confirm, dry_run, confirm_live, action, reason) that are completely unaddressed, leaving the agent unable to know what any argument means.
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+resource ("Build a Kampalo performance report JSON") and adds scope detail ("from synced DB (no PDF)"). An agent knows this returns JSON rather than a PDF and pulls from synced data. However, it does not distinguish itself from the many other automate_* and analytics_* siblings.
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 named alternative. The "no PDF" note hints at scope but does not tell the agent when to choose this over analytics_get_* or other report tools. Usage must be fully inferred.
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 | ||
| 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 safety is covered without the description. The description adds only 'recent' and 'active client' scoping, leaving undefined what 'recent' means, whether results are paginated, and why write-flavored parameters (confirm, dry_run, confirm_live) appear in a read-only list call.
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 the resource front-loaded and no filler. It is efficient, though arguably under-specified rather than genuinely concise for a 33-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 described, but for a 33-parameter tool with zero required fields and zero schema coverage the description is far too thin. It leaves the agent unable to determine which of the many filters (date ranges, rule_id, action_id, thresholds, etc.) actually apply.
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 33 parameters with 0% description coverage and no enums, and the description mentions none of them. It gives no indication which parameters are meaningful for listing versus the shared/irrelevant blob, so the agent has no basis for filtering correctly.
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 (List) and resource (pause proposals and executions) scoped to the active client, so the agent can distinguish it from sibling list tools like automate_list_automation_rules. Minor inconsistency: the title promises 'pause and budget proposals' while the description only mentions pause proposals and executions.
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 use this versus the many sibling listing tools (automate_list_automation_rules, automate_list_alert_rules, automate_list_seo_alert_rules), and no prerequisites or exclusions. 'For the active client' implies context but does not say how the client is determined or when the tool is appropriate.
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 | ||
| 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 by structured data. The description adds nothing beyond that — it does not explain filtering behavior, pagination, or why a read-only listing tool exposes write-flavored parameters such as confirm, confirm_live, dry_run and action_id.
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 zero wasted words. It is tight and readable, though its brevity borders on under-specification for a tool with this many parameters.
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, with 33 undocumented parameters, no usage guidance, and no filter semantics, the description falls well short of what an agent needs to invoke this tool correctly in the presence of several similarly named listing 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?
Schema description coverage is 0% across 33 parameters, so the description carries the full explanatory burden. The parenthetical '(ROAS/CPA/spend pace)' vaguely gestures at metric-related fields but gives no meaning to name, scope, threshold, operator, condition, lookback_days, or the confirm/dry_run pair.
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 ('List') and resource ('ads performance alert rules') and hints at the metric domain (ROAS/CPA/spend pace). The word 'ads' partially distinguishes it from the sibling automate_list_seo_alert_rules and automate_list_automation_rules, though the separation is by inference rather than explicit contrast.
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 the other listing tools (automate_list_automation_rules, automate_list_seo_alert_rules) that an agent must choose between. The agent is left to infer selection entirely from the tool name.
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 | ||
| 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 no further behavioral context - nothing about pagination, filter behavior, defaults, or that the 33 parameters are all optional filters, leaving the description essentially empty of value beyond the annotation.
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, front-loaded sentence with no wasted words, but it is under-specified rather than genuinely concise, and the 'N-days' shorthand is cryptic rather than clarifying.
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 read-only list tool with 33 undocumented optional filters and no usage guidance, the description is far too thin to let an agent 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?
The tool exposes 33 parameters at 0% schema description coverage, and the description says nothing about any of them. Only a loose hint ('ROAS-below-N-days' gesturing at roas_threshold/consecutive_days) exists, which does not compensate for the near-total absence of parameter meaning.
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 (List) and resource (automation rules) qualified by 'ROAS-below-N-days pause', which distinguishes it from siblings like automate_list_alert_rules and automate_list_seo_alert_rules. It does not, however, explicitly contrast itself with those list siblings, so it falls just short of 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 guidance on when to use this tool versus alternatives such as automate_list_actions or the SEO/alert list siblings, and no prerequisites or exclusions are stated. The agent must infer usage entirely from the name and title.
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 | ||
| 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 the plan gate (Starter+), which is useful context, but says nothing about result volume, ordering, or pagination behavior for what could be a long list of rules.
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 the scope stated first and the plan constraint second; nothing is wasted. It is arguably too terse, but that is a completeness problem rather than a structural one.
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 relieves the need to describe return values, but for a 33-parameter tool with zero schema descriptions the description leaves the agent with no idea which filters are meaningful or which are inert for SEO rules. It does not do enough to make the tool callable with confidence.
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 33 parameters, and the description names none of them. Names like 'from_amount'/'to_amount', 'min_spend', 'cooldown_hours', and 'report_type' are not self-explanatory in an SEO alert-rule context, so the description entirely 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?
States a specific verb (List) and a scoped resource (Search Console / AI-referral alert rules), which distinguishes it from the broader sibling automate_list_alert_rules and automate_list_automation_rules. It does not explicitly name those siblings, but the qualifier 'Search Console / AI-referral' is enough for an agent to route by domain.
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 'Starter+ plan' note gives a real prerequisite that tells the agent when the tool is unavailable, but there is no statement of when to prefer this over automate_list_alert_rules or the upsert/delete SEO siblings. Usage is implied by the domain qualifier rather than stated.
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 | ||
| 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 real behavior beyond annotations: the 20% cap on the daily budget and the deferred-mutation semantics (nothing changes until confirm=true). Annotations already flag readOnly=false/destructive=false, but the cap and staging behavior are meaningful extras not derivable from 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?
Four tight sentences, front-loaded with the action, then param sourcing, then the cap, then the confirmation gate. Every sentence adds a distinct constraint with no 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?
For a 33-parameter tool with zero schema descriptions, the description covers only the core happy-path params and ignores the bulk of the schema. Output schema exists so return values need no explanation, but the parameter ambiguity is a major gap that the description does not close.
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 33 parameters, so the description carries the full burden, yet it only names campaign_id and 'the account id'. The many other params (action, metric, threshold, rule_id, dry_run, etc.) are left entirely undefined, leaving an agent unable to tell which matter for a budget change.
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: 'Create a pending daily-budget change for a selected Google/Meta campaign.' The 'budget' resource naturally separates it from the sibling automate_propose_pause, though it never names that sibling 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?
Gives clear context: source campaign_id and the account id from the *_get_campaigns rows, and routes the follow-up step to automate_confirm_action with confirm=true. No explicit when-not-to-use or exclusion, but the workflow positioning is 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 | ||
| 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 discloses that this creates a PENDING proposal and that it does NOT pause until automate_confirm_action – a crucial behavioral fact that separates proposal from execution. It also indicates the two-step workflow, implying the action is reversible/incomplete until confirmed. However, it does not mention idempotency, error behavior, or what happens if dry_run/confirm flags are set, which is relevant for a mutation tool with idempotentHint=false and destructiveHint=false.
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 sentences, front-loaded with the core action and the critical 'does not pause until' constraint. Efficient and focused, though it could be tightened slightly and the parameter sourcing feels a bit list-like. No wasted words, but not maximally tight either.
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 mutation tool with 33 parameters, 0% schema description coverage, and a complex two-step workflow, the description gives only the bare essentials (what it does and the follow-up tool). It omits guidance on the many parameters, error handling, idempotency, and interaction with automate_confirm_action beyond the name. An output schema exists, so return values need not be explained, but the parameter and behavior 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?
Schema description coverage is 0% for 33 parameters, so the description must carry the full burden. It only explains how to obtain campaign_id plus either google_customer_id or meta_ad_account_id. The other 30 parameters (dry_run, confirm, confirm_live, threshold, conditions, rules, dates, etc.) are completely undocumented in both schema and description, leaving an agent to guess their meaning and required vs optional nature (required is 0, so all optional).
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 opens with a specific verb+resource: 'Create a pending pause proposal for a selected Google/Meta campaign.' This distinguishes it from the sibling automate_propose_budget (budget proposal vs pause) and from automate_confirm_action (which executes). An agent can identify this as the proposal step of the pause workflow 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?
The description provides explicit workflow instructions: it tells the agent where to source campaign_id and customer_id (from google_ads_get_campaigns / meta_ads_get_campaigns) and explicitly names the follow-up tool automate_confirm_action as the step that actually pauses. This is clear when-to-use and what-comes-next guidance, though it does not state when NOT to use this tool (e.g., when a proposal already exists).
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 | ||
| 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=false, destructiveHint=true and idempotentHint=false. The description adds real value with the auth requirement ('Admin only') and the effect ('Notify after hourly sync; does not pause'), but for a destructive 33-parameter mutation this is thin, and 'does not pause' sits in some tension with the declared destructive/idempotent 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?
Three short sentences, action stated first followed by constraints. Every sentence adds something (operation, auth, effect) with no filler, though the brevity is very aggressive for a 33-param 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?
This is a high-complexity tool (33 params, 0% schema coverage). The description does not document parameter roles or the create-vs-update distinction (rule_id, action, condition, etc.), leaving the agent without enough to build a correct call. The output schema does cover return values, so that is not a 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?
Schema description coverage is 0% across 33 parameters, so the description must carry the burden. It provides no parameter names or meaning at all — only the tangential 'notify/does not pause' behavioral hints — so it 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 states a specific verb and resource ('Create or update an ads alert rule'), and the 'ads' qualifier distinguishes it from the sibling seo/automation upsert tools. It does not, however, explicitly name or route away from those alternatives.
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' communicates a permission prerequisite, which is useful context. But there is no guidance on when to use this versus automate_upsert_automation_rule or automate_upsert_seo_alert_rule, so usage is only implied.
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 | ||
| 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 declare destructiveHint=true and idempotentHint=false, and the description adds real safety workflow detail beyond that: the dry-run default, the inactive default state, and the confirm_live gate for live enablement. It still omits permissions/auth requirements and what happens to unspecified fields on update, which matters for a destructive 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?
Three short sentences with zero filler, and the most safety-critical information (dry_run default, confirm_live requirement) is front-loaded where an agent will read it first.
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 a 33-parameter destructive upsert with zero schema descriptions is not adequately covered by three sentences. An agent cannot determine required inputs, update-vs-create semantics, or what most fields mean.
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 33 parameters, and the description explains only three of them (dry_run, is_active, confirm_live). Critical fields such as rule_id, scope, condition, operator, roas_threshold, consecutive_days, cooldown_hours, and lookback_days carry no meaning anywhere in the definition.
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 verb pair ('Create or update') and a specific resource ('a deterministic ROAS pause rule'), which separates it from siblings like automate_upsert_alert_rule and automate_upsert_seo_alert_rule by rule domain. It stops short of naming those siblings explicitly, so differentiation is inferable 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?
It gives actionable gating guidance: dry_run defaults to true, is_active defaults to false, and going live requires confirm_live=true. However, it never says when to use this tool versus alternatives such as automate_propose_pause or automate_propose_budget, nor what the upsert key is when updating an existing rule.
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 ruleBDestructiveInspect
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 | ||
| 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 genuine context beyond the annotations: the auth/plan requirement ("Admin + Starter+") and the key behavioral fact that this rule type only notifies and "never pauses ads." That reassures the agent the rule's runtime effect is non-mutating even though destructiveHint=true applies to the upsert itself. It still says nothing about dry_run/confirm/confirm_live, which matter for a destructive tool, so it stops short of 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?
Three tight fragments with zero wasted words, and the purpose is front-loaded ahead of the constraints. The terseness is efficient but arguably too spare for a 33-parameter destructive upsert, so it is not quite ideal sizing.
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 the description is far too thin for a tool of this complexity: 33 undocumented parameters, a destructive upsert with dry_run/confirm flags left unexplained, and no create-vs-update routing. An agent could not reliably invoke this from the description alone.
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 33 parameters with 0% description coverage and no enums, and the description explains none of them. Critical semantics are left entirely undocumented: rule_id vs create, operator/condition/metric, dry_run, confirm, confirm_live, is_active, and the many platform-specific IDs. With zero compensation for a 33-param schema, this is the definition's worst 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?
States a specific verb pair (create or update) and resource (SEO/AEO alert rule), and the name distinguishes it from the sibling automate_upsert_alert_rule and automate_upsert_automation_rule by the SEO/AEO qualifier. However, the description itself never explicitly contrasts this tool with those closely-named siblings, leaving differentiation to inference.
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?
Gives a real precondition ("Admin + Starter+") that tells the agent who may call it and on which plan, which is more than most. But it offers no when-to-use vs alternatives guidance: nothing on upsert vs automate_delete_seo_alert_rule, vs the non-SEO upsert, or when rule_id should be present for update vs omitted for create.
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_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.
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, Meta (Facebook) Ads, GA4 and Merchant Center analysis in plain language. Read-only.
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.