Explain charges
explain_chargesReturns charges already on this account, with amounts and labels. An empty list means there is no matching charge.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| question | No |
explain_chargesReturns charges already on this account, with amounts and labels. An empty list means there is no matching charge.
| Name | Required | Description | Default |
|---|---|---|---|
| question | No |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds a genuinely useful behavioral fact beyond the annotations: an empty list means no matching charge, which tells the agent to treat emptiness as 'no match' rather than an error. It still omits pagination, result caps, and how results are derived.
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?
Two short sentences: the purpose is front-loaded and the empty-result edge case follows second. Nothing is padded or redundant.
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 one-parameter, read-only tool with no output schema, the description covers purpose and the empty-result case, which is the minimum viable set. It leaves the central mechanic unexplained, namely how the free-text 'question' is interpreted and what a returned charge record looks like.
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?
There is one parameter, 'question', with 0% schema description coverage, and the description says nothing about it at all. For a tool literally named 'explain_charges', the agent gets no hint that a natural-language question drives the lookup, nor what happens when it is omitted (the parameter is not required).
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 states a concrete verb and resource with a scope qualifier: it 'returns charges already on this account, with amounts and labels.' That distinguishes retrospective charge lookup from prospective pricing siblings like quote_call/quote_number. It does not, however, contrast itself with list_wallet_activity or the other wallet/balance readers, so sibling differentiation is only partial.
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 explicit when-to-use or when-not-to-use guidance. The phrase 'already on this account' weakly implies the tool is for past charges rather than future quotes, but the agent must infer that from the sibling names, and nothing tells it to prefer this over get_account_balance or list_wallet_activity.
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.