byondr Receipt Maker MCP
This MCP server allows AI agents to generate realistic receipt images in PDF, PNG, or JPEG formats using a wide variety of templates for retail, food, travel, and services. It handles tax calculations and itemization, enabling agents to create receipts for bookkeeping, testing, or design mockups without requiring user accounts or data uploads.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://byondr.co/receipt-maker/mcpWhat you can do with it
- Generate a receipt for a specific store template
- Create PDF receipts for bookkeeping records
- Mock up POS screens for design testing
- Produce realistic input for expense tool testing
Source and maintenance
Protocol and capabilities
- Server
- Receipt Maker 0.1.0
- MCP protocol
- 2025-06-18
- Tools
- 6 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
6 advertised
list_templates
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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"kind": {
"enum": [
"brand",
"generic"
],
"type": "string",
"description": "brand or generic templates only"
},
"query": {
"type": "string",
"maxLength": 60,
"description": "Words to look for in the template name or slug"
},
"category": {
"enum": [
"retail",
"food",
"travel",
"services",
"finance",
"health",
"other"
],
"type": "string",
"description": "Only templates in this category"
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"templates"
],
"properties": {
"templates": {
"type": "array",
"items": {
"type": "object",
"required": [
"slug",
"name",
"category",
"kind"
],
"properties": {
"kind": {
"type": "string"
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"category": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"title": "List receipt templates",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}make_receipt
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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"template",
"accept_terms",
"items"
],
"properties": {
"tax": {
"type": "object",
"properties": {
"rate": {
"type": "string"
},
"label": {
"type": "string",
"maxLength": 120
},
"amount": {
"type": "string"
}
},
"description": "Either a rate in percent or a fixed amount, with a label; replaces the template's tax"
},
"tip": {
"type": "string"
},
"logo": {
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "Or a public https URL of the logo"
},
"file_id": {
"type": "string",
"description": "A file_id from create_upload (after the PUT)"
},
"data_base64": {
"type": "string",
"description": "Or base64 bytes of the logo, up to 2 MB decoded"
}
},
"description": "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": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"qty",
"unit_price"
],
"properties": {
"qty": {
"type": "string"
},
"sku": {
"type": "string",
"maxLength": 40
},
"name": {
"type": "string",
"maxLength": 120
},
"note": {
"type": "string",
"maxLength": 120
},
"unit_price": {
"type": "string"
}
}
},
"maxItems": 200,
"minItems": 1,
"description": "What was bought: name, qty and unit_price (decimal strings; a negative price is a refund line), with optional sku and note"
},
"paper": {
"enum": [
"thermal",
"white",
"yellow"
],
"type": "string"
},
"format": {
"enum": [
"png",
"pdf",
"jpeg"
],
"type": "string",
"default": "png",
"description": "File type of the receipt"
},
"header": {
"type": "object",
"properties": {
"logo": {
"enum": [
"none",
"template"
],
"type": "string",
"description": "none removes the template's built-in logo; template keeps it"
},
"name": {
"type": "string",
"maxLength": 120
},
"align": {
"enum": [
"left",
"center",
"right"
],
"type": "string"
},
"lines": {
"type": "array",
"items": {
"type": "string",
"maxLength": 120
},
"maxItems": 6
}
},
"description": "Seller name, address lines, alignment and logo choice; fields you leave out keep the template's"
},
"barcode": {
"type": "object",
"required": [
"type",
"value"
],
"properties": {
"type": {
"enum": [
"code128",
"ean13",
"upca",
"qr"
],
"type": "string"
},
"value": {
"type": "string",
"maxLength": 500,
"minLength": 1
}
}
},
"payment": {
"type": "object",
"required": [
"method"
],
"properties": {
"label": {
"type": "string",
"maxLength": 60
},
"method": {
"enum": [
"cash",
"card",
"other"
],
"type": "string"
},
"tendered": {
"type": "string"
},
"auth_code": {
"type": "string",
"maxLength": 40
},
"card_brand": {
"type": "string",
"maxLength": 30
},
"card_last4": {
"type": "string",
"pattern": "^\\d{4}$"
},
"transaction_id": {
"type": "string",
"maxLength": 60
}
},
"description": "How it was paid; replaces the template's payment"
},
"currency": {
"type": "object",
"properties": {
"symbol": {
"type": "string",
"maxLength": 5,
"minLength": 1
},
"decimal": {
"enum": [
".",
","
],
"type": "string"
},
"decimals": {
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"const": 2
},
{
"type": "number",
"const": 3
}
]
},
"position": {
"enum": [
"before",
"after"
],
"type": "string"
},
"thousands": {
"enum": [
",",
".",
" ",
""
],
"type": "string"
}
},
"description": "Symbol, decimals (0, 2 or 3) and number format; fields you leave out keep the template's"
},
"datetime": {
"type": "string"
},
"messages": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 12
},
"sections": {
"type": "array",
"items": {
"enum": [
"header",
"meta",
"items",
"totals",
"payment",
"barcode",
"messages"
],
"type": "string"
},
"maxItems": 28
},
"template": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Template slug from list_templates"
},
"discounts": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"amount"
],
"properties": {
"label": {
"type": "string",
"maxLength": 120
},
"amount": {
"type": "string"
}
}
},
"maxItems": 20
},
"date_format": {
"enum": [
"MM/DD/YYYY",
"DD/MM/YYYY",
"YYYY-MM-DD",
"DD.MM.YYYY"
],
"type": "string"
},
"extra_lines": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"value"
],
"properties": {
"label": {
"type": "string",
"maxLength": 60
},
"value": {
"type": "string",
"maxLength": 120
}
}
},
"maxItems": 12
},
"time_format": {
"enum": [
"12h",
"24h"
],
"type": "string"
},
"accept_terms": {
"type": "boolean",
"const": true,
"description": "Must be true: you agree to the acceptable-use policy in this tool's description"
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"url",
"expires_at",
"format",
"width_px",
"height_px",
"totals",
"notes"
],
"properties": {
"url": {
"type": "string"
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
},
"format": {
"enum": [
"png",
"pdf",
"jpeg"
],
"type": "string"
},
"totals": {
"type": "object",
"required": [
"subtotal",
"discount",
"tax",
"tip",
"total",
"change"
],
"properties": {
"tax": {
"type": "string"
},
"tip": {
"type": "string"
},
"total": {
"type": "string"
},
"change": {
"type": [
"string",
"null"
]
},
"discount": {
"type": "string"
},
"subtotal": {
"type": "string"
}
},
"additionalProperties": false
},
"width_px": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"height_px": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"expires_at": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Make a receipt",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}make_barcode
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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"type",
"value"
],
"properties": {
"type": {
"enum": [
"code128",
"ean13",
"upca",
"qr"
],
"type": "string",
"description": "Barcode type"
},
"value": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "What to encode"
},
"format": {
"enum": [
"png",
"svg"
],
"type": "string",
"default": "png",
"description": "File type of the barcode"
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"url",
"expires_at",
"text"
],
"properties": {
"url": {
"type": "string"
},
"text": {
"type": "string"
},
"expires_at": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Make a barcode",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}calculate_sales_tax
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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"amount",
"rate",
"mode"
],
"properties": {
"mode": {
"enum": [
"add",
"extract"
],
"type": "string",
"description": "add: amount is before tax. extract: amount includes tax"
},
"rate": {
"type": "string",
"pattern": "^\\d{1,12}(\\.\\d{1,4})?$",
"description": "Tax rate in percent, like \"8.25\""
},
"amount": {
"type": "string",
"pattern": "^\\d{1,12}(\\.\\d{1,4})?$",
"description": "The price, as a decimal string like 100.00"
},
"currency": {
"type": "object",
"required": [
"symbol",
"decimals",
"position",
"thousands",
"decimal"
],
"properties": {
"symbol": {
"type": "string",
"maxLength": 5,
"minLength": 1
},
"decimal": {
"enum": [
".",
","
],
"type": "string"
},
"decimals": {
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"const": 2
},
{
"type": "number",
"const": 3
}
]
},
"position": {
"enum": [
"before",
"after"
],
"type": "string"
},
"thousands": {
"enum": [
",",
".",
" ",
""
],
"type": "string"
}
},
"description": "Only decimals matters here (0, 2 or 3); default 2 decimals"
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"net",
"tax",
"gross"
],
"properties": {
"net": {
"type": "string"
},
"tax": {
"type": "string"
},
"gross": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Calculate sales tax",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}calculate_tip
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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"bill",
"percent",
"people",
"round"
],
"properties": {
"bill": {
"type": "string",
"pattern": "^\\d{1,12}(\\.\\d{1,4})?$",
"description": "The bill before the tip, as a decimal string like 87.40"
},
"round": {
"enum": [
"none",
"up-total",
"up-each"
],
"type": "string",
"description": "none: to the cent. up-total: round the total up. up-each: round each share up"
},
"people": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "How many people share the bill"
},
"percent": {
"type": "string",
"pattern": "^\\d{1,12}(\\.\\d{1,4})?$",
"description": "Tip in percent, like \"18\""
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"tip",
"total",
"per_person"
],
"properties": {
"tip": {
"type": "string"
},
"total": {
"type": "string"
},
"per_person": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Calculate a tip",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}create_upload
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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"bytes"
],
"properties": {
"bytes": {
"type": "integer",
"maximum": 2097152,
"minimum": 1,
"description": "Exact size of the file you will upload, in bytes (at most 2 MB)"
},
"filename": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Original file name"
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"file_id",
"upload_url",
"method",
"expires_at",
"max_bytes"
],
"properties": {
"method": {
"type": "string",
"const": "PUT"
},
"file_id": {
"type": "string"
},
"max_bytes": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
"expires_at": {
"type": "string"
},
"upload_url": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Create upload URL",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1717 ms
- 95th percentile latency
- 1717 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1717 ms · metadata changed · 6 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http byondr-receipt-maker-mcp https://byondr.co/receipt-maker/mcpCodex
codex mcp add byondr-receipt-maker-mcp --url https://byondr.co/receipt-maker/mcpCursor
{
"mcpServers": {
"byondr-receipt-maker-mcp": {
"url": "https://byondr.co/receipt-maker/mcp"
}
}
}Cline
{
"mcpServers": {
"byondr-receipt-maker-mcp": {
"type": "streamableHttp",
"url": "https://byondr.co/receipt-maker/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"byondr-receipt-maker-mcp": {
"type": "http",
"url": "https://byondr.co/receipt-maker/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http byondr-receipt-maker-mcp https://byondr.co/receipt-maker/mcpClaude Desktop
{
"mcpServers": {
"byondr-receipt-maker-mcp": {
"url": "https://byondr.co/receipt-maker/mcp"
}
}
}Windsurf
{
"mcpServers": {
"byondr-receipt-maker-mcp": {
"serverUrl": "https://byondr.co/receipt-maker/mcp"
}
}
}Let your agent find its tools
Find servers like byondr Receipt Maker MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other productivity and knowledge servers
Do you run byondr Receipt Maker MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.