delete_expense
Remove a recorded expense. Irreversible.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| expense_id | Yes |
Remove a recorded expense. Irreversible.
| Name | Required | Description | Default |
|---|---|---|---|
| expense_id | Yes |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive (destructiveHint: true) and not read-only (readOnlyHint: false). The description adds the specific detail that the action is 'Irreversible', which is a behavioral trait beyond the general destructive hint. This warns the agent that deletion cannot be undone, providing valuable context for decision-making.
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 extremely concise at two short sentences: 'Remove a recorded expense. Irreversible.' It states the core action first, then adds a critical warning. Every word earns its place, with no fluff or redundancy.
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 one parameter and no output schema, the description covers the essential information: what it does and that it is irreversible. It does not mention what happens if the expense does not exist, permission requirements, or side effects, but these are not strictly necessary for calling the tool correctly. The minimal nature of the tool makes this adequate, though it could have mentioned the parameter explicitly.
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?
The input schema has a single required parameter, expense_id (string), but schema description coverage is 0%. The description does not explain what expense_id is or how to obtain it. Since the description must compensate for the lack of schema documentation, and it provides no parameter guidance, this is a significant gap. The parameter name is self-explanatory, but the description adds no value in explaining its semantics or usage.
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 action: 'Remove a recorded expense.' It identifies the resource (expense) and the operation (remove/delete), distinguishing it from sibling tools like create_expense, update_expense, and list_expenses. The verb 'Remove' is specific and 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?
The description implicitly communicates when to use this tool (when an expense needs to be permanently deleted). It includes the explicit warning 'Irreversible', which conveys that this is a permanent action and not to be used for temporary changes. While there is no explicit mention of alternatives, the tool's name and sibling set make its purpose clear. It provides enough context without needing exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.