Receipt Maker
Server Details
Make a receipt from a template and download it as PDF, PNG or JPEG.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 6 tools
Each tool has a clearly distinct role: two math helpers (tax vs tip), a template lister, a logo uploader, a barcode generator, and the main receipt renderer. The only mild overlap is that make_receipt computes tax internally while calculate_sales_tax exists separately, but the descriptions make the boundary clear (one is a standalone calculator, the other is a renderer).
All names follow a verb_noun snake_case pattern (calculate_*, create_*, list_*, make_*), which is readable and predictable. The only nit is verb variety for creation-like actions (create_upload vs make_receipt vs make_barcode), but the pattern remains consistent overall.
Six tools is well-scoped for a receipt-generation service, and each one earns its place: helpers for tax/tip, discovery via list_templates, asset handling via create_upload and make_barcode, and the core make_receipt. Nothing feels redundant or padded.
The surface covers the full workflow: discover templates, upload a logo, compute tax/tip, generate barcodes, and render a receipt with a download link. Minor gaps exist (no template detail/preview endpoint, no way to inspect or clean up prior uploads/documents), but agents can work around these via list_templates and the returned URLs.
Available Tools
6 toolscalculate_sales_taxARead-onlyIdempotentInspect
Work out sales tax exactly, in whole minor units. mode "add": amount is the price before tax. mode "extract": amount already includes the tax, and the net price and the tax inside it are returned. rate is a percentage like "8.25". Money is a decimal string. Returns net, tax and gross as decimal strings rounded to the currency's decimals (default 2). Free. Make receipts only for lawful purposes, such as replacing a lost receipt, bookkeeping, testing or design mockups. Using a receipt to deceive anyone, including for refunds, expense claims or proof of purchase, is prohibited.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | add: amount is before tax. extract: amount includes tax | |
| rate | Yes | Tax rate in percent, like "8.25" | |
| amount | Yes | The price, as a decimal string like 100.00 | |
| currency | No | Only decimals matters here (0, 2 or 3); default 2 decimals |
Output Schema
| Name | Required | Description |
|---|---|---|
| net | Yes | |
| tax | Yes | |
| gross | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/no-destruction, and the description usefully adds that it is free, that rounding follows the currency's decimals (default 2), and that results are exact in minor units. The receipt-prohibition boilerplate is irrelevant to a pure calculation tool and could mislead an agent into treating this as a receipt-generating tool, which costs it a point.
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 first half is dense and front-loaded, covering mode, rate, and return shape efficiently. The final two sentences about lawful receipt uses are ~45 words of policy boilerplate unrelated to calculating tax, diluting the signal.
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 an output schema present and full annotation coverage, the description only needs to convey mode semantics and rounding, which it does. The nested currency object is only partially addressed ("Only decimals matters"), but that caveat is carried in the schema itself.
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?
Description reinforces the mode semantics beyond the enum, gives a concrete rate example ("8.25"), and notes the decimal-string money format plus the default of 2 currency decimals. Schema coverage is already 100%, so most of this is reinforcement rather than new information, but it is accurate and helpful.
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?
"Work out sales tax exactly" is a specific verb+resource that is unambiguous against siblings like calculate_tip or make_receipt. It doesn't explicitly name a sibling to route away from, but the resource is distinct enough that no further differentiation is needed.
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 add/extract distinction is spelled out with concrete conditions ("amount is the price before tax" vs "amount already includes the tax"), which tells an agent exactly which mode to pick. There is no exclusion guidance (e.g., when to prefer calculate_tip or make_receipt), and the trailing receipt-policy sentences imply usage contexts the tool does not support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_tipBRead-onlyIdempotentInspect
Work out a tip and split a bill between people, in whole cents. round "none" rounds the tip to the cent; "up-total" rounds the total up to the next whole unit; "up-each" rounds each person's share up to the next whole unit and the total becomes shares times people. Returns tip, total and per_person as decimal strings. Free. Make receipts only for lawful purposes, such as replacing a lost receipt, bookkeeping, testing or design mockups. Using a receipt to deceive anyone, including for refunds, expense claims or proof of purchase, is prohibited.
| Name | Required | Description | Default |
|---|---|---|---|
| bill | Yes | The bill before the tip, as a decimal string like 87.40 | |
| round | Yes | none: to the cent. up-total: round the total up. up-each: round each share up | |
| people | Yes | How many people share the bill | |
| percent | Yes | Tip in percent, like "18" |
Output Schema
| Name | Required | Description |
|---|---|---|
| tip | Yes | |
| total | Yes | |
| per_person | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds real behavioral detail beyond that: the exact return fields (tip, total, per_person as decimal strings), the arithmetic consequence of 'up-each' (total = shares × people), and that there is no cost. Only the receipt policy paragraph fails to contribute.
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 first two sentences are dense and front-loaded with the right information. The final paragraph about lawful receipt use is irrelevant to a tip calculator and reads as copy-paste from make_receipt, violating 'every sentence should earn 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 an output schema and full annotation coverage, the description need only explain computation semantics, which it does well. But the receipt/deception paragraph introduces a false association with receipt generation that could mislead an agent about what this tool produces.
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 earns above baseline by explaining the rounding modes in a way the schema does not: 'up-total' rounds the total up, 'up-each' rounds each share up *and* the total becomes shares times people, plus the whole-cents invariant that governs all modes.
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?
States a specific verb+resource: 'Work out a tip and split a bill between people, in whole cents.' That is unambiguous and distinguishable from make_receipt or calculate_sales_tax. However, it never names or contrasts with those siblings, and the trailing receipt-policy paragraph muddies what the tool actually produces.
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?
No guidance on when to use this versus calculate_sales_tax (also a computation tool) or make_receipt. The only usage framing is an off-topic prohibition about receipts, which does not tell an agent when to select this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_uploadAInspect
Get a one-hour signed upload URL for a logo file (PNG, JPEG or SVG, up to 2 MB; a PNG or JPEG at most 2 megapixels) that sits on disk. PUT the raw bytes to upload_url with a Content-Length header, then pass file_id as make_receipt's logo.file_id. Free. Make receipts only for lawful purposes, such as replacing a lost receipt, bookkeeping, testing or design mockups. Using a receipt to deceive anyone, including for refunds, expense claims or proof of purchase, is prohibited.
| Name | Required | Description | Default |
|---|---|---|---|
| bytes | Yes | Exact size of the file you will upload, in bytes (at most 2 MB) | |
| filename | No | Original file name |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | Yes | |
| file_id | Yes | |
| max_bytes | Yes | |
| expires_at | Yes | |
| upload_url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the generic safety profile; the description adds the substantive behavior an agent needs: the URL expires in one hour, the upload is a raw PUT with a Content-Length header, the file must already be on disk, and there are pixel/size limits. Cost ('Free') and the prohibition on deceptive use are also disclosed.
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 operational sentence is front-loaded and dense with useful detail; the policy sentence is long but carries real constraint value. Slight verbosity in the lawful-use enumeration keeps it from a 5.
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 an output schema present, return values need no explanation, and the description still covers preconditions, upload mechanics, chaining to make_receipt, limits, and cost. An agent has everything required to call it correctly.
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 would be 3, but the description adds constraints absent from the schema — the 2-megapixel cap for PNG/JPEG and the fact that the source file lives on disk. It still doesn't explicitly say that 'bytes' must match the real file size, leaving one inference.
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?
States a specific verb and resource — 'Get a one-hour signed upload URL for a logo file' — plus the accepted formats and size limits, so the agent knows exactly what the tool produces. It also links the output to make_receipt's logo.file_id, distinguishing it from its siblings.
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?
Gives an explicit downstream workflow ('PUT the raw bytes to upload_url ... then pass file_id as make_receipt's logo.file_id') and a policy boundary on lawful use. It does not name any sibling alternative or exclusion condition, but no true alternative exists among the listed tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_templatesARead-onlyIdempotentInspect
List the receipt templates make_receipt can use, each with its slug, name, category and kind (brand or generic). Filter by category, kind or a query on the name or slug. Call this first to get a slug. Free. Make receipts only for lawful purposes, such as replacing a lost receipt, bookkeeping, testing or design mockups. Using a receipt to deceive anyone, including for refunds, expense claims or proof of purchase, is prohibited.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | brand or generic templates only | |
| query | No | Words to look for in the template name or slug | |
| category | No | Only templates in this category |
Output Schema
| Name | Required | Description |
|---|---|---|
| templates | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, non-destructive and closed-world, so the safety profile is handled. The description adds genuinely non-schema information: it is free (cost), it is the prerequisite step for slug acquisition, and it carries a usage policy constraining lawful purposes. The policy is valuable context an agent cannot infer, though the return-format details are partly redundant with the 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 operative content is front-loaded in two efficient sentences ('Call this first to get a slug. Free.'). The three-sentence prohibition block is long relative to the functional payload and could be condensed, but it is policy text rather than filler.
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?
All three optional filters are documented in the schema, annotations are complete, and an output schema exists so return values need no further explanation. Nothing an agent needs to call this correctly is missing.
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% and two of three params are enums, so the schema already fully documents filtering. The description's 'Filter by category, kind or a query on the name or slug' restates the schema without adding format or edge-case guidance; baseline 3 applies.
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?
States a specific verb and resource ('List the receipt templates') and names the consuming sibling ('make_receipt can use'), plus enumerates the returned fields (slug, name, category, kind). An agent can immediately distinguish this discovery tool from make_receipt and the other siblings.
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?
'Call this first to get a slug' gives an explicit ordering constraint relative to make_receipt, which is the only real alternative an agent would consider. It also names the three filter axes, so the agent knows exactly how to narrow results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_barcodeAInspect
Make a barcode image on white, with quiet zones and the readable text under a 1-D code, and get a 24-hour download link. type is code128 (printable ASCII, up to 48 characters), ean13 (12 digits, or 13 with a check digit that must match), upca (11 digits, or 12 with a check digit that must match) or qr (up to 300 characters). format is png (default) or svg. Returns url, expires_at and text, what a reader will decode (including the check digit). Free within a daily quota counted in documents (see start.md). Make receipts only for lawful purposes, such as replacing a lost receipt, bookkeeping, testing or design mockups. Using a receipt to deceive anyone, including for refunds, expense claims or proof of purchase, is prohibited.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Barcode type | |
| value | Yes | What to encode | |
| format | No | File type of the barcode | png |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| text | Yes | |
| expires_at | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=false, and destructiveHint=false, and the description adds real value on top: a 24-hour link expiry, white background with quiet zones, human-readable text under 1-D codes, and a daily quota counted in documents. It does not explain quota limits concretely (defers to start.md) or what happens on quota exhaustion.
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?
Front-loaded with purpose, output, and constraints in a sensible order, and nearly every clause carries information. The final legal paragraph is two sentences of policy boilerplate that is defensible but makes the definition longer than strictly needed for invocation.
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?
An output schema exists, yet the description still usefully names url, expires_at, and text (decoded value including check digit). Combined with the per-type value rules and format options, an agent has everything needed to call this correctly on the first try.
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 goes well beyond the terse schema ('Barcode type', 'What to encode') by specifying per-type value rules — printable ASCII up to 48 chars, 12/13 digits with matching check digit, 11/12 for UPCA, 300 chars for QR — and the png-default/svg format choice.
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?
States a specific verb and artifact ('Make a barcode image on white, with quiet zones and the readable text under a 1-D code') plus the concrete payoff of a 24-hour download link. This clearly separates it from sibling tools like make_receipt, calculate_tip, and create_upload.
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?
Gives explicit guidance on when each barcode type applies (code128 vs ean13 vs upca vs qr) with character/digit constraints, and states a when-not-to-use boundary via the lawful-purpose prohibition. It never names a sibling alternative explicitly, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_receiptAInspect
Make a receipt file from a template, with your own items, and get a 24-hour download link. Call list_templates for a slug first. Set accept_terms to true. items is required (1 to 200): name, qty and unit_price as decimal strings like "4.50", never numbers; subtotal, tax and total are worked out for you. Every other field you leave out (store name and address, date, currency, tax, payment, discounts, extra_lines, messages, barcode) uses the template's sample value, so pass an empty array to clear discounts, extra_lines or messages. format is png (default), jpeg or pdf. An optional logo goes on top: PNG, JPEG or SVG up to 2 MB (a PNG or JPEG at most 2 megapixels, for example 1600×1250; resize a bigger one first), as file_id (from create_upload), url or data_base64; it replaces the template's logo, and header.logo "none" removes the template's logo. Returns url, expires_at, the delivered image size in pixels (for a PDF, the page at 1x), the totals as formatted strings, and notes for anything that was left out or cut. Free within a daily quota counted in documents (see start.md). Make receipts only for lawful purposes, such as replacing a lost receipt, bookkeeping, testing or design mockups. Using a receipt to deceive anyone, including for refunds, expense claims or proof of purchase, is prohibited.
| Name | Required | Description | Default |
|---|---|---|---|
| tax | No | Either a rate in percent or a fixed amount, with a label; replaces the template's tax | |
| tip | No | ||
| logo | No | A logo for the top of the receipt: exactly one of file_id, url or data_base64. PNG, JPEG or SVG, up to 2 MB (a PNG or JPEG also at most 2 megapixels, for example 1600×1250); the file's own bytes decide the type, not its name. | |
| items | Yes | What was bought: name, qty and unit_price (decimal strings; a negative price is a refund line), with optional sku and note | |
| paper | No | ||
| format | No | File type of the receipt | png |
| header | No | Seller name, address lines, alignment and logo choice; fields you leave out keep the template's | |
| barcode | No | ||
| payment | No | How it was paid; replaces the template's payment | |
| currency | No | Symbol, decimals (0, 2 or 3) and number format; fields you leave out keep the template's | |
| datetime | No | ||
| messages | No | ||
| sections | No | ||
| template | Yes | Template slug from list_templates | |
| discounts | No | ||
| date_format | No | ||
| extra_lines | No | ||
| time_format | No | ||
| accept_terms | Yes | Must be true: you agree to the acceptable-use policy in this tool's description |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| notes | Yes | |
| format | Yes | |
| totals | Yes | |
| width_px | Yes | |
| height_px | Yes | |
| expires_at | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the mutation/safety profile; the description adds the real behavioral context: a 24-hour expiring link, output format defaults, template sample values used for any omitted field, empty arrays as the way to clear discounts/extra_lines/messages, logo replacement semantics, and the daily document quota. The returned fields and the 'notes for anything left out or cut' behavior are disclosed as well.
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 core action, prerequisites and defaults are front-loaded in the first three sentences, and nearly every clause carries information. It is a single dense block that re-states some item fields already in the schema and would scan better with structure, but there is little pure filler.
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 19-parameter nested generation tool this is close to complete: prerequisites, defaults, inheritance rules, logo constraints, output summary, quota and legal policy are all covered, and the output schema can carry return shapes. Only the unexplained layout-type parameters (sections, paper) leave a minor hole.
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?
Compensates strongly for the 47% schema coverage: items requires 1-200 entries with decimal-string prices ('4.50', never numbers), subtotal/tax/total are computed, and omitted fields inherit template samples. Gaps remain — paper, sections (which looks like layout/visibility control), tip, datetime, date_format and time_format are never explained in either the schema or the description.
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?
States a specific verb and artifact: make a receipt file from a template, rendered to png/jpeg/pdf with a 24-hour download link. It is clearly distinct from the listed siblings (list_templates supplies slugs, create_upload supplies logo file_ids) without the agent needing to open any schema.
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?
Explicit ordering guidance: 'Call list_templates for a slug first', 'Set accept_terms to true', and 'resize a bigger one first' for oversized logos. It also names acceptable and prohibited use cases (lost receipt, bookkeeping, testing vs. refunds, expense claims, proof of purchase), so the agent knows when to decline.
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.
6 tool updates
- First observed
calculate_sales_tax - First observed
calculate_tip - First observed
create_upload - First observed
list_templates - First observed
make_barcode - First observed
make_receipt
Related MCP Connectors
Generate professional receipt PDFs and structured receipt data with AI-ready MCP tools.
Turn a description into a shareable, editable PDF — invoices, certificates, reports, resumes.
Make invoice, quote and receipt PDFs from a chat: totals, tax, 26 currencies. Free, nothing stored.
Create invoices, quotes, receipts and credit notes with GST or VAT, as prefilled links or PDFs.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceLets MCP clients create professional receipt PDFs, return structured receipt data, and check prepaid API credit through a remote endpoint.1MIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to synthesize print-ready vector PDFs and high-resolution PNG previews for invoices, estimates, receipts, contracts, and other business documents, with configurable themes, compliance notices, and verification seals.MIT

Dokmatiq DocGenofficial
AlicenseAqualityCmaintenancePDF/DOCX/Excel generation from HTML/Markdown with stationery overlay, ZUGFeRD/XRechnung e-invoicing, digital signing, form filling, and AI receipt OCR with DATEV/SKR03 export.40MIT- AlicenseAqualityCmaintenanceGenerate professional PDFs from Claude, Cursor, and other AI tools. Create invoices, contracts, reports, and certificates from templates or inline HTML markup.721 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.