Koskamo

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.

byondr Receipt Maker MCP logo, by byondrVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by byondr
MCP endpoint (Streamable HTTP)
https://byondr.co/receipt-maker/mcp
Vendor documentation

What 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

Vendor evidenceRegistry 0.1.0

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
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

byondr Receipt Maker. Call list_templates for a template slug, then make_receipt with the template, items (name, qty and unit_price as decimal strings) and accept_terms: true. Anything you leave out uses the template's sample, so pass an empty array to clear discounts or messages. A logo goes in as file_id (from create_upload), a public https url or base64, up to 2 MB and, for a PNG or JPEG, 2 megapixels (for example 1600×1250). make_barcode returns a PNG or SVG. Download links expire after 24 hours. 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. If a call asks for payment (HTTP 402 or an x402 payment request), ask the user before paying.

Tools

6 advertised

list_templates
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

list_templates input schema
{
  "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"
    }
  }
}
list_templates output schema
{
  "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
}
list_templates annotations
{
  "title": "List receipt templates",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
make_receipt
Advertised by the server during the last successful anonymous check.
Open-world

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.

make_receipt input schema
{
  "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"
    }
  }
}
make_receipt output schema
{
  "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
}
make_receipt annotations
{
  "title": "Make a receipt",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
make_barcode
Advertised by the server during the last successful anonymous check.

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.

make_barcode input schema
{
  "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"
    }
  }
}
make_barcode output schema
{
  "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
}
make_barcode annotations
{
  "title": "Make a barcode",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
calculate_sales_tax
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

calculate_sales_tax input schema
{
  "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"
    }
  }
}
calculate_sales_tax output schema
{
  "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
}
calculate_sales_tax annotations
{
  "title": "Calculate sales tax",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
calculate_tip
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

calculate_tip input schema
{
  "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\""
    }
  }
}
calculate_tip output schema
{
  "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
}
calculate_tip annotations
{
  "title": "Calculate a tip",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_upload
Advertised by the server during the last successful anonymous check.

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.

create_upload input schema
{
  "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"
    }
  }
}
create_upload output schema
{
  "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
}
create_upload annotations
{
  "title": "Create upload URL",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

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.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http byondr-receipt-maker-mcp https://byondr.co/receipt-maker/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add byondr-receipt-maker-mcp --url https://byondr.co/receipt-maker/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable byondr-receipt-maker-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "byondr-receipt-maker-mcp": {
      "url": "https://byondr.co/receipt-maker/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "byondr-receipt-maker-mcp": {
      "type": "streamableHttp",
      "url": "https://byondr.co/receipt-maker/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start byondr-receipt-maker-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "byondr-receipt-maker-mcp": {
      "type": "http",
      "url": "https://byondr.co/receipt-maker/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http byondr-receipt-maker-mcp https://byondr.co/receipt-maker/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "byondr-receipt-maker-mcp": {
      "url": "https://byondr.co/receipt-maker/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "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.

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.

Claim this listing