Skip to main content
Glama

AdsAgent — Google Ads MCP

creatives_cloud_status

Read-only

Read-only status of the Google Drive cloud folders in the creative library. Lists every connected cloud folder (at most 10) with folder_name, read-only file_count, sync progress (phase listing, metadata, thumbnails, ready or failed, with counts and eta_seconds), last_synced_at, and error_code/user_message when a folder needs attention. Files in cloud folders already appear in creatives_list; you do not need this tool to read them. To connect a folder, call creatives_cloud_bind. When next_action is bind_in_browser or rebind_in_browser, give the user bind_url (https://adsagent.md/dashboard/creatives/browse), not the settings page. When no service account email is configured the error_code is cloud_service_account_unconfigured and next_action is not bind_in_browser. MCP does not report remaining quota; a download over the daily cap returns error_code cloud_daily_egress_exceeded. Supported types: image/gif, image/jpeg, image/png, image/webp, video/mp4, video/quicktime, video/webm. Maximum file size is 524288000 bytes (500 MiB). A larger file returns error_code cloud_file_too_large. Any other type returns error_code cloud_file_type_unsupported. No writes.

Input Schema

NameRequiredDescriptionDefault
connection_contextNo

Output Schema

NameRequiredDescriptionDefault
okNo
codeNo
metaNo
noteNo
countNo
errorNo
itemsNo
needsNo
totalNo
reasonNo
statusNo
foldersNo
bind_urlNo
completeNo
retryableNo
error_codeNo
invite_urlNo
cloud_countNo
next_actionNo
next_cursorNo
support_refNo
total_countNo
folder_countNo
folder_limitNo
user_messageNo
invalid_fieldsNo
library_sourceNo
rejected_pathsNo
upload_libraryNo
expires_in_daysNo
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": {
      +    "bind_url": {
      +      "type": "string"
      +    },
      +    "cloud_count": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "code": {
      +      "type": "string"
      +    },
      +    "complete": {
      +      "type": "boolean"
      +    },
      +    "count": {
      +      "type": "integer"
      +    },
      +    "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"
      +    },
      +    "expires_in_days": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "folder_count": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "folder_limit": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "folders": {
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {},
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "invalid_fields": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "invite_url": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "items": {
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "folder_path": {
      +            "type": "string"
      +          },
      +          "library_source": {
      +            "type": "string"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "read_only": {
      +            "type": "boolean"
      +          },
      +          "selection_key": {
      +            "type": "string"
      +          },
      +          "thumbnail_status": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "thumbnail_url": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "library_source": {
      +      "type": "string"
      +    },
      +    "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_cursor": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "note": {
      +      "type": "string"
      +    },
      +    "ok": {
      +      "type": "boolean"
      +    },
      +    "origin_support_ref": {
      +      "type": "string"
      +    },
      +    "reason": {
      +      "type": "string"
      +    },
      +    "rejected_paths": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "retryable": {
      +      "type": "boolean"
      +    },
      +    "status": {
      +      "type": "string"
      +    },
      +    "support_ref": {
      +      "type": "string"
      +    },
      +    "total": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "total_count": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "upload_library": {
      +      "type": "boolean"
      +    },
      +    "user_message": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  2. Added

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnlyHint/openWorldHint/destructiveHint, so the bar is lower, yet the description still adds substantial behavioral context: the 10-folder cap, sync phases, quota behavior (no quota reporting, cloud_daily_egress_exceeded on daily cap), and per-error remediation via next_action including the exact bind_url to surface. This is far beyond what the 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.

Conciseness4/5

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

Front-loaded with the core purpose and return shape before branching into error handling and limits. Mostly earns its length, though the supported MIME types and 500 MiB size cap sit slightly off-topic for a status tool and could be trimmed.

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

Completeness5/5

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

Given an output schema exists, the description needn't explain returns, yet it still sketches them usefully. For a complex, error-rich status tool it covers sync phases, next_action handling, auth/service-account state, and remediation, leaving nothing an agent needs to invoke it correctly.

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?

There is one parameter, connection_context, with 0% schema description coverage (only a regex pattern), and the description never mentions it at all, leaving its purpose entirely undocumented. The description's details about error codes and file types do not compensate for this gap in parameter meaning.

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

Purpose5/5

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

Opens with a specific verb+resource: 'Read-only status of the Google Drive cloud folders in the creative library', then enumerates the returned fields (folder_name, file_count, sync phase, last_synced_at, error_code). An agent immediately knows this is the status/inspection tool, distinct from creatives_cloud_bind and creatives_cloud_refresh.

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

Usage Guidelines5/5

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

Explicitly states when NOT to use it ('Files in cloud folders already appear in creatives_list; you do not need this tool to read them') and routes to the correct alternative for connecting ('To connect a folder, call creatives_cloud_bind'). This is exactly the when/when-not/alternative guidance the dimension rewards.

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