Cancel an inquiry or promise
cancel_inquiryWithdraw an inquiry you sent that is still open or offered, or cancel a promise you accepted.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| inquiry_id | Yes |
cancel_inquiryWithdraw an inquiry you sent that is still open or offered, or cancel a promise you accepted.
| Name | Required | Description | Default |
|---|---|---|---|
| inquiry_id | Yes |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description aligns with the annotations (destructiveHint=true, idempotentHint=true) by framing the operation as a withdrawal/cancellation. It adds useful precondition context about which inquiries and promises can be cancelled, but with annotations already covering safety and idempotency, it does not disclose further behavioral details such as permissions, side effects, or what happens on repeated cancellation.
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, front-loaded sentence with no wasted wording. It efficiently communicates the action and the conditions for use.
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?
For a simple tool with rich annotations, the description covers the purpose and preconditions, but it leaves the key parameter ambiguous: how to cancel a promise when only inquiry_id exists. That gap is significant enough to limit completeness despite the tool's otherwise low complexity.
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, but it does not explain the sole parameter inquiry_id. It also creates ambiguity: the tool can cancel a 'promise', yet the only parameter is inquiry_id, and the description does not explain how a promise is identified or whether the same ID applies.
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 uses specific verbs (withdraw, cancel) and resources (inquiry, promise), and it distinguishes inquiry cancellation by stating the inquiry must be one the caller sent and still open or offered. It is clear, but it does not explicitly differentiate this from the sibling cancel_lease tool, which could matter given the overlapping idea of cancelling a 'promise'.
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?
It gives clear state-based usage conditions: the inquiry must be one you sent and still open or offered, and the promise must be one you accepted. It does not state when not to use it or point to the cancel_lease alternative, so it stops short of full routing guidance.
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.