Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,528Letters: 13Defects: 1,322counted 3 min ago
teppi

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 yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:bfc5cc77e896ea858a7c585cfd4e095233cf7ce083f45a3b85497c0ed49930c7 | sha256sum