InvoiceBloom
by theasteve · remote · no sign-in to list tools · v1.0.0 · published by GitHub user theasteve
Create, send and track invoices for freelancers and small businesses.
11 tools: 1 can delete or cancel things, 1 do something that can't be undone, 5 change things and 4 only read.
Scanned Oct 21, 2026
- Deletes or cancels1Claude Code: deny: see these tools
- Can't be undone1Claude Code: ask: see these tools
- Changes things5Claude Code: ask: see these tools
- Only reads4Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http invoicebloom https://invoicebloom.io/mcp --header 'Authorization: <your-authorization>'Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
11 tools
Deletes or cancels 1Claude Code: deny
delete_invoicePermanently deletes an invoice and its line items.No findings
Why it is in this group
- The name "delete_invoice" says "delete": a word for removing or ending something.
- The description says "Permanently deletes".
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: false
Can't be undone 1Claude Code: ask
send_invoiceEmails the invoice (with a PDF attached) to the client's email address and marks it as sent.No findings
Why it is in this group
- The name "send_invoice" says "send": a word for sending, and what is sent cannot be taken back.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
- readOnlyHint: false
Changes things 5Claude Code: ask
create_clientCreates a new client to invoice.No findings
Why it is in this group
- The name "create_client" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- readOnlyHint: false
create_invoiceCreates a draft invoice with line items for an existing client.No findings
Why it is in this group
- The name "create_invoice" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- readOnlyHint: false
mark_invoice_paidMarks an invoice as paid, for payments received outside InvoiceBloom (bank transfer, cash, cheque).No findings
Why it is in this group
- The name "mark_invoice_paid" says "mark": a word for a change.
Description, as the server wrote it Marks an invoice as paid, for payments received outside InvoiceBloom (bank transfer, cash, cheque). Card payments through the payment link are recorded automatically.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: false
update_clientUpdates an existing client's details.No findings
Why it is in this group
- The name "update_client" says "update": a word for a change.
Description, as the server wrote it Updates an existing client's details. Only the fields you pass are changed.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: false
update_invoiceUpdates an invoice.No findings
Why it is in this group
- The name "update_invoice" says "update": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: false
Only reads 4Claude Code: allow
get_accountReturns 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…No findings
Why it is in this group
- The name "get_account" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- readOnlyHint: true
get_invoiceReturns 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.No findings
Why it is in this group
- The name "get_invoice" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- readOnlyHint: true
list_clientsLists the user's clients (people or companies they invoice), optionally filtered by a search term matched against name, email and company.No findings
Why it is in this group
- The name "list_clients" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- readOnlyHint: true
list_invoicesLists the user's invoices, newest first, without line items.No findings
Why it is in this group
- The name "list_invoices" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http invoicebloom https://invoicebloom.io/mcp --header 'Authorization: <your-authorization>'Run in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__invoicebloom__get_account",
"mcp__invoicebloom__list_clients",
"mcp__invoicebloom__list_invoices",
"mcp__invoicebloom__get_invoice"
],
"ask": [
"mcp__invoicebloom__create_client",
"mcp__invoicebloom__update_client",
"mcp__invoicebloom__create_invoice",
"mcp__invoicebloom__update_invoice",
"mcp__invoicebloom__send_invoice",
"mcp__invoicebloom__mark_invoice_paid"
],
"deny": [
"mcp__invoicebloom__delete_invoice"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as invoicebloom. Review it before you use it.
