Server definition
- Hash
- sha256:0790820443d1c0b69a0808e6eabcb0ae5f47f395c4f662fa27d1d5b662735909
- What it is
- What a remote MCP server returned when asked what it offers: 12 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"description": "Turn Pro on for this connection with key, an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"key": {
"description": "License key from checkout, MCPL1.<payload>.<signature>",
"type": "string"
}
},
"required": [
"key"
],
"type": "object"
},
"name": "license_activate",
"outputSchema": null
},
{
"description": "Report this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "license_status",
"outputSchema": null
},
{
"description": "Mark a quote accepted and turn it into an invoice: created directly in the invoice server when its store is present, otherwise returned as invoice_create-ready line items. The numbers are copied, never recomputed.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"allow_expired": {
"description": "Accept a quote whose validity has run out. Default false: an expired quote is refused so the price is re-confirmed first",
"type": "boolean"
},
"create_invoice": {
"description": "Default \"auto\": create the invoice when the invoice store exists, otherwise hand back the items. \"never\" only marks it accepted",
"enum": [
"auto",
"always",
"never"
],
"type": "string"
},
"due_days": {
"description": "Days until the invoice is due, defaults to your payment terms",
"maximum": 3650,
"minimum": 0,
"type": "integer"
},
"id": {
"description": "Quote id such as Q-2026-0001",
"type": "string"
},
"issue_date": {
"description": "YYYY-MM-DD for the invoice, defaults to today",
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "quote_accept",
"outputSchema": null
},
{
"description": "Store a quote for client from items and return its Q number, VAT and totals. unit_price is in MAJOR units; currency, VAT and issuer come from the shared profile. A duplicate of an open quote is refused. Free: 5 open.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"client": {
"description": "Client name or id. A name the invoice server already knows brings its address, email and VAT id onto the quote",
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"client_address": {
"description": "Postal address for the QUOTE FOR block, newlines allowed",
"maxLength": 2000,
"type": "string"
},
"client_email": {
"description": "Only if the user gave it; otherwise the stored client's email is used",
"maxLength": 320,
"type": "string"
},
"client_vat_id": {
"description": "Client VAT / tax registration id",
"maxLength": 64,
"type": "string"
},
"currency": {
"description": "Defaults to your business default currency",
"pattern": "^[A-Za-z]{3}$",
"type": "string"
},
"discount_percent": {
"description": "Discount applied to every line, in percent",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"issue_date": {
"description": "YYYY-MM-DD, defaults to today in your business profile's timezone",
"type": "string"
},
"items": {
"description": "The line items being quoted",
"items": {
"additionalProperties": false,
"properties": {
"currency": {
"description": "Only to state the line's currency; every line on one quote must agree",
"pattern": "^[A-Za-z]{3}$",
"type": "string"
},
"description": {
"description": "every line needs a description, 500 characters or fewer",
"maxLength": 500,
"minLength": 1,
"type": "string"
},
"quantity": {
"description": "Hours or units, must be greater than zero",
"exclusiveMinimum": 0,
"maximum": 1000000000000,
"minimum": -1000000000000,
"type": "number"
},
"tax_rate": {
"description": "VAT percent for this line, overrides the business default",
"maximum": 1000,
"minimum": 0,
"type": "number"
},
"unit_price_minor": {
"description": "Price per unit in MINOR units: 9000 = 90.00 EUR, 90 = JPY 90. Never a decimal",
"maximum": 1000000000000,
"minimum": 0,
"type": "integer"
}
},
"required": [
"description",
"quantity",
"unit_price_minor"
],
"type": "object"
},
"maxItems": 200,
"minItems": 1,
"type": "array"
},
"notes": {
"description": "Free text printed under the totals, e.g. scope or exclusions. 10000 characters or fewer",
"maxLength": 10000,
"type": "string"
},
"tax_rate": {
"description": "VAT percent for lines with no rate of their own. Defaults to the business default",
"maximum": 1000,
"minimum": 0,
"type": "number"
},
"valid_until": {
"description": "YYYY-MM-DD, an explicit last valid day. Wins over validity_days",
"type": "string"
},
"validity_days": {
"description": "Days the quote stays valid, counted from the quote date and inclusive. Default 30",
"maximum": 3650,
"minimum": 1,
"type": "integer"
}
},
"required": [
"client",
"items"
],
"type": "object"
},
"name": "quote_create",
"outputSchema": null
},
{
"description": "Mark a quote lost, with a reason kept on the record, freeing a free-tier open slot and counting in the win rate. An accepted quote is refused, naming the invoice it became. Free on every tier.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"date": {
"description": "YYYY-MM-DD, defaults to today",
"type": "string"
},
"id": {
"description": "Quote id such as Q-2026-0001",
"type": "string"
},
"reason": {
"description": "Why it was lost, e.g. \"price\" or \"went in-house\". Kept on the record",
"maxLength": 10000,
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "quote_decline",
"outputSchema": null
},
{
"description": "Delete a draft quote that was never sent, accepted, invoiced or exported, and give its free open-quote slot back. A quote with any of those is refused with the dependent named. The id is never reissued.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"id": {
"description": "Quote id such as Q-2026-0001",
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "quote_delete",
"outputSchema": null
},
{
"description": "Return one quote in full by Q number or exact client name: lines with unit price and VAT, totals, dates, the state today with days left, notes, and the invoice it became once accepted. Reads only.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"id": {
"description": "Quote id such as Q-2026-0001, or an exact client name",
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "quote_get",
"outputSchema": null
},
{
"description": "List quotes newest first: id, client, dates, state, days left while open, currency, total and the invoice number once accepted. State is read against today, so a lapsed quote shows as expired.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"client": {
"description": "Only quotes for clients whose name contains this text",
"type": "string"
},
"from": {
"description": "YYYY-MM-DD, earliest quote date",
"type": "string"
},
"state": {
"description": "Default \"all\". \"open\" excludes quotes whose validity has run out; \"expired\" is only those",
"enum": [
"open",
"expired",
"accepted",
"declined",
"all"
],
"type": "string"
},
"to": {
"description": "YYYY-MM-DD, latest quote date",
"type": "string"
}
},
"type": "object"
},
"name": "quote_list",
"outputSchema": null
},
{
"description": "Call this tool to render one quote as an A4 print-ready document and return a download link valid for one hour: the invoice layout with the validity date and an acceptance block. Pro.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"id": {
"description": "Quote id such as Q-2026-0001",
"type": "string"
},
"out_path": {
"description": "Name for the downloaded file, e.g. acme-quote. Defaults to the quote id; the document comes back as a download link valid for one hour",
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "quote_pdf",
"outputSchema": null
},
{
"description": "Totals per currency for open, accepted, declined and expired quotes, with counts, the value still open and the win rate. Free covers the current calendar year to date; Pro reports over any date range.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"from": {
"description": "YYYY-MM-DD, earliest quote date to count",
"type": "string"
},
"to": {
"description": "YYYY-MM-DD, latest quote date to count",
"type": "string"
}
},
"type": "object"
},
"name": "quote_report",
"outputSchema": null
},
{
"description": "Turn a quote into a plain-text summary to paste into an email: the line table, VAT lines, total and validity date. Also a .txt download link valid one hour. Free; quote_pdf writes the A4 document.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"greeting": {
"description": "Opening line, default \"Hello\" plus the client name",
"type": "string"
},
"id": {
"description": "Quote id such as Q-2026-0001",
"type": "string"
},
"sign_off": {
"description": "Closing line, default your business name from the shared profile",
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "quote_send_text",
"outputSchema": null
},
{
"description": "Revise a quote that is still open: line items, currency, discount, VAT default, validity or notes. Totals are recomputed. An accepted or declined quote is never edited.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"client_address": {
"maxLength": 2000,
"type": "string"
},
"client_email": {
"maxLength": 320,
"type": "string"
},
"client_vat_id": {
"maxLength": 64,
"type": "string"
},
"currency": {
"pattern": "^[A-Za-z]{3}$",
"type": "string"
},
"discount_percent": {
"maximum": 100,
"minimum": 0,
"type": "number"
},
"id": {
"description": "Quote id such as Q-2026-0001",
"type": "string"
},
"items": {
"description": "Replaces every line item",
"items": {
"additionalProperties": false,
"properties": {
"currency": {
"description": "Only to state the line's currency; every line on one quote must agree",
"pattern": "^[A-Za-z]{3}$",
"type": "string"
},
"description": {
"description": "every line needs a description, 500 characters or fewer",
"maxLength": 500,
"minLength": 1,
"type": "string"
},
"quantity": {
"description": "Hours or units, must be greater than zero",
"exclusiveMinimum": 0,
"maximum": 1000000000000,
"minimum": -1000000000000,
"type": "number"
},
"tax_rate": {
"description": "VAT percent for this line, overrides the business default",
"maximum": 1000,
"minimum": 0,
"type": "number"
},
"unit_price_minor": {
"description": "Price per unit in MINOR units: 9000 = 90.00 EUR, 90 = JPY 90. Never a decimal",
"maximum": 1000000000000,
"minimum": 0,
"type": "integer"
}
},
"required": [
"description",
"quantity",
"unit_price_minor"
],
"type": "object"
},
"maxItems": 200,
"minItems": 1,
"type": "array"
},
"notes": {
"maxLength": 10000,
"type": "string"
},
"tax_rate": {
"description": "VAT percent for lines with no rate of their own",
"maximum": 1000,
"minimum": 0,
"type": "number"
},
"valid_until": {
"description": "YYYY-MM-DD. Wins over validity_days, and is how an expired quote is extended",
"type": "string"
},
"validity_days": {
"description": "Recomputes valid_until from the quote date",
"maximum": 3650,
"minimum": 1,
"type": "integer"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "quote_update",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:0790820443d1c0b69a0808e6eabcb0ae5f47f395c4f662fa27d1d5b662735909 | sha256sum