Server definition
- Hash
- sha256:bfc5cc77e896ea858a7c585cfd4e095233cf7ce083f45a3b85497c0ed49930c7
- What it is
- What a remote MCP server returned when asked what it offers: 4 tools
The blob, as servednamed by its sha256
{
"instructions": "Free AI invoice generator: make an invoice from chat and download the PDF, no account needed.\nAll money is integer minor units (cents): 12.50 USD is 1250. Dates are YYYY-MM-DD.\nUse draft_invoice: it prices the invoice and returns a builderUrl. Draft straight away with what the user gave, then give them the link: it opens the invoice filled in, ready to download as a PDF. In one short line, offer to fill in what's missing, usually their business name and address (from), a due date and a line-item description.\nFor \"invoice ABC $100\": billTo.name \"ABC\", one item with unitPrice 10000.\nUse list_invoice_templates to discover examples, prepare_invoice_template to start one, and render_invoice_pdf to generate a PDF directly when all required fields are known. PDF output supports Western European text and no logos; use the browser builder for other scripts or logos. Never invent names, dates or payment facts. Nothing is stored or emailed.",
"tools": [
{
"description": "Price an invoice (subtotal, tax after discount, shipping, total) and get a builderUrl that opens the free AI Invoice Generator builder prefilled. The human can download a PDF there, or connect Stripe to get a pay link that accepts partial payments. Nothing is stored or sent.",
"inputSchema": {
"properties": {
"allowPartial": {
"description": "Let the payer pay part of the balance now",
"type": "boolean"
},
"billTo": {
"description": "The customer. name is required; email is prefilled at checkout.",
"properties": {
"address": {
"description": "Multi-line postal address",
"maxLength": 500,
"type": "string"
},
"email": {
"format": "email",
"type": "string"
},
"name": {
"maxLength": 200,
"type": "string"
}
},
"type": "object"
},
"currency": {
"default": "usd",
"enum": [
"usd",
"cad",
"eur",
"gbp",
"aud",
"nzd"
],
"type": "string"
},
"discount": {
"description": "Minor units, taken off the subtotal",
"minimum": 0,
"type": "integer"
},
"dueDate": {
"description": "YYYY-MM-DD. The invoice reads overdue the day after.",
"format": "date",
"type": "string"
},
"from": {
"description": "The business sending the invoice. On create, leave it out to use the connected Stripe business's name and email.",
"properties": {
"address": {
"description": "Multi-line postal address",
"maxLength": 500,
"type": "string"
},
"email": {
"format": "email",
"type": "string"
},
"name": {
"maxLength": 200,
"type": "string"
}
},
"type": "object"
},
"issueDate": {
"description": "YYYY-MM-DD",
"format": "date",
"type": "string"
},
"items": {
"items": {
"properties": {
"description": {
"maxLength": 500,
"type": "string"
},
"quantity": {
"description": "May be fractional, e.g. 1.5 hours",
"minimum": 0,
"type": "number"
},
"unitPrice": {
"description": "Minor units (cents)",
"minimum": 0,
"type": "integer"
}
},
"required": [
"description",
"quantity",
"unitPrice"
],
"type": "object"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
},
"minPayment": {
"description": "Smallest partial payment in minor units (e.g. a deposit). The full balance is always payable.",
"minimum": 0,
"type": "integer"
},
"notes": {
"maxLength": 2000,
"type": "string"
},
"number": {
"description": "Your invoice number, e.g. INV-1042",
"maxLength": 40,
"type": "string"
},
"shipTo": {
"description": "Optional shipping address",
"properties": {
"address": {
"description": "Multi-line postal address",
"maxLength": 500,
"type": "string"
},
"email": {
"format": "email",
"type": "string"
},
"name": {
"maxLength": 200,
"type": "string"
}
},
"type": "object"
},
"shipping": {
"description": "Minor units, added after tax",
"minimum": 0,
"type": "integer"
},
"taxRate": {
"description": "Percent. Applied after discount, not to shipping.",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"terms": {
"maxLength": 2000,
"type": "string"
}
},
"required": [
"items"
],
"type": "object"
},
"name": "draft_invoice",
"outputSchema": null
},
{
"description": "List five editable sample invoices: hourly consulting, retainers, milestones, contractor labor/materials and deposit requests. Example rates in USD cents, not pricing advice. No account needed.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_invoice_templates",
"outputSchema": null
},
{
"description": "Select a template by ID and add sender, customer and dates. Returns invoice JSON, calculated totals and an editable builderUrl. Example amounts need review. Nothing stored or sent.",
"inputSchema": {
"properties": {
"billTo": {
"description": "The customer. name is required; email is prefilled at checkout.",
"properties": {
"address": {
"description": "Multi-line postal address",
"maxLength": 500,
"type": "string"
},
"email": {
"format": "email",
"type": "string"
},
"name": {
"maxLength": 200,
"type": "string"
}
},
"type": "object"
},
"dueDate": {
"description": "YYYY-MM-DD. The invoice reads overdue the day after.",
"format": "date",
"type": "string"
},
"from": {
"description": "The business sending the invoice.",
"properties": {
"address": {
"description": "Multi-line postal address",
"maxLength": 500,
"type": "string"
},
"email": {
"format": "email",
"type": "string"
},
"name": {
"maxLength": 200,
"type": "string"
}
},
"type": "object"
},
"issueDate": {
"description": "YYYY-MM-DD",
"format": "date",
"type": "string"
},
"number": {
"description": "Your invoice number, e.g. INV-1042",
"maxLength": 40,
"type": "string"
},
"templateId": {
"enum": [
"consulting_hourly",
"consulting_retainer",
"consulting_milestone",
"contractor_labor",
"contractor_deposit"
],
"type": "string"
}
},
"required": [
"templateId"
],
"type": "object"
},
"name": "prepare_invoice_template",
"outputSchema": null
},
{
"description": "Generate a downloadable PDF artifact without a browser, account or storage. Requires sender/customer names, invoice number, dates and complete line items. Western European text only; unsupported characters or logos return an explicit error, use the web builder for those. Does not send invoices or process payments.",
"inputSchema": {
"description": "Direct PDF input. Western European (Windows-1252) text only, no logos, no payment ledger. Unknown text is rejected, never silently replaced.",
"properties": {
"billTo": {
"description": "The customer. name is required; email is prefilled at checkout.",
"properties": {
"address": {
"description": "Multi-line postal address",
"maxLength": 500,
"type": "string"
},
"email": {
"format": "email",
"type": "string"
},
"name": {
"maxLength": 200,
"type": "string"
}
},
"type": "object"
},
"currency": {
"default": "usd",
"enum": [
"usd",
"cad",
"eur",
"gbp",
"aud",
"nzd"
],
"type": "string"
},
"discount": {
"description": "Minor units, taken off the subtotal",
"minimum": 0,
"type": "integer"
},
"dueDate": {
"description": "YYYY-MM-DD. The invoice reads overdue the day after.",
"format": "date",
"type": "string"
},
"from": {
"description": "The business sending the invoice.",
"properties": {
"address": {
"description": "Multi-line postal address",
"maxLength": 500,
"type": "string"
},
"email": {
"format": "email",
"type": "string"
},
"name": {
"maxLength": 200,
"type": "string"
}
},
"type": "object"
},
"issueDate": {
"description": "YYYY-MM-DD",
"format": "date",
"type": "string"
},
"items": {
"items": {
"properties": {
"description": {
"maxLength": 500,
"type": "string"
},
"quantity": {
"description": "May be fractional, e.g. 1.5 hours",
"minimum": 0,
"type": "number"
},
"unitPrice": {
"description": "Minor units (cents)",
"minimum": 0,
"type": "integer"
}
},
"required": [
"description",
"quantity",
"unitPrice"
],
"type": "object"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
},
"notes": {
"maxLength": 2000,
"type": "string"
},
"number": {
"description": "Your invoice number, e.g. INV-1042",
"maxLength": 40,
"type": "string"
},
"shipTo": {
"description": "Optional shipping address",
"properties": {
"address": {
"description": "Multi-line postal address",
"maxLength": 500,
"type": "string"
},
"email": {
"format": "email",
"type": "string"
},
"name": {
"maxLength": 200,
"type": "string"
}
},
"type": "object"
},
"shipping": {
"description": "Minor units, added after tax",
"minimum": 0,
"type": "integer"
},
"taxRate": {
"description": "Percent. Applied after discount, not to shipping.",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"terms": {
"maxLength": 2000,
"type": "string"
}
},
"required": [
"from",
"billTo",
"number",
"issueDate",
"dueDate",
"items"
],
"type": "object"
},
"name": "render_invoice_pdf",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:bfc5cc77e896ea858a7c585cfd4e095233cf7ce083f45a3b85497c0ed49930c7 | sha256sum