Skip to main content
Glama
shinypebble

microsoft-ads-mcp

by shinypebble

add_ad_schedules

Add day and time windows to control ad serving in a campaign. Each window specifies a day, start/end hours and minutes (15-min granularity). Overlapping windows on the same day are rejected.

Instructions

Add ad-schedule (dayparting) windows to a campaign.

Each window restricts serving to one day and time range and is additive (a campaign with no schedule serves all hours). Hours are 0-24; minutes are 15-minute granularity, so only 0/15/30/45 are valid (e.g. 09:15-16:45 -> from_hour 9, from_minute 15, to_hour 16, to_minute 45). Times run in the campaign time zone (see get_campaigns / get_ad_schedules) unless you pass use_searcher_time_zone=true. Read existing windows with get_ad_schedules first to avoid duplicates.

A new window for a day may NOT overlap an existing window on that same day -- the API rejects the add (returned as ok=false with a partial error, not a crash). To change or extend a window, remove_ad_schedules the old criterion first and then add the new one, in that order (adding the overlapping window first fails); or use replace_ad_schedule, which does the remove-then-add for a single window in one call.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
schedulesYesWindows to add, each {day, from_hour, from_minute, to_hour, to_minute, bid_adjustment}. day is "Monday".."Sunday"; bid_adjustment is a percent modifier (0 = no change).
campaign_idYesThe campaign id.
use_searcher_time_zoneNoIf set, also updates the campaign flag controlling whether the hours are interpreted in each searcher's time zone (true) or the campaign's (false).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okYes
idsNo
messageYes
partial_errorsNo
Behavior5/5

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

Beyond the readOnlyHint annotation (false), the description details additive behavior, granularity of minutes (0/15/30/45), time zone handling, the no-overlap rejection with ok=false partial error, and the need for ordered operations. This fully informs the agent of all behavioral traits.

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 organized into two logical paragraphs: first about schedule semantics and time, second about constraints and workaround. Each sentence adds value without redundancy. Slightly verbose but acceptable for the complexity.

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 the tool's complexity (additive windows, constraints, error behavior, and interaction with three sibling tools), the description covers all necessary aspects: granularity, time zone, duplicate prevention, overlap handling, error response format, and alternative workflows. Output schema is not provided but the description mentions the return format (ok=false). This is complete for an AI agent to use correctly.

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?

Input schema has 100% description coverage, so baseline is 3. The description adds meaning by explaining the additive nature of schedules, the 15-minute granularity, and the time zone fallback logic. It also provides practical context like reading existing windows and overlapping rules, which the schema alone does not convey.

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 clearly states 'Add ad-schedule (dayparting) windows' with a specific verb and resource. It distinguishes from siblings like remove_ad_schedules and replace_ad_schedule by naming them in the context of handling duplicates and changes.

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?

The description explicitly advises reading existing windows first with get_ad_schedules to avoid duplicates, explains the no-overlap rule, and provides step-by-step instructions for modifications: remove first then add, or use replace_ad_schedule. This gives clear when-to-use and when-not-to-use guidance.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/shinypebble/microsoft-ads-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server