Skip to main content
Glama

FreeDailyPro Book Publishing Tools

publishing_print_royalty

Read-onlyIdempotent

Print cost and royalty calculator

Input Schema

NameRequiredDescriptionDefault
pagesYesPage count, 1 to 2000.
methodYesrate: you earn percent of the list price. wholesale: percent is the discount given to retailers and you earn the rest.
percentYesThe royalty rate (method rate) or the retailer discount (method wholesale), 0 to 100.
listPriceYesThe list (cover) price per copy, 0 or more. At 0 nothing is earned, so the royalty is the printing cost as a loss.
fixedChargeYesFixed printing charge per copy, in your currency (0 or more).
upfrontCostNoOne-off cost (editing, cover, ISBN), 0 or more. When given, copiesToRecoverUpfront is how many copies earn it back; null when each copy earns nothing.
perPageChargeYesPrinting charge per page, in the same currency (0 or more). Printing cost per copy = fixedCharge + perPageCharge x pages.
targetRoyaltyNoThe royalty per copy you want to earn, 0 or more. When given, priceForTargetRoyalty is the lowest list price (to the cent) that earns it; null when the royalty share is 0.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changed
    • changedInput schema / properties / fixedCharge / description
      Previous value: -"Fixed printing charge per copy"New value: +"Fixed printing charge per copy, in your currency (0 or more)."
    • addedInput schema / properties / listPrice / description
      Added value: +"The list (cover) price per copy, 0 or more. At 0 nothing is earned, so the royalty is the printing cost as a loss."
    • removedInput schema / properties / listPrice / exclusiveMinimum
      Removed value: -0
    • addedInput schema / properties / listPrice / minimum
      Added value: +0
    • changedInput schema / properties / method / description
      Previous value: -"rate: royalty percent of list price; wholesale: discount given to retailers"New value: +"rate: you earn percent of the list price. wholesale: percent is the discount given to retailers and you earn the rest."
    • addedInput schema / properties / pages / description
      Added value: +"Page count, 1 to 2000."
    • changedInput schema / properties / perPageCharge / description
      Previous value: -"Charge per page"New value: +"Printing charge per page, in the same currency (0 or more). Printing cost per copy = fixedCharge + perPageCharge x pages."
    • addedInput schema / properties / percent / description
      Added value: +"The royalty rate (method rate) or the retailer discount (method wholesale), 0 to 100."
    • addedInput schema / properties / targetRoyalty / description
      Added value: +"The royalty per copy you want to earn, 0 or more. When given, priceForTargetRoyalty is the lowest list price (to the cent) that earns it; null when the royalty share is 0."
    • addedInput schema / properties / targetRoyalty / minimum
      Added value: +0
    • addedInput schema / properties / upfrontCost / description
      Added value: +"One-off cost (editing, cover, ISBN), 0 or more. When given, copiesToRecoverUpfront is how many copies earn it back; null when each copy earns nothing."
  2. First observed

TDQS

C2.5/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world, so the safety profile is covered. The description adds nothing beyond that — no mention that this is a pure offline computation over supplied rates, no indication of what the result contains (per-copy print cost, royalty, copies-to-recover, price-for-target) despite there being 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.

Conciseness3/5

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

Five words with no padding, so nothing needs trimming, but the extreme terseness is under-specification rather than concision. There is no front-loaded statement of what is returned or how inputs drive it.

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

Completeness2/5

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

With 8 parameters (6 required), a mode-switching enum, and no output schema, the description should clarify the computation and the shape of the result. It does neither, leaving the agent to reverse-engineer the tool's behavior from the schema alone.

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

Parameters3/5

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

Schema description coverage is 100% and the property descriptions are unusually rich: the rate/wholesale enum meaning, the printing-cost formula, and the null conditions for the derived fields are all documented in the schema. The description contributes no additional parameter meaning, so the baseline 3 applies.

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

Purpose3/5

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

"Print cost and royalty calculator" names the domain resource and the two computed quantities (cost, royalty), which is enough to guess it is a pure calculation tool. But it is a noun phrase with no verb and no differentiation from the publishing siblings (isbn, onix, spine_width), leaving the agent to infer the actual operation.

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

Usage Guidelines2/5

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

No statement of when to use this tool, when not to, or how it relates to any sibling. The agent gets no routing signal beyond the word "calculator".

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.

Resources