List tax codes
cashctrl_list_tax_codesThe VAT tax codes (id, code, name, rates). The id is the tax_id of the write tools. GET /tax/list.json.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
cashctrl_list_tax_codesThe VAT tax codes (id, code, name, rates). The id is the tax_id of the write tools. GET /tax/list.json.
| 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?
The readOnlyHint annotation already establishes this as a safe read, so the burden on the description is lower. The description adds the concrete return fields and the cross-tool id mapping, which is useful, but says nothing about result size, caching, or whether inactive tax codes 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?
Two short sentences, front-loaded with the resource and its fields, with no filler. The trailing 'GET /tax/list.json' is implementation detail that an agent calling the MCP tool cannot act on, slightly reducing the value of the otherwise tight phrasing.
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 parameterless read-only list with no output schema, the description supplies the essential missing piece — the returned fields — plus the id's role in write flows. It omits pagination/volume expectations, but the tool is simple enough that this is a minor gap.
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?
With zero parameters, the baseline is 4, and the description does not need to explain any input. It instead documents the shape of what comes back, which is a reasonable substitute for the absent output schema.
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 names a specific resource (VAT tax codes) and even enumerates the returned fields (id, code, name, rates), which makes it easy to distinguish from siblings like list_currencies or list_accounts. The 'List' verb comes from the title rather than the description text, and no sibling is named for contrast, so it stops short of a 5.
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 id is the tax_id of the write tools' gives a real usage link — it tells the agent this tool is the lookup step preceding write tools that need a tax_id. However, there is no explicit when-to-use/when-not guidance and no naming of alternatives among the 27 siblings.
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.