Receipt Maker
Make a receipt from a template and download it as PDF, PNG or JPEG.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"receipt-maker": {
"url": "https://byondr.co/receipt-maker/mcp"
}
}
}远程端点
https://byondr.co/receipt-maker/mcpstreamable-http它能做什么
工具清单
工具(6)
🟢list_templates(category, kind, query)
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",
"properties": {
"category": {
"description": "Only templates in this category",
"type": "string",
"enum": [
"retail",
"food",
"travel",
"services",
"finance",
"health",
"other"
]
},
"kind": {
"description": "brand or generic templates only",
"type": "string",
"enum": [
"brand",
"generic"
]
},
"query": {
"description": "Words to look for in the template name or slug",
"type": "string",
"maxLength": 60
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}输出模式
{
"type": "object",
"properties": {
"templates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"category": {
"type": "string"
},
"kind": {
"type": "string"
}
},
"required": [
"slug",
"name",
"category",
"kind"
],
"additionalProperties": false
}
}
},
"required": [
"templates"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🔴make_receipt(template, accept_terms, format, logo, items, ...)
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",
"properties": {
"template": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "Template slug from list_templates"
},
"accept_terms": {
"type": "boolean",
"const": true,
"description": "Must be true: you agree to the acceptable-use policy in this tool's description"
},
"format": {
"default": "png",
"description": "File type of the receipt",
"type": "string",
"enum": [
"png",
"pdf",
"jpeg"
]
},
"logo": {
"type": "object",
"properties": {
"file_id": {
"description": "A file_id from create_upload (after the PUT)",
"type": "string"
},
"url": {
"description": "Or a public https URL of the logo",
"type": "string",
"format": "uri"
},
"data_base64": {
"description": "Or base64 bytes of the logo, up to 2 MB decoded",
"type": "string"
}
},
"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": {
"minItems": 1,
"maxItems": 200,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 120
},
"qty": {
"type": "string"
},
"unit_price": {
"type": "string"
},
"sku": {
"type": "string",
"maxLength": 40
},
"note": {
"type": "string",
"maxLength": 120
}
},
"required": [
"name",
"qty",
"unit_price"
]
},
"description": "What was bought: name, qty and unit_price (decimal strings; a negative price is a refund line), with optional sku and note"
},
"header": {
"description": "Seller name, address lines, alignment and logo choice; fields you leave out keep the template's",
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 120
},
"lines": {
"maxItems": 6,
"type": "array",
"items": {
"type": "string",
"maxLength": 120
}
},
"align": {
"type": "string",
"enum": [
"left",
"center",
"right"
]
},
"logo": {
"type": "string",
"enum": [
"none",
"template"
],
"description": "none removes the template's built-in logo; template keeps it"
}
}
},
"currency": {
"description": "Symbol, decimals (0, 2 or 3) and number format; fields you leave out keep the template's",
"type": "object",
"properties": {
"symbol": {
"type": "string",
"minLength": 1,
"maxLength": 5
},
"decimals": {
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"const": 2
},
{
"type": "number",
"const": 3
}
]
},
"position": {
"type": "string",
"enum": [
"before",
"after"
]
},
"thousands": {
"type": "string",
"enum": [
",",
".",
" ",
""
]
},
"decimal": {
"type": "string",
"enum": [
".",
","
]
}
}
},
"tax": {
"description": "Either a rate in percent or a fixed amount, with a label; replaces the template's tax",
"type": "object",
"properties": {
"rate": {
"type": "string"
},
"amount": {
"type": "string"
},
"label": {
"type": "string",
"maxLength": 120
}
}
},
"payment": {
"description": "How it was paid; replaces the template's payment",
"type": "object",
"properties": {
"method": {
"type": "string",
"enum": [
"cash",
"card",
"other"
]
},
"label": {
"type": "string",
"maxLength": 60
},
"card_brand": {
"type": "string",
"maxLength": 30
},
"card_last4": {
"type": "string",
"pattern": "^\\d{4}$"
},
"tendered": {
"type": "string"
},
"auth_code": {
"type": "string",
"maxLength": 40
},
"transaction_id": {
"type": "string",
"maxLength": 60
}
},
"required": [
"method"
]
},
"datetime": {
"type": "string"
},
"date_format": {
"type": "string",
"enum": [
"MM/DD/YYYY",
"DD/MM/YYYY",
"YYYY-MM-DD",
"DD.MM.YYYY"
]
},
"time_format": {
"type": "string",
"enum": [
"12h",
"24h"
]
},
"discounts": {
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 120
},
"amount": {
"type": "string"
}
},
"required": [
"label",
"amount"
]
}
},
"tip": {
"type": "string"
},
"barcode": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"code128",
"ean13",
"upca",
"qr"
]
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 500
}
},
"required": [
"type",
"value"
]
},
"messages": {
"maxItems": 12,
"type": "array",
"items": {
"type": "string",
"maxLength": 200
}
},
"extra_lines": {
"maxItems": 12,
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 60
},
"value": {
"type": "string",
"maxLength": 120
}
},
"required": [
"label",
"value"
]
}
},
"sections": {
"maxItems": 28,
"type": "array",
"items": {
"type": "string",
"enum": [
"header",
"meta",
"items",
"totals",
"payment",
"barcode",
"messages"
]
}
},
"paper": {
"type": "string",
"enum": [
"thermal",
"white",
"yellow"
]
}
},
"required": [
"template",
"accept_terms",
"items"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}输出模式
{
"type": "object",
"properties": {
"url": {
"type": "string"
},
"expires_at": {
"type": "string"
},
"format": {
"type": "string",
"enum": [
"png",
"pdf",
"jpeg"
]
},
"width_px": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"height_px": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"totals": {
"type": "object",
"properties": {
"subtotal": {
"type": "string"
},
"discount": {
"type": "string"
},
"tax": {
"type": "string"
},
"tip": {
"type": "string"
},
"total": {
"type": "string"
},
"change": {
"type": [
"string",
"null"
]
}
},
"required": [
"subtotal",
"discount",
"tax",
"tip",
"total",
"change"
],
"additionalProperties": false
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"url",
"expires_at",
"format",
"width_px",
"height_px",
"totals",
"notes"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢make_barcode(type, value, format)
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",
"properties": {
"type": {
"type": "string",
"enum": [
"code128",
"ean13",
"upca",
"qr"
],
"description": "Barcode type"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "What to encode"
},
"format": {
"default": "png",
"description": "File type of the barcode",
"type": "string",
"enum": [
"png",
"svg"
]
}
},
"required": [
"type",
"value"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}输出模式
{
"type": "object",
"properties": {
"url": {
"type": "string"
},
"expires_at": {
"type": "string"
},
"text": {
"type": "string"
}
},
"required": [
"url",
"expires_at",
"text"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢calculate_sales_tax(amount, rate, mode, currency)
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",
"properties": {
"amount": {
"type": "string",
"pattern": "^\\d{1,12}(\\.\\d{1,4})?$",
"description": "The price, as a decimal string like 100.00"
},
"rate": {
"type": "string",
"pattern": "^\\d{1,12}(\\.\\d{1,4})?$",
"description": "Tax rate in percent, like \"8.25\""
},
"mode": {
"type": "string",
"enum": [
"add",
"extract"
],
"description": "add: amount is before tax. extract: amount includes tax"
},
"currency": {
"description": "Only decimals matters here (0, 2 or 3); default 2 decimals",
"type": "object",
"properties": {
"symbol": {
"type": "string",
"minLength": 1,
"maxLength": 5
},
"decimals": {
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"const": 2
},
{
"type": "number",
"const": 3
}
]
},
"position": {
"type": "string",
"enum": [
"before",
"after"
]
},
"thousands": {
"type": "string",
"enum": [
",",
".",
" ",
""
]
},
"decimal": {
"type": "string",
"enum": [
".",
","
]
}
},
"required": [
"symbol",
"decimals",
"position",
"thousands",
"decimal"
]
}
},
"required": [
"amount",
"rate",
"mode"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}输出模式
{
"type": "object",
"properties": {
"net": {
"type": "string"
},
"tax": {
"type": "string"
},
"gross": {
"type": "string"
}
},
"required": [
"net",
"tax",
"gross"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢calculate_tip(bill, percent, people, round)
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",
"properties": {
"bill": {
"type": "string",
"pattern": "^\\d{1,12}(\\.\\d{1,4})?$",
"description": "The bill before the tip, as a decimal string like 87.40"
},
"percent": {
"type": "string",
"pattern": "^\\d{1,12}(\\.\\d{1,4})?$",
"description": "Tip in percent, like \"18\""
},
"people": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"description": "How many people share the bill"
},
"round": {
"type": "string",
"enum": [
"none",
"up-total",
"up-each"
],
"description": "none: to the cent. up-total: round the total up. up-each: round each share up"
}
},
"required": [
"bill",
"percent",
"people",
"round"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}输出模式
{
"type": "object",
"properties": {
"tip": {
"type": "string"
},
"total": {
"type": "string"
},
"per_person": {
"type": "string"
}
},
"required": [
"tip",
"total",
"per_person"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟡create_upload(bytes, filename)
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",
"properties": {
"bytes": {
"type": "integer",
"minimum": 1,
"maximum": 2097152,
"description": "Exact size of the file you will upload, in bytes (at most 2 MB)"
},
"filename": {
"description": "Original file name",
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"bytes"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}输出模式
{
"type": "object",
"properties": {
"file_id": {
"type": "string"
},
"upload_url": {
"type": "string"
},
"method": {
"type": "string",
"const": "PUT"
},
"expires_at": {
"type": "string"
},
"max_bytes": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"file_id",
"upload_url",
"method",
"expires_at",
"max_bytes"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}社区
证据