Skip to main content
Glama

Final POS – Custom POS Builder

Create tax rate

hub_create_tax_rate

Create a named tax rate ("State Sales Tax", "GST") with its percentage, and optionally put it straight into a tax group. Check get_taxes first: if a rate with this meaning already exists, add_tax_rate_to_group reuses it, which is almost always what the merchant wants — duplicating a rate means the next change has to be made twice and one of them gets forgotten. Give either percentage (the same at every outlet) or perOutlet (different per store) — never both, and never neither, since a rate with no percentage charges nothing. Without taxGroupId the rate exists but is charged nowhere. CONFIRM THE EXACT PERCENTAGE WITH THE MERCHANT before calling — do not infer it from suggest_tax_rate or from what is usual in that region. Sales already rung up are NOT recalculated — this only affects sales from now on.

Input Schema

NameRequiredDescriptionDefault
nameYesWhat appears on the receipt, e.g. "GST", "State Sales Tax"
perOutletNoOutlet-specific percentages, using outlet ids from get_taxes. REPLACES the stored list whole — an outlet you leave out stops charging this rate
percentageNoOne percentage for every outlet, e.g. 13 for 13%
taxGroupIdNoTax group id from get_taxes to add it to right away
compoundingNoOnly with taxGroupId: charge on the running total including the rates above it. Default false

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=false and destructiveHint=false; the description goes well beyond that. It discloses that a rate with no taxGroupId is charged nowhere, that percentage and perOutlet are mutually exclusive (never both, never neither, or it charges nothing), that perOutlet replaces the stored list whole, and that past sales are not recalculated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first clause, and each subsequent sentence carries a distinct, non-redundant constraint (reuse alternative, percentage/perOutlet exclusivity, taxGroupId effect, merchant confirmation, no retroactive recalculation). Length is justified by the number of real behavioral constraints, with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-param mutation tool with no output schema, the description covers the decision context and side effects thoroughly. The only minor gap is it does not indicate what the call returns (e.g. the new rate id needed for later group operations), which the absence of an output schema leaves to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning beyond the schema: the percentage/perOutlet exclusivity rule and its consequence ('a rate with no percentage charges nothing'), plus that compounding only applies with taxGroupId. It does not restate syntax the schema already gives.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (create a named tax rate with a percentage) and explicitly distinguishes itself from sibling flows by naming get_taxes, add_tax_rate_to_group, and suggest_tax_rate. An agent can tell exactly what this does versus reuse or suggestion tools without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use ('Check get_taxes first') and when-to-prefer-an-alternative ('add_tax_rate_to_group reuses it, which is almost always what the merchant wants'), with the reasoning (duplication means double maintenance). It also states a hard precondition: confirm the exact percentage with the merchant, not infer from suggest_tax_rate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.