Use InvoiceBloom from Claude and other AI assistants

InvoiceBloom ships a hosted MCP server and a JSON API. Give your assistant one API token and it can look up clients, draft invoices, email them, and tell you who still owes you money. Free, like the rest of the app.

1. Create an API token

Sign in (or create a free account), open Settings › Security, name a token (for example "Claude Code") and click Create token. Copy it: it starts with ib_ and is shown once. Revoke it from the same page whenever you like.

2. Connect your assistant (MCP)

The server lives at https://invoicebloom.io/mcp (Streamable HTTP). Send the token as a bearer header.

Claude Code

claude mcp add --transport http invoicebloom https://invoicebloom.io/mcp \
  --header "Authorization: Bearer ib_YOUR_TOKEN"

Then ask things like "Invoice Acme for 12 hours of consulting at $150 and send it" or "Which invoices are overdue?".

Claude Desktop

Add this to claude_desktop_config.json (Settings › Developer › Edit Config). It bridges through mcp-remote because Desktop's config file cannot send headers itself:

{
  "mcpServers": {
    "invoicebloom": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://invoicebloom.io/mcp",
               "--header", "Authorization: Bearer ib_YOUR_TOKEN"]
    }
  }
}

Cursor, Windsurf and other MCP clients

{
  "mcpServers": {
    "invoicebloom": {
      "url": "https://invoicebloom.io/mcp",
      "headers": { "Authorization": "Bearer ib_YOUR_TOKEN" }
    }
  }
}

Tools your assistant gets

get_accountYour business details, email-confirmation and payment status.
list_clients / create_client / update_clientFind or add the people you invoice.
list_invoices / get_invoiceFilter by status, client, or overdue; full detail with line items and a shareable link.
create_invoice / update_invoiceDraft invoices with line items, tax and late fees. Totals are computed for you.
send_invoiceEmails the PDF to the client (with a payment link if Stripe is connected).
mark_invoice_paid / delete_invoiceRecord an offline payment, or remove an invoice.

Sending and deleting are flagged so well-behaved assistants confirm with you first. The same anti-abuse rules as the app apply: a confirmed email, at least one line item, and a daily send cap.

3. Or call the JSON API directly

Base URL https://invoicebloom.io/api/v1, header Authorization: Bearer ib_YOUR_TOKEN, JSON in and out.

GET /meAccount profile.
GET /clients?q=List or search clients. POST /clients, GET|PATCH /clients/:id.
GET /invoicesFilters: status (draft, sent, paid), client_id, overdue=true for unpaid and late, page.
POST /invoicesCreate a draft. GET|PATCH|DELETE /invoices/:id.
POST /invoices/:id/sendEmail it to the client.
POST /invoices/:id/mark_paidRecord an offline payment.
GET /invoices/:id/pdfDownload the PDF.

Example: create and send an invoice

curl -X POST https://invoicebloom.io/api/v1/invoices \
  -H "Authorization: Bearer ib_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "invoice": {
      "client_email": "billing@acme.com",
      "due_date": "2026-10-25",
      "tax": 8.5,
      "line_items": [
        { "description": "Consulting", "quantity": 12, "unit": "hours", "rate": 150 }
      ]
    }
  }'

# then, using the id from the response:
curl -X POST https://invoicebloom.io/api/v1/invoices/123/send \
  -H "Authorization: Bearer ib_YOUR_TOKEN"

Limits and errors

  • 120 requests per minute per token. Over that you get 429.
  • Errors come back as {"error": "..."} with a 401, 404, 422 or 403 status.
  • Amounts are numbers, dates are YYYY-MM-DD, tax is a percentage.
  • A token has the same rights as you. Revoke it the moment you think it leaked.

Questions or a client you want supported? Contact us.