Skip to main content
Glama

AdsAgent — Google Ads MCP

google_ads_insights_query_daily

Read-only

Bounded daily spend for one enabled non-manager customer (ledger by default, narrow default window). Manager/closed/canceled accounts return a skip reason instead of metrics.

Input Schema

NameRequiredDescriptionDefault
sourceNoRead source; defaults to synced data ('ledger'). 'live' sweeps the API.
date_toNoISO date (YYYY-MM-DD). Optional.
date_fromNoISO date (YYYY-MM-DD). Optional; defaults to a narrow recent window.
customer_idYes10-digit Google Ads customer id.
connection_contextNo

Output Schema

NameRequiredDescriptionDefault
okNo
codeNo
rowsNo
errorNo
needsNo
reasonNo
sourceNo
date_toNo
summaryNo
currencyNo
date_fromNo
retryableNo
error_codeNo
customer_idNo
next_actionNo
support_refNo
invalid_fieldsNo
rejected_pathsNo
origin_support_refNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "code": {
      +      "type": "string"
      +    },
      +    "currency": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "customer_id": {
      +      "type": "string"
      +    },
      +    "date_from": {
      +      "type": "string"
      +    },
      +    "date_to": {
      +      "type": "string"
      +    },
      +    "error": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "additionalProperties": true,
      +              "properties": {
      +                "code": {
      +                  "type": "string"
      +                },
      +                "details": {
      +                  "additionalProperties": true,
      +                  "properties": {},
      +                  "type": "object"
      +                },
      +                "message": {
      +                  "type": "string"
      +                },
      +                "retryable": {
      +                  "type": "boolean"
      +                },
      +                "support_ref": {
      +                  "type": "string"
      +                }
      +              },
      +              "type": "object"
      +            }
      +          ]
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "error_code": {
      +      "type": "string"
      +    },
      +    "invalid_fields": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "needs": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "next_action": {
      +      "anyOf": [
      +        {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "additionalProperties": true,
      +              "properties": {},
      +              "type": "object"
      +            }
      +          ]
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "ok": {
      +      "type": "boolean"
      +    },
      +    "origin_support_ref": {
      +      "type": "string"
      +    },
      +    "reason": {
      +      "type": "string"
      +    },
      +    "rejected_paths": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "retryable": {
      +      "type": "boolean"
      +    },
      +    "rows": {
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {},
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "source": {
      +      "type": "string"
      +    },
      +    "summary": {
      +      "additionalProperties": true,
      +      "properties": {},
      +      "type": "object"
      +    },
      +    "support_ref": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / source / description
      Previous value: -"Read source; defaults to the Supabase ledger. 'live' sweeps the API."New value: +"Read source; defaults to synced data ('ledger'). 'live' sweeps the API."
  3. Changed1 schema field changed
    • addedInput schema / properties / connection_context
      Added value: +{
      +  "pattern": "^mctx_v1_[0-9a-f]{64}$",
      +  "type": "string"
      +}
  4. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, non-destructive, closed-world), so the description earns its credit by adding semantics annotations cannot express: ledger is the default source rather than a live API sweep, the default window is deliberately narrow, and manager/closed/canceled accounts yield a skip reason instead of metrics. That partial-result behavior is genuinely useful non-obvious context.

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

Conciseness5/5

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

Two tight sentences with no filler: the scope constraint and the default-source caveat come first, and the skip-reason edge case is appended compactly.

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

Completeness4/5

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

With an output schema present, return values need not be explained, and the description covers the key edge case (skip reason) plus default behavior. What is missing is routing guidance relative to the sibling insights tools, which an agent would need to pick this one confidently.

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

Parameters3/5

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

With 80% schema coverage the schema already documents source, dates, and customer_id, including the ledger default and narrow window. The description mostly restates those defaults rather than adding new meaning; connection_context remains undocumented in both places.

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

Purpose4/5

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

States a specific verb+resource ('bounded daily spend') scoped to exactly one enabled non-manager customer, which is precise enough for an agent to know what it returns. It does not name or contrast with near-neighbors like google_ads_insights_overview_query or insights_query_consistent, so sibling differentiation is left implicit.

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

Usage Guidelines3/5

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

The audience constraint ('one enabled non-manager customer') implicitly tells the agent when this applies, and the skip-reason clause hints at unsupported accounts. But there is no explicit when-to-use vs when-to-use-alternatives guidance against the sibling insights query tools, which is the main selection ambiguity here.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources