Skip to content

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.

Deletes · 1Final · 1Changes · 5

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

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.

.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.