Skip to main content
Glama

AdsAgent — Google Ads MCP

creatives_cloud_bind

Start connecting a Google Drive folder as a read-only cloud folder in the creative library. Returns a one-time authorization link (invite_url) that expires in 7 days. Give it to the user: they open it themselves or send it to the designer who owns the folder, share the folder as a viewer with the service account the page shows, and confirm with Google. Nothing is connected until that person finishes. An account can have at most 10 cloud folders; at the limit this returns error_code cloud_folder_limit_reached. Once connected, the folder's files appear in creatives_list automatically; check progress with creatives_cloud_status. Cloud folders are read-only here: files cannot be uploaded, renamed, moved or deleted through AdsAgent. Creates one AdsAgent link; no Google changes.

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.3/5.0
Behavior4/5

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

With only readOnlyHint=false, destructiveHint=false, and openWorldHint=false in the annotations, the description adds substantial context: the 7-day invite_url expiry, the 10-folder account cap with the specific error_code cloud_folder_limit_reached, the read-only constraint on connected folders (no upload, rename, move, delete), and the clarifying note 'Creates one AdsAgent link; no Google changes.'

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 operational constraint and return value (the one-time invite link) are front-loaded, and every subsequent sentence adds new information about limits, errors, or follow-up. It runs long, but there is little redundancy -- the closing 'no Google changes' clause is the only part that feels like repetition.

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?

This is a complex multi-party setup flow, and the description covers the handoff to the human, the expiry window, the quota ceiling with its error code, the read-only guarantee, and the sibling tool for progress checks. An output schema exists, so return-value detail is appropriately omitted.

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 0%, so the description should compensate but never mentions connection_context at all. The single parameter is an opaque token with a strict regex pattern, and the description offers no clue about where the value comes from or whether the agent should pass it through verbatim.

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?

The description opens with a specific verb and resource -- 'Start connecting a Google Drive folder as a read-only cloud folder in the creative library' -- and implicitly separates itself from creatives_cloud_refresh, creatives_cloud_status, and creatives_list by naming what each of those does in the connection flow. An agent can distinguish this as the entry point of a multi-step flow without opening a schema.

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?

It gives explicit follow-through instructions (deliver invite_url to the user or the folder owner, share as viewer with the shown service account, then confirm with Google) and names creatives_cloud_status as the tool for checking progress once connected. It also states the precondition clearly: 'Nothing is connected until that person finishes.'

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