Penny Rounding
Server Details
Round cash totals to the nearest nickel correctly — after tax, on the total, cash only.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
3 toolsprice_bandWhich nearby list prices settle to the same cash totalARead-onlyInspect
For a list price and a tax rate, find every nearby list price that settles to the SAME cash total, and the highest one.
Use this for "what price should I charge" and "can I price to gain from rounding" questions. There is exactly one free move here and it is easy to get backwards, so do not reason about it unaided:
Rounding collapses a band of five consecutive list prices onto one nickel. At 0% tax, $19.98 through $20.02 all settle to $20.00 in cash. Within that band the cash collected is IDENTICAL, so the highest price in it is strictly better — same from cash customers, up to 4 cents more from every card customer. That is genuinely free.
The move that looks clever and is not: pricing BELOW a nickel so rounding "adds" a couple of cents. You collect the same cash and less on card. The rounding delta is not revenue. Do not recommend it.
Input: listPrice as a dollar string, taxRatePercent, and optionally spreadCents (1-50, default 5) for how far either side to look.
Returns: the whole band, the highest price in it, the free gain in cents (never more than 4), and a verdict. Tell the user the size of the number. Four cents is not a pricing strategy.
| Name | Required | Description | Default |
|---|---|---|---|
| rule | No | symmetric (default) is the Common Cents Act and Canadian method. always-down is Indiana's rule for cash payments of TAX, not a retail rule. always-up is not law anywhere for retail and is here only to quantify it. none is what a card gets. | |
| listPrice | Yes | A STRING is read as dollars ("19.99"); a NUMBER is read as integer CENTS (1999). A non-integer number is refused rather than guessed at. | |
| spreadCents | No | How far either side to look, 1-50. Default 5, which is one whole band. | |
| taxRatePercent | No | Percentage, e.g. 8.25 — not 0.0825. Supply it whenever it is known: rounding happens after tax, so the rate decides which nickel the total lands on. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide readOnlyHint and openWorldHint, and the description adds substantial behavioral detail: the exact rounding band behavior, the 'free gain' concept, the warning that rounding delta is not revenue, and the advisory to tell users that four cents is not a pricing strategy. This goes well beyond the annotations.
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 front-loaded with the core purpose, followed by usage guidance, a key pitfall warning, input recap, and return summary. Though somewhat long, every sentence earns its place by preventing misinterpretation of a genuinely tricky pricing concept.
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?
With no output schema, the description explicitly lists the returns: the whole band, highest price, free gain in cents, and a verdict. It also explains the rounding mechanics, tax interaction, and the one free move, making the tool self-contained for an agent despite the domain 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 coverage is 100%, so the baseline is 3, but the description adds meaningful semantics: spreadCents is clarified as 'for how far either side to look' with a 1-50 range and default 5, and taxRatePercent's role is contextualized. It does omit the optional 'rule' parameter, but the schema fully documents it.
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 opens with a precise verb and resource: 'find every nearby list price that settles to the SAME cash total, and the highest one.' It clearly distinguishes this from simple rounding tools by focusing on the band of identical cash totals and the optimization opportunity.
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 explicitly tells the agent when to use the tool: for 'what price should I charge' and 'can I price to gain from rounding' questions. It also warns against a common mistaken approach, though it does not explicitly name sibling tools as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
round_cash_totalRound a cash total the way the post-penny rules actually workARead-onlyInspect
Settle a transaction under post-penny cash rounding: exact subtotal, tax on the exact subtotal, then round the final total to the nearest nickel — and only for cash.
Use this for any "what does X round to" or "what do I owe in cash" question. Four things are wrong in most explanations of this, and each one changes the answer:
CASH ONLY. Card, EFT, and gift-card payments are still priced to the cent. The same basket legitimately comes to two different amounts by tender. If asked about a card payment, do not round.
THE TOTAL, NOT EACH ITEM. Rounding per item multiplies the effect by the basket size. Five items at $0.99 total $4.95 — already a nickel, no rounding — where per-item rounding would collect $5.00.
AFTER TAX. Tax is computed on the exact subtotal and the rounding comes last. Rounding the base first changes the tax owed.
THE DIGIT DECIDES. 1, 2, 6, 7 round down; 3, 4, 8, 9 round up; 0 and 5 stand. Do not reason about "nearest" from scratch, and do not assume rounding is always up.
Input: pass subtotal as a dollar string ("19.99") or items as a list. A NUMERIC amount is read as CENTS and a STRING as dollars — 1999 and "19.99" are the same amount, 19.99 as a number is refused. Pass taxRatePercent as a percentage (8.25, not 0.0825); rounding depends on it, so omitting it usually gives the wrong nickel. tender is cash or card, default cash. rule is symmetric (default), always-down, always-up, or none.
Returns: the exact subtotal, tax, exact total, the rounded amount due, the signed delta, which digit decided it, warnings, and a disclaimer field.
THIS IS NOT LEGAL OR TAX ADVICE. There was no federal rounding law as of September 2026 and state law varies. Do not tell a user what their jurisdiction requires — report the arithmetic and the caveats.
| Name | Required | Description | Default |
|---|---|---|---|
| rule | No | symmetric (default) is the Common Cents Act and Canadian method. always-down is Indiana's rule for cash payments of TAX, not a retail rule. always-up is not law anywhere for retail and is here only to quantify it. none is what a card gets. | |
| items | No | Line items, totalled in exact cents. Rounding applies to the TOTAL only. | |
| tender | No | Default cash. A card is NEVER rounded — if the user is paying by card, the exact total is the answer and any rounding rule is ignored. | |
| subtotal | No | The pre-tax subtotal. Use this or `items`. | |
| taxRatePercent | No | Percentage, e.g. 8.25 — not 0.0825. Supply it whenever it is known: rounding happens after tax, so the rate decides which nickel the total lands on. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the readOnlyHint and openWorldHint annotations. It discloses that rounding applies only to cash, only to the total, only after tax, and only according to the trailing digit; it also warns that omitting taxRatePercent usually gives the wrong nickel and that the tool reports arithmetic, not legal requirements. This is rich behavioral context that prevents serious misuse.
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 long but appropriately so given the tool's edge cases. It is front-loaded with the core algorithm, uses bullets to isolate the four failure modes, and every remaining section — input format, return values, and legal caveat — earns its place.
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?
With no output schema present, the description still enumerates the return fields: exact subtotal, tax, exact total, rounded amount due, signed delta, deciding digit, warnings, and disclaimer. Combined with the detailed parameter semantics and the cash/card rule, the description gives an agent everything needed to invoke the tool correctly and frame the result safely.
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?
Although the schema already documents all parameters, the description adds crucial semantics: numbers are read as cents, strings as dollars, non-integer numbers are refused, taxRatePercent is a percentage like 8.25 rather than 0.0825, and tender defaults to cash. The rule parameter is also tied to legal meanings, which materially reduces incorrect invocation.
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 first sentence states a specific operation — settle a transaction under post-penny cash rounding — and gives the exact algorithm: exact subtotal, tax on subtotal, then round the final total to the nearest nickel for cash only. The cash-only emphasis and the four common-misconception bullets clearly distinguish it from related pricing or rounding-analysis tools.
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 is explicit about when to use it: 'Use this for any "what does X round to" or "what do I owe in cash" question' and when not to apply rounding: card, EFT, and gift-card payments should not be rounded. It does not explicitly name price_band or rounding_impact as alternatives, so it stops just short of full sibling-tool routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rounding_impactWhat cash rounding is actually worth across a price listARead-onlyInspect
Compute what cash rounding is actually worth across a list of prices: mean delta per transaction, the up/down/unchanged split, and a per-thousand figure.
Use this whenever someone asks whether rounding costs or earns money — a very common question and one usually answered with a guess. Do not guess. Symmetric rounding nets to EXACTLY zero over evenly spread totals, because that is what it was designed to do. Real price lists all end in .99 and are not evenly spread, so the true figure is small but not always zero and it moves with the tax rate. This computes it for the actual prices given.
Input: prices is a list of dollar strings or integer cents. taxRatePercent matters, because tax decides which nickel each total lands on. rule defaults to symmetric; pass always-up to quantify what the "just round everything up" idea would be worth (about 2 cents a sale, and no jurisdiction has adopted it for retail).
Returns: mean and total delta in cents, the split, a per-thousand transaction figure, a per-price breakdown, and a plain-language verdict. Report the verdict — the size of the number is the answer.
| Name | Required | Description | Default |
|---|---|---|---|
| rule | No | symmetric (default) is the Common Cents Act and Canadian method. always-down is Indiana's rule for cash payments of TAX, not a retail rule. always-up is not law anywhere for retail and is here only to quantify it. none is what a card gets. | |
| prices | Yes | The prices actually charged. | |
| taxRatePercent | No | Percentage, e.g. 8.25 — not 0.0825. Supply it whenever it is known: rounding happens after tax, so the rate decides which nickel the total lands on. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses important behavioral truths: symmetric rounding nets to exactly zero over evenly spread totals, real .99 price lists make the result small but nonzero, the tax rate changes the landed nickel, and always-up is provided only for quantification. It also explains what to report back, which is especially valuable because there is no output schema.
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 well-structured and front-loaded with the core computation and outputs. It is longer than strictly necessary, with some rhetorical flourishes like 'Do not guess' and 'no jurisdiction has adopted it for retail,' but most sentences carry meaningful context about behavior, inputs, or return values.
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 moderately complex tool with no output schema, the description is remarkably complete: it explains when to use it, why the results behave the way they do, how each input works, what the return values are, and how to present the answer. An agent has enough context to invoke this tool correctly and interpret its result.
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 100%, so the schema already thoroughly documents prices, taxRatePercent, and rule. The description adds little beyond repeating that taxRatePercent matters and rule defaults to symmetric; these facts are already present in the schema. This is the baseline 3 case where the schema carries the parameter-semantics burden.
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 a specific verb ('Compute') and resource ('what cash rounding is actually worth across a list of prices'), and immediately lists the concrete outputs: mean delta, up/down/unchanged split, and per-thousand figure. This clearly distinguishes it from siblings like round_cash_total, which is about rounding a single cash total, by emphasizing aggregate analysis across a price list.
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 explicitly says 'Use this whenever someone asks whether rounding costs or earns money' and warns against guessing. It provides strong contextual guidance for when the tool is appropriate, but it does not explicitly name when-not-to-use it or point to an alternative sibling such as round_cash_total for single-transaction rounding.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
- First observed
price_band - First observed
round_cash_total - First observed
rounding_impact
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Set invoice rounding guidance
Calculate sales tax & VAT, record transactions and refunds, manage products and customers.
Processor fees, charge-to-net, invoice totals and proration. 3 of 6 tools free.
Related MCP Servers
AlicenseNot gradedqualityFmaintenanceEnables MCP tool developers and AI agents to track payments, calculate sales tax liability, and ensure tax compliance across US jurisdictions.MIT- AlicenseBqualityCmaintenance39 tax tools for US individual taxpayers — federal/state tax calculations, credits, deductions, retirement strategies, audit risk, and tax planning. All calculations run locally, no data leaves the machine. Supports TY2024 and TY2025 (One Big Beautiful Bill Act).4345412MIT
- AlicenseNot gradedqualityBmaintenanceEnables interactive recipe costing and menu-item pricing with deterministic math, including waste and margin calculations, and distinguishes whether figures came from the calculator or the model.MIT
- AlicenseAqualityBmaintenanceProvides real tax calculations for US, Canada, Australia, and UK income, property, and dividend taxes using up-to-date local data with no API keys required.745MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool has a clearly distinct purpose: price_band finds optimal list prices within a rounding band, round_cash_total computes the exact cash amount for a single transaction, and rounding_impact aggregates rounding effects across many prices. There is no meaningful overlap or ambiguity between them.
All names use snake_case and are readable, but they do not follow a single grammatical pattern: price_band is a noun phrase, round_cash_total is verb-object, and rounding_impact is a gerund-noun phrase. This is a mixed convention rather than a predictable verb_noun scheme.
Three tools is well-scoped for this narrow domain. Each tool earns its place by covering a distinct need: single-transaction rounding, pricing decisions, and aggregate impact analysis.
The set covers the full practical surface of cash rounding arithmetic: computing a rounded total, optimizing a list price within a rounding band, and measuring aggregate rounding impact over a price list. Supporting options like tender type, tax rate, and rounding rule are included where needed.