Skip to main content
Glama
FlatbuzhZubumafu

Google Ads MCP Server

Set Ad Schedule

set_ad_schedule

Define ad schedule criteria for a Google Ads campaign to control which days and hours ads run. Include every desired window; once any entry exists, ads run only during scheduled times.

Instructions

Adds ad schedule criteria to a campaign (which days/hours ads run).

A campaign with no ad schedule runs 24/7. Once any schedule entries exist, ads run ONLY during the scheduled windows — so include every window you want covered. Hours are in the account's time zone.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
scheduleYesEntries like {"day": "MONDAY", "start_hour": 8, "end_hour": 18}. day is MONDAY..SUNDAY; hours are 0-24.
campaign_idYesThe campaign to schedule.
customer_idYesThe Google Ads account.
validate_onlyNoIf True, only validates the request.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.2

TDQS

A4.1/5.0
Behavior4/5

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

Annotations only supply destructiveHint=false, so the description carries most of the burden. It discloses the critical replacement gotcha (include every window you want covered) and the account time-zone assumption, which an agent would otherwise get wrong. It does not cover auth requirements or response behavior, keeping it short of 5.

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?

Three short sentences with zero filler. Purpose is front-loaded, then the two behavioral caveats that matter most. Every sentence earns its place.

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?

For a mutation tool with an output schema present (no need to explain returns) and only a destructiveHint annotation, the description supplies the semantics that matter most: full-window coverage and time zone. Adequate, though it could note interaction with remove_campaign_criterion or validate_only's role.

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

Parameters4/5

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

Schema coverage is 100%, so both the schedule entry shape and validate_only are already documented; baseline would be 3. The description adds genuinely new information not in the schema: hours are interpreted in the account's time zone.

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 ('Adds ad schedule criteria to a campaign') and parenthetically clarifies what an ad schedule is (which days/hours ads run). Clear enough to distinguish from siblings like remove_campaign_criterion, though it never names an alternative tool explicitly.

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?

Provides meaningful operational context: a campaign with no schedule runs 24/7, and once entries exist ads run ONLY in the listed windows. This tells the agent exactly when and how to use it. It stops short of naming sibling alternatives for removing or listing criteria.

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