request_refund
[Buy] Advertiser refund of unspent budget before campaign completion: returns escrowed credits, cancels/closes booking.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| campaignId | Yes |
[Buy] Advertiser refund of unspent budget before campaign completion: returns escrowed credits, cancels/closes booking.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| campaignId | Yes |
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key side effects ('returns escrowed credits, cancels/closes booking') and a temporal constraint ('before campaign completion'). However, it lacks details on reversibility, failure conditions, or what happens if the campaign is already completed, which are important for a refund operation.
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?
The description is a single, dense sentence that front-loads the primary action and includes the key context and side effects. No filler words; every element contributes to understanding. The unusual '[Buy]' prefix is a minor label but does not detract from conciseness.
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?
Given the lack of annotations and output schema, the description provides a reasonable overview but is not fully complete. It covers the action, timing, and side effects, but does not explain return values, prerequisites, or edge cases (e.g., partial refunds, minimum refundable amount). For a financial operation, more context would be expected.
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%, so the description must compensate. It does not explicitly explain the parameters, though 'campaignId' is self-explanatory and 'reason' is generic. The description adds no detail about the expected format, the purpose of 'reason', or how the refund amount is determined, leaving the agent to infer from the schema alone.
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?
The description clearly states the tool's purpose with a specific verb ('refund') and resource ('advertiser refund of unspent budget'), and it distinguishes from siblings by specifying the timing ('before campaign completion') and the effects ('returns escrowed credits, cancels/closes booking'). This is a clear, non-tautological statement.
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?
The description implies a usage condition ('before campaign completion') and the action (refunding unspent budget), but it does not explicitly mention when not to use this tool or offer alternatives (e.g., request_cashout). There is no direct comparison to sibling tools, although the context suggests a specific scenario.
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.
Multiple tools have overlapping or misleading purposes: buy_campaign and buy_placement are aliases of create_campaign, list_placement actually creates a placement, and get_attribution/get_campaign both provide campaign stats. The report_* tools are distinct but similarly named, increasing selection risk.
Most tools follow a verb_noun snake_case pattern, but there are notable deviations: buy_campaign/buy_placement use 'buy' instead of 'create', list_placement is a creator not a lister, and simple nouns like 'wallet' and 'whoami' break the convention.
At 31 tools, the server feels heavy. Several tools are redundant aliases (buy_campaign, buy_placement) or could be consolidated (multiple report_* and list_* variants), making the surface unnecessarily large for the ad marketplace domain.
The core lifecycle is covered: campaign/placement creation, delivery, reporting, attribution, refunds, and cashouts. However, there are gaps like no update_campaign, no true list_placements, and no get_placement, leaving some workflows incomplete.