Skip to main content
Glama

Receipt Maker

Server Details

Make a receipt from a template and download it as PDF, PNG or JPEG.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4/5.0

Scored across 6 tools

Disambiguation4/5

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).

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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 tools
calculate_sales_taxA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
modeYesadd: amount is before tax. extract: amount includes tax
rateYesTax rate in percent, like "8.25"
amountYesThe price, as a decimal string like 100.00
currencyNoOnly decimals matters here (0, 2 or 3); default 2 decimals

Output Schema

NameRequiredDescription
netYes
taxYes
grossYes

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness3/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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_tipB
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
billYesThe bill before the tip, as a decimal string like 87.40
roundYesnone: to the cent. up-total: round the total up. up-each: round each share up
peopleYesHow many people share the bill
percentYesTip in percent, like "18"

Output Schema

NameRequiredDescription
tipYes
totalYes
per_personYes

TDQS

B3.4/5.0
Behavior4/5

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.

Conciseness3/5

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.

Completeness3/5

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.

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 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.

Purpose4/5

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.

Usage Guidelines2/5

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.

NameRequiredDescriptionDefault
bytesYesExact size of the file you will upload, in bytes (at most 2 MB)
filenameNoOriginal file name

Output Schema

NameRequiredDescription
methodYes
file_idYes
max_bytesYes
expires_atYes
upload_urlYes

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_templatesA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
kindNobrand or generic templates only
queryNoWords to look for in the template name or slug
categoryNoOnly templates in this category

Output Schema

NameRequiredDescription
templatesYes

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

NameRequiredDescriptionDefault
typeYesBarcode type
valueYesWhat to encode
formatNoFile type of the barcodepng

Output Schema

NameRequiredDescription
urlYes
textYes
expires_atYes

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters5/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 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.

Purpose5/5

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.

Usage Guidelines4/5

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.

NameRequiredDescriptionDefault
taxNoEither a rate in percent or a fixed amount, with a label; replaces the template's tax
tipNo
logoNoA 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.
itemsYesWhat was bought: name, qty and unit_price (decimal strings; a negative price is a refund line), with optional sku and note
paperNo
formatNoFile type of the receiptpng
headerNoSeller name, address lines, alignment and logo choice; fields you leave out keep the template's
barcodeNo
paymentNoHow it was paid; replaces the template's payment
currencyNoSymbol, decimals (0, 2 or 3) and number format; fields you leave out keep the template's
datetimeNo
messagesNo
sectionsNo
templateYesTemplate slug from list_templates
discountsNo
date_formatNo
extra_linesNo
time_formatNo
accept_termsYesMust be true: you agree to the acceptable-use policy in this tool's description

Output Schema

NameRequiredDescription
urlYes
notesYes
formatYes
totalsYes
width_pxYes
height_pxYes
expires_atYes

TDQS

A4.8/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

  1. 6 tool updates
    • First observedcalculate_sales_tax
    • First observedcalculate_tip
    • First observedcreate_upload
    • First observedlist_templates
    • First observedmake_barcode
    • First observedmake_receipt

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Lets MCP clients create professional receipt PDFs, return structured receipt data, and check prepaid API credit through a remote endpoint.
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables 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
  • A
    license
    A
    quality
    C
    maintenance
    Generate professional PDFs from Claude, Cursor, and other AI tools. Create invoices, contracts, reports, and certificates from templates or inline HTML markup.
    7
    21 npm
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources