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 yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:8c19b5d34482feec4dc64bad7c16e3a05d1211d8378e639e40b0b841f6e982f2 | sha256sum