Skip to main content
Glama

AdsAgent — Google Ads MCP

insights_query_consistent

Read-only

Canonical compact ledger-only Insights read. Pass query_contract_version=1, group_by, explicit date_from/date_to, and exactly one of scope or scopes. Use scopes for server-side batch, trust coverage and pagination separately, and continue the same ordered batch only with meta.next_continuation; single-scope responses also mirror it in result.data. The cursor binds the exact Google ledger generation and page size; do not send Meta min_as_of.

Input Schema

NameRequiredDescriptionDefault
pageNo
scopeNo
fieldsNo
scopesNo
date_toYes
wait_msNo
group_byYes
date_fromYes
page_sizeNo
consistencyNocached
continuationNoUse the opaque signed cursor returned by the previous response. It remains bound to the original customer and login-customer route, dates, grouping, supported filters/order, ordered scopes, fields, page size, and ledger snapshot. Never add Meta min_as_of. For scopes batches, use the single meta.next_continuation to continue the same ordered scopes together.
response_modeNocompact
date_range_modeNoexplicit
connection_contextNo
query_contract_versionYes
require_complete_rangeNo

Output Schema

NameRequiredDescriptionDefault
okNo
codeNo
metaNo
errorNo
needsNo
reasonNo
statusNo
resultsNo
completeNo
retryableNo
error_codeNo
next_actionNo
support_refNo
invalid_fieldsNo
rejected_pathsNo
schema_versionNo
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"
      +    },
      +    "complete": {
      +      "type": "boolean"
      +    },
      +    "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"
      +    },
      +    "meta": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "complete": {
      +          "type": "boolean"
      +        },
      +        "has_more": {
      +          "type": "boolean"
      +        },
      +        "limit": {
      +          "type": "integer"
      +        },
      +        "next_continuation": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "next_cursor": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "pagination_complete": {
      +          "type": "boolean"
      +        },
      +        "returned_count": {
      +          "type": "integer"
      +        },
      +        "source": {
      +          "type": "string"
      +        },
      +        "total_count": {
      +          "anyOf": [
      +            {
      +              "type": "integer"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "truncated": {
      +          "type": "boolean"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "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"
      +    },
      +    "results": {
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "complete": {
      +            "type": "boolean"
      +          },
      +          "data": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": true,
      +                "properties": {},
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "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"
      +              }
      +            ]
      +          },
      +          "ok": {
      +            "type": "boolean"
      +          },
      +          "poll_after_ms": {
      +            "anyOf": [
      +              {
      +                "type": "integer"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "query_contract": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": true,
      +                "properties": {},
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "scope": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": true,
      +                "properties": {},
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "scope_index": {
      +            "type": "integer"
      +          },
      +          "status": {
      +            "type": "string"
      +          },
      +          "task_ref": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "retryable": {
      +      "type": "boolean"
      +    },
      +    "schema_version": {
      +      "type": "integer"
      +    },
      +    "status": {
      +      "type": "string"
      +    },
      +    "support_ref": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / connection_context
      Added value: +{
      +  "pattern": "^mctx_v1_[0-9a-f]{64}$",
      +  "type": "string"
      +}
  3. First observed

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already establish that this is a read-only, non-destructive, closed-world operation. The description adds useful behavioral context beyond annotations: ledger-only semantics, cursor binding to the exact Google ledger generation and page size, and an explicit warning against Meta min_as_of.

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

Conciseness4/5

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

The description is dense but front-loaded, leading with the canonical read purpose and required invocation pattern. Several phrases are terse and jargon-heavy, but most sentences carry relevant operational constraints without unnecessary repetition.

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

Completeness2/5

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

This is a complex 16-parameter batch query tool with almost no schema parameter documentation. The output schema exists, so return values need not be described, but the description does not provide enough semantics for the many optional parameters or clarify when this tool should be used instead of its Insights siblings.

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

Parameters2/5

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

Schema description coverage is only 6% across 16 parameters. The description covers the key required parameters and scope/scopes exclusivity, plus continuation, but leaves many optional parameters undocumented, including fields, page, page_size, wait_ms, consistency, response_mode, date_range_mode, connection_context, and require_complete_range.

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?

The description identifies the operation specifically as a canonical compact ledger-only Insights read, which is more than a restatement of the tool name. It does not name or distinguish itself from sibling Insights tools such as google_ads_insights_query_daily or google_ads_insights_overview_query, 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?

It gives concrete invocation rules: pass query_contract_version=1, group_by, explicit dates, and exactly one of scope or scopes. It also explains batch continuation behavior and says not to send Meta min_as_of. However, it does not say when to choose this tool over the related daily or overview Insights queries.

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