{"name":"io.github.theasteve/invoicebloom","slug":"theasteve-invoicebloom","title":"InvoiceBloom","description":"Create, send and track invoices for freelancers and small businesses.","url":"https://mcp.market/server/theasteve-invoicebloom","rating":null,"grade":"A","score":88,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":23,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-09-25T17:56:31.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T08:10:33.010Z","last_ok_at":"2026-11-04T08:10:33.010Z","latency_ms":190},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/theasteve/invoicebloom-mcp","website":"https://invoicebloom.io/developers","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://invoicebloom.io/mcp","headers":[{"description":"Bearer ib_... API token from https://invoicebloom.io/settings/security","isRequired":true,"isSecret":true,"name":"Authorization"}]}],"packages":[],"tools":[{"name":"create_client","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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"type":"string","description":"Contact name, up to 100 characters."},"email":{"type":"string","description":"Email address invoices will be sent to."},"company_name":{"type":"string"},"address":{"type":"string","description":"Postal address, printed on invoices."},"phone":{"type":"string"},"notes":{"type":"string","description":"Private notes, never shown to the client."}},"required":["name","email"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"create_invoice","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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"client_id":{"type":"integer","description":"ID from list_clients."},"client_email":{"type":"string","description":"Alternative to client_id: email of an existing client."},"line_items":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"What was delivered, e.g. 'Logo design'."},"quantity":{"type":"number","description":"Quantity, greater than 0."},"unit":{"type":"string","description":"Unit label such as 'hours', 'days' or 'units'. Defaults to 'units'."},"rate":{"type":"number","description":"Price per unit."}},"required":["description","quantity","rate"]},"minItems":1,"description":"At least one line item."},"date":{"type":"string","description":"Invoice date, YYYY-MM-DD. Defaults to today."},"due_date":{"type":"string","description":"Due date, YYYY-MM-DD. Defaults to 30 days from today."},"tax":{"type":"number","description":"Tax as a percentage of the subtotal, e.g. 8.5. Omit for no tax."},"late_fee":{"type":"number","description":"Flat late fee amount added to the total. Omit for none."},"theme":{"type":"string","enum":["minimal","classic","modern","creative","freelancer","contractor","consultant"],"description":"Visual template. Defaults to 'minimal'."},"terms":{"type":"string","description":"Payment terms text, e.g. 'Net 30'."},"payment_instructions":{"type":"string","description":"How to pay (bank details etc.). Defaults to the user's saved instructions."},"business_name":{"type":"string","description":"Override the sender name printed on this invoice."},"business_address":{"type":"string","description":"Override the sender address printed on this invoice."}},"required":["line_items"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"delete_invoice","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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"invoice_id":{"type":"integer"}},"required":["invoice_id"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"get_account","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"required":[],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"get_invoice","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"invoice_id":{"type":"integer"}},"required":["invoice_id"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"list_clients","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"Optional case-insensitive search across name, email and company name."}},"required":[],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"list_invoices","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"status":{"type":"string","enum":["draft","sent","paid"]},"client_id":{"type":"integer"},"overdue_only":{"type":"boolean","description":"Only unpaid invoices whose due date has passed."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Defaults to 25."}},"required":[],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"mark_invoice_paid","description":"Marks an invoice as paid, for payments received outside InvoiceBloom (bank transfer, cash, cheque). Card payments through the payment link are recorded automatically.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"invoice_id":{"type":"integer"}},"required":["invoice_id"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"send_invoice","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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"invoice_id":{"type":"integer"}},"required":["invoice_id"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"update_client","description":"Updates an existing client's details. Only the fields you pass are changed.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"client_id":{"type":"integer"},"name":{"type":"string"},"email":{"type":"string"},"company_name":{"type":"string"},"address":{"type":"string"},"phone":{"type":"string"},"notes":{"type":"string"},"status":{"type":"string","enum":["active","inactive"]}},"required":["client_id"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"update_invoice","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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"invoice_id":{"type":"integer"},"client_id":{"type":"integer"},"client_email":{"type":"string"},"line_items":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","description":"What was delivered, e.g. 'Logo design'."},"quantity":{"type":"number","description":"Quantity, greater than 0."},"unit":{"type":"string","description":"Unit label such as 'hours', 'days' or 'units'. Defaults to 'units'."},"rate":{"type":"number","description":"Price per unit."}},"required":["description","quantity","rate"]},"description":"Full replacement list of line items."},"date":{"type":"string","description":"Invoice date, YYYY-MM-DD. Defaults to today."},"due_date":{"type":"string","description":"Due date, YYYY-MM-DD. Defaults to 30 days from today."},"tax":{"type":"number","description":"Tax as a percentage of the subtotal, e.g. 8.5. Omit for no tax."},"late_fee":{"type":"number","description":"Flat late fee amount added to the total. Omit for none."},"theme":{"type":"string","enum":["minimal","classic","modern","creative","freelancer","contractor","consultant"],"description":"Visual template. Defaults to 'minimal'."},"terms":{"type":"string","description":"Payment terms text, e.g. 'Net 30'."},"payment_instructions":{"type":"string","description":"How to pay (bank details etc.). Defaults to the user's saved instructions."},"business_name":{"type":"string","description":"Override the sender name printed on this invoice."},"business_address":{"type":"string","description":"Override the sender address printed on this invoice."}},"required":["invoice_id"],"$schema":"https://json-schema.org/draft/2020-12/schema"}}],"scan":{"score":88,"grade":"A","scanned_at":"2026-09-25T21:41:59.454Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-25T21:41:59.496Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 521ms"]},"poisoning":{"score":15,"max":15,"notes":["11 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"probes":[{"url":"https://invoicebloom.io/mcp","reachable":true,"authRequired":false,"latencyMs":521,"serverInfo":{"name":"invoicebloom","version":"1.0.0"}}],"packages":[],"repo":{"found":true,"owner":"theasteve","repo":"invoicebloom-mcp","archived":false,"pushedAt":"2026-09-25T17:56:31Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/14843767?v=4","ownerCreatedAt":"2015-09-25T21:59:49Z","license":"MIT"},"icon":{"url":"https://invoicebloom.io/favicon.ico","source":"site","width":512,"height":512},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-25T17:56:31.000Z","score":23}}}},"grade_history":[],"reviews":[]}