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

Server definition

Hash
sha256:8c49479a0052e7effc45ee6fbe4953264b1ef7f74965ce5172c308155bac3a8b
What it is
What a remote MCP server returned when asked what it offers: 14 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "Expected invoiced revenue per calendar month per currency from active schedules. Invoiced and skipped periods are excluded and paused schedules listed apart. Free: 3 months; Pro: up to 120.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "months": { "description": "Months ahead including this one, default 12", "maximum": 120, "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "forecast", "outputSchema": null }, { "description": "Create a real invoice in the invoice server for every schedule occurrence on or before as_of that has not been invoiced yet, and render each PDF. Returns what was created, what was skipped and what is still due.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "as_of": { "description": "YYYY-MM-DD, defaults to today. Every occurrence on or before this date that has not been invoiced is billed. Idempotent: one invoice per schedule per period, keyed by the occurrence date, so running it twice creates nothing the second time", "type": "string" }, "dry_run": { "description": "List what would be created without creating anything. Default false. One run creates at most 60 invoices, oldest period first", "type": "boolean" }, "schedule_id": { "description": "Only this schedule. Free and unlimited on every tier", "type": "string" } }, "type": "object" }, "name": "invoice_generate_due", "outputSchema": null }, { "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": "Define a repeating invoice: a client, the line items, how often to bill, and when it starts and ends. Returns the schedule id, a summary and its next dates. Nothing is invoiced until invoice_generate_due runs.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "anchor_day": { "description": "Pro: bill on this day of month instead of the start date's day. 31 means the last day of every month", "maximum": 31, "minimum": 1, "type": "integer" }, "auto_generate": { "description": "Marks the schedule for the monthly_billing_run prompt. Default false. Nothing runs in the background either way: invoices are created only when invoice_generate_due is called", "type": "boolean" }, "client": { "description": "Client name or id, as in the invoice server. Unknown names are created on the first generated invoice", "type": "string" }, "currency": { "description": "Defaults to your business default currency", "pattern": "^[A-Za-z]{3}$", "type": "string" }, "due_days": { "description": "Days until each invoice is due, defaults to your payment terms", "type": "integer" }, "end_date": { "description": "YYYY-MM-DD, INCLUSIVE: an occurrence landing exactly on it is still generated", "type": "string" }, "end_of_month": { "description": "Pro: always bill on the last day of the month", "type": "boolean" }, "every": { "anyOf": [ { "enum": [ "weekly", "monthly", "quarterly", "yearly" ], "type": "string" }, { "additionalProperties": false, "properties": { "days": { "maximum": 3650, "minimum": 1, "type": "integer" } }, "required": [ "days" ], "type": "object" } ], "description": "How often to bill: \"weekly\", \"monthly\", \"quarterly\", \"yearly\", or {days: 10}. Month steps keep the start date's day of month and clamp it to shorter months, so a schedule starting on the 31st bills on the 28th/29th in February and back on the 31st in March" }, "items": { "description": "The line items billed every period", "items": { "additionalProperties": false, "properties": { "description": { "type": "string" }, "quantity": { "description": "Hours, units or 1 for a flat fee", "maximum": 1000000000000, "minimum": -1000000000000, "type": "number" }, "tax_rate": { "description": "VAT percent for this line, overrides the business default", "maximum": 1000, "minimum": -100, "type": "number" }, "unit_price": { "description": "Price per unit in major units, e.g. 90 for 90 EUR", "maximum": 1000000000000, "minimum": -1000000000000, "type": "number" } }, "required": [ "description", "quantity", "unit_price" ], "type": "object" }, "maxItems": 200, "minItems": 1, "type": "array" }, "notes": { "description": "Free text printed under the totals of every generated invoice", "type": "string" }, "start_date": { "description": "YYYY-MM-DD. The first invoice falls on this date, and for weekly/monthly/quarterly/yearly steps its day of month is the billing day for every later period", "type": "string" }, "tax_note": { "description": "Why this schedule bills the tax it bills, e.g. 'Reverse charge: VAT accounted for by the recipient, art. 196 Directive 2006/112/EC'. It is printed under the totals of EVERY invoice this schedule generates, so a 0% retainer carries its reason on the document instead of only in the chat", "type": "string" } }, "required": [ "client", "items", "every", "start_date" ], "type": "object" }, "name": "schedule_create", "outputSchema": null }, { "description": "Delete one schedule permanently. Invoices already generated stay in the invoice server and the history is kept. Re-creating it gives a NEW id, so its old periods count as unbilled. schedule_pause is reversible.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "id": { "description": "Schedule id, or a client name. Deletion is permanent; re-creating the same schedule afterwards gives it a NEW id, so its old periods count as unbilled again", "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "schedule_delete", "outputSchema": null }, { "description": "Return one schedule in full by id or client: items, cadence, dates, due days, anchor rules, notes, per-period amount, next due date and how many invoices it generated. schedule_history is the log.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "id": { "description": "Schedule id, or a client name", "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "schedule_get", "outputSchema": null }, { "description": "The audit log for one schedule id, oldest first: period, invoice number, issue and due dates, amount, PDF path, and whether that invoice is unpaid, paid, skipped or since deleted. schedule_list finds the id. Pro.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "id": { "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "schedule_history", "outputSchema": null }, { "description": "List schedules: id, client, cadence, per-period amount and currency, start and end dates, status, next due date and auto_generate. Filter by status; a paused schedule reports no next due date.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "status": { "enum": [ "active", "paused" ], "type": "string" } }, "type": "object" }, "name": "schedule_list", "outputSchema": null }, { "description": "Stop one schedule generating invoices without deleting it; invoice_generate_due and forecast skip it. Its periods keep falling due and resuming back-bills them, so use schedule_skip to drop just one.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "id": { "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "schedule_pause", "outputSchema": null }, { "description": "Make a paused schedule active again. Every period missed while it was paused is still due and the next invoice_generate_due creates them all. Refused when it would pass the free tier's 3 active.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "id": { "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "schedule_resume", "outputSchema": null }, { "description": "Close ONE occurrence for good without pausing the schedule, reporting what will not be billed. period must be a real occurrence of it. An invoiced period is refused; undo reopens a skip.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "id": { "description": "Schedule id, or a client name", "type": "string" }, "period": { "description": "The occurrence date to skip, YYYY-MM-DD, exactly as it appears in schedule_upcoming or forecast. This is the answer to \"pause this client for October\": schedule_pause stops the whole schedule and a resumed schedule still back-bills the periods it missed, whereas a skipped period is closed for good", "type": "string" }, "undo": { "description": "Remove a previous skip so the period becomes due again. Works only on a period that has not been invoiced. Default false", "type": "boolean" } }, "required": [ "id", "period" ], "type": "object" }, "name": "schedule_skip", "outputSchema": null }, { "description": "Table every occurrence of every ACTIVE schedule due in the next N days (30 default), with its amount and the invoice due date, plus a total per currency. Free lists the first 3 in your horizon.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "days": { "description": "Days ahead, default 30. The free tier honours the horizon you ask for and lists the first 3 occurrences in it; Pro lists them all", "maximum": 3650, "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "schedule_upcoming", "outputSchema": null }, { "description": "Change one schedule by id: client, items, currency, cadence, dates, due_days, notes or auto_generate. Only the fields you pass change. Periods already invoiced are never re-issued, so a new amount applies to future ones.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "anchor_day": { "anyOf": [ { "maximum": 31, "minimum": 1, "type": "integer" }, { "type": "null" } ], "description": "Pro" }, "auto_generate": { "type": "boolean" }, "client": { "type": "string" }, "currency": { "pattern": "^[A-Za-z]{3}$", "type": "string" }, "due_days": { "type": "integer" }, "end_date": { "description": "null clears the end date", "type": [ "string", "null" ] }, "end_of_month": { "description": "Pro", "type": "boolean" }, "every": { "anyOf": [ { "enum": [ "weekly", "monthly", "quarterly", "yearly" ], "type": "string" }, { "additionalProperties": false, "properties": { "days": { "maximum": 3650, "minimum": 1, "type": "integer" } }, "required": [ "days" ], "type": "object" } ], "description": "How often to bill: \"weekly\", \"monthly\", \"quarterly\", \"yearly\", or {days: 10}. Month steps keep the start date's day of month and clamp it to shorter months, so a schedule starting on the 31st bills on the 28th/29th in February and back on the 31st in March" }, "id": { "type": "string" }, "items": { "items": { "additionalProperties": false, "properties": { "description": { "type": "string" }, "quantity": { "description": "Hours, units or 1 for a flat fee", "maximum": 1000000000000, "minimum": -1000000000000, "type": "number" }, "tax_rate": { "description": "VAT percent for this line, overrides the business default", "maximum": 1000, "minimum": -100, "type": "number" }, "unit_price": { "description": "Price per unit in major units, e.g. 90 for 90 EUR", "maximum": 1000000000000, "minimum": -1000000000000, "type": "number" } }, "required": [ "description", "quantity", "unit_price" ], "type": "object" }, "maxItems": 200, "minItems": 1, "type": "array" }, "notes": { "type": "string" }, "start_date": { "type": "string" }, "tax_note": { "description": "Replace the tax reason carried onto every future generated invoice. Pass an empty string to clear it", "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "schedule_update", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:8c49479a0052e7effc45ee6fbe4953264b1ef7f74965ce5172c308155bac3a8b | sha256sum