Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,544Letters: 14Defects: 1,324counted just now
teppi

Server definition

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

The blob, as servednamed by its sha256

{ "instructions": "InvoiceBloom is a free invoicing app for freelancers and small businesses. You are acting\non behalf of the signed-in user. Amounts are plain numbers in the user's currency; tax is a\npercentage. Workflow: find or create the client (list_clients / create_client), create the\ninvoice as a draft with line items (create_invoice), review it with the user, then\nsend_invoice emails it to the client. send_invoice and delete_invoice have real-world\neffects, so confirm with the user before calling them. Every invoice has a public_url you\ncan share with the client.", "tools": [ { "description": "Creates a new client to invoice. Name and email are required; the email is where invoices are sent. Check list_clients first so you do not create duplicates.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "address": { "description": "Postal address, printed on invoices.", "type": "string" }, "company_name": { "type": "string" }, "email": { "description": "Email address invoices will be sent to.", "type": "string" }, "name": { "description": "Contact name, up to 100 characters.", "type": "string" }, "notes": { "description": "Private notes, never shown to the client.", "type": "string" }, "phone": { "type": "string" } }, "required": [ "name", "email" ], "type": "object" }, "name": "create_client", "outputSchema": null }, { "description": "Creates a draft invoice with line items for an existing client. Identify the client by client_id or client_email (must already exist; use create_client otherwise). Totals are computed server-side: subtotal + tax% + late_fee. Nothing is emailed until you call send_invoice. Returns the invoice, including its invoice_number and public_url.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "business_address": { "description": "Override the sender address printed on this invoice.", "type": "string" }, "business_name": { "description": "Override the sender name printed on this invoice.", "type": "string" }, "client_email": { "description": "Alternative to client_id: email of an existing client.", "type": "string" }, "client_id": { "description": "ID from list_clients.", "type": "integer" }, "date": { "description": "Invoice date, YYYY-MM-DD. Defaults to today.", "type": "string" }, "due_date": { "description": "Due date, YYYY-MM-DD. Defaults to 30 days from today.", "type": "string" }, "late_fee": { "description": "Flat late fee amount added to the total. Omit for none.", "type": "number" }, "line_items": { "description": "At least one line item.", "items": { "properties": { "description": { "description": "What was delivered, e.g. 'Logo design'.", "type": "string" }, "quantity": { "description": "Quantity, greater than 0.", "type": "number" }, "rate": { "description": "Price per unit.", "type": "number" }, "unit": { "description": "Unit label such as 'hours', 'days' or 'units'. Defaults to 'units'.", "type": "string" } }, "required": [ "description", "quantity", "rate" ], "type": "object" }, "minItems": 1, "type": "array" }, "payment_instructions": { "description": "How to pay (bank details etc.). Defaults to the user's saved instructions.", "type": "string" }, "tax": { "description": "Tax as a percentage of the subtotal, e.g. 8.5. Omit for no tax.", "type": "number" }, "terms": { "description": "Payment terms text, e.g. 'Net 30'.", "type": "string" }, "theme": { "description": "Visual template. Defaults to 'minimal'.", "enum": [ "minimal", "classic", "modern", "creative", "freelancer", "contractor", "consultant" ], "type": "string" } }, "required": [ "line_items" ], "type": "object" }, "name": "create_invoice", "outputSchema": null }, { "description": "Permanently deletes an invoice and its line items. Cannot be undone. Confirm with the user before calling; prefer leaving paid invoices in place for their records.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "invoice_id": { "type": "integer" } }, "required": [ "invoice_id" ], "type": "object" }, "name": "delete_invoice", "outputSchema": null }, { "description": "Returns the signed-in user's profile: business name, address, saved payment instructions, whether their email is confirmed (required before sending invoices), whether they can take card payments, and client/invoice counts. Call this first to know who you are acting for.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": {}, "required": [], "type": "object" }, "name": "get_account", "outputSchema": null }, { "description": "Returns one invoice with its line items, totals, status, the client it is for, a public_url the client can open, and a payment link if one exists.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "invoice_id": { "type": "integer" } }, "required": [ "invoice_id" ], "type": "object" }, "name": "get_invoice", "outputSchema": null }, { "description": "Lists the user's clients (people or companies they invoice), optionally filtered by a search term matched against name, email and company. Use it to find a client_id before creating an invoice.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "query": { "description": "Optional case-insensitive search across name, email and company name.", "type": "string" } }, "required": [], "type": "object" }, "name": "list_clients", "outputSchema": null }, { "description": "Lists the user's invoices, newest first, without line items. Filter by status (draft, sent, paid), by client, or overdue_only for unpaid invoices past their due date (there is no 'overdue' status; use overdue_only). Use get_invoice for full detail.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "client_id": { "type": "integer" }, "limit": { "description": "Defaults to 25.", "maximum": 100, "minimum": 1, "type": "integer" }, "overdue_only": { "description": "Only unpaid invoices whose due date has passed.", "type": "boolean" }, "status": { "enum": [ "draft", "sent", "paid" ], "type": "string" } }, "required": [], "type": "object" }, "name": "list_invoices", "outputSchema": null }, { "description": "Marks an invoice as paid, for payments received outside InvoiceBloom (bank transfer, cash, cheque). Card payments through the payment link are recorded automatically.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "invoice_id": { "type": "integer" } }, "required": [ "invoice_id" ], "type": "object" }, "name": "mark_invoice_paid", "outputSchema": null }, { "description": "Emails the invoice (with a PDF attached) to the client's email address and marks it as sent. This contacts a real person: confirm with the user before calling. Requires at least one line item and a confirmed user email. If the user takes card payments, a Stripe payment link is added first.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "invoice_id": { "type": "integer" } }, "required": [ "invoice_id" ], "type": "object" }, "name": "send_invoice", "outputSchema": null }, { "description": "Updates an existing client's details. Only the fields you pass are changed.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "address": { "type": "string" }, "client_id": { "type": "integer" }, "company_name": { "type": "string" }, "email": { "type": "string" }, "name": { "type": "string" }, "notes": { "type": "string" }, "phone": { "type": "string" }, "status": { "enum": [ "active", "inactive" ], "type": "string" } }, "required": [ "client_id" ], "type": "object" }, "name": "update_client", "outputSchema": null }, { "description": "Updates an invoice. Only fields you pass change. If you pass line_items, they REPLACE the existing line items entirely, so include every item that should remain. Works on draft and sent invoices; re-send with send_invoice if the client needs the new version.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "business_address": { "description": "Override the sender address printed on this invoice.", "type": "string" }, "business_name": { "description": "Override the sender name printed on this invoice.", "type": "string" }, "client_email": { "type": "string" }, "client_id": { "type": "integer" }, "date": { "description": "Invoice date, YYYY-MM-DD. Defaults to today.", "type": "string" }, "due_date": { "description": "Due date, YYYY-MM-DD. Defaults to 30 days from today.", "type": "string" }, "invoice_id": { "type": "integer" }, "late_fee": { "description": "Flat late fee amount added to the total. Omit for none.", "type": "number" }, "line_items": { "description": "Full replacement list of line items.", "items": { "properties": { "description": { "description": "What was delivered, e.g. 'Logo design'.", "type": "string" }, "quantity": { "description": "Quantity, greater than 0.", "type": "number" }, "rate": { "description": "Price per unit.", "type": "number" }, "unit": { "description": "Unit label such as 'hours', 'days' or 'units'. Defaults to 'units'.", "type": "string" } }, "required": [ "description", "quantity", "rate" ], "type": "object" }, "type": "array" }, "payment_instructions": { "description": "How to pay (bank details etc.). Defaults to the user's saved instructions.", "type": "string" }, "tax": { "description": "Tax as a percentage of the subtotal, e.g. 8.5. Omit for no tax.", "type": "number" }, "terms": { "description": "Payment terms text, e.g. 'Net 30'.", "type": "string" }, "theme": { "description": "Visual template. Defaults to 'minimal'.", "enum": [ "minimal", "classic", "modern", "creative", "freelancer", "contractor", "consultant" ], "type": "string" } }, "required": [ "invoice_id" ], "type": "object" }, "name": "update_invoice", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:8c19b5d34482feec4dc64bad7c16e3a05d1211d8378e639e40b0b841f6e982f2 | sha256sum