Microsoft Ads
list_microsoft_adsLists the ads in a Microsoft ad group.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | ||
| ad_group_id | Yes | ||
| customer_id | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
list_microsoft_adsLists the ads in a Microsoft ad group.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | ||
| ad_group_id | Yes | ||
| customer_id | No |
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered structurally. The description adds only the ad-group nesting context and discloses nothing about pagination, result limits, or whether inactive/paused ads are included.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the resource and scope front-loaded and no filler. It is not under-specified in structure, though its brevity is partly the cause of the semantic gaps.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no explanation, but with three undocumented parameters at 0% schema coverage the definition is not complete enough for an agent to reliably supply account_id and customer_id. A read-only list tool of this shape needs at least identifier-hierarchy guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across all three parameters, so the description carries the full explanatory burden but only alludes to the ad group. It says nothing about account_id, or how customer_id relates to account_id in the Microsoft Ads hierarchy, which is the most likely source of invocation error.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource (lists ads) and scopes it to a Microsoft ad group, which separates it from platform-level siblings. It does not explicitly distinguish itself from list_meta_ads or list_tiktok_ads, but the platform plus container scope makes the target unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus alternatives (e.g. get_ad_details for a single ad, or list_microsoft_ad_groups for the parent level), and no prerequisites stated. The only usable hint is the implicit need for an ad group context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.