Skip to main content
Glama

AdsAgent — Google Ads MCP

google_ads_asset_inventory_list

Read-only

Read the last complete stored creative inventory, with freshness, filters and snapshot-bound pagination. Missing sync is unknown, not empty; never pulls Google live. Use only returned continuation with the same customer and filters.

Input Schema

NameRequiredDescriptionDefault
sortNo
searchNo
page_sizeNo
asset_typeNo
customer_idYes10-digit Google Ads customer id.
continuationNo
connection_contextNo

Output Schema

NameRequiredDescriptionDefault
okNo
codeNo
metaNo
errorNo
itemsNo
needsNo
assetsNo
reasonNo
sourceNo
retryableNo
error_codeNo
next_actionNo
support_refNo
invalid_fieldsNo
rejected_pathsNo
next_continuationNo
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": {
      +    "assets": {
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {},
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "code": {
      +      "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"
      +    },
      +    "items": {
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {},
      +        "type": "object"
      +      },
      +      "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"
      +        }
      +      ]
      +    },
      +    "next_continuation": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "ok": {
      +      "type": "boolean"
      +    },
      +    "origin_support_ref": {
      +      "type": "string"
      +    },
      +    "reason": {
      +      "type": "string"
      +    },
      +    "rejected_paths": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "retryable": {
      +      "type": "boolean"
      +    },
      +    "source": {
      +      "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. Added

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare a safe, closed-world read, but the description adds genuinely new behavior: staleness semantics (missing sync != empty), a hard guarantee it never hits Google live, and a snapshot-consistency constraint on continuation tokens. It also mentions freshness metadata being returned. It does not explain what fields the snapshot contains or how partial syncs appear, but given the output schema that is a minor omission.

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?

Three short sentences, front-loaded with the core purpose and followed by the two things an agent would otherwise get wrong (empty-vs-unsynced, continuation reuse). No filler. Slightly telegraphic phrasing ("with freshness, filters and snapshot-bound pagination") compresses three distinct facts into one clause at some cost to readability.

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

Completeness3/5

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

An output schema exists, so return values need not be described, and the safety profile is annotation-covered. What remains missing for a 7-parameter tool is the distinction from google_ads_assets_list and creatives_list_cloud, plus the meaning of connection_context and the accepted asset_type vocabulary — an agent has enough to call it, but not enough to choose it confidently over its nearest sibling.

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?

Schema coverage is only 14% (just customer_id documented), so the description must compensate. It does partially: it clarifies that filters exist, that pagination is snapshot-bound, and that continuation must be paired with the same customer and filters. It says nothing about sort's four enum values, asset_type values, search matching behavior, or the connection_context token pattern, leaving several parameters opaque.

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 and resource: read the last complete *stored* creative inventory, explicitly contrasted with a live Google pull. An agent immediately knows this is a cached-snapshot listing rather than a live query. It stops short of naming its closest sibling (google_ads_assets_list), so the boundary against that tool must be inferred.

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

Usage Guidelines4/5

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

"Missing sync is unknown, not empty; never pulls Google live" is an explicit when/when-not signal that steers an agent away from expecting live data and toward interpreting empty results as unsynced. "Use only returned continuation with the same customer and filters" gives concrete pagination conditions. The only gap is that no sibling alternative is named for the live-asset case.

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