InvoiceBloom

io.github.theastevePublished by GitHub account theastevev1.0.0Updated Oct 24, 2026

Create, send and track invoices for freelancers and small businesses.

The publisher's own server: Bloom

VerifiedStreamable HTTPWeb executableFinanceCommunication & CollaborationBusiness & Commerce

Overview

AI-generated overview

Hosted invoicing MCP server that lets an assistant create, send and track invoices, manage clients and record payments for a freelancer or small business.

What you can do
Read the signed-in account profile, email-confirmation and card-payment status, and client and invoice counts. Find, create and update clients, with search by name, email or company. List and read invoices, filtered by status, client or overdue, with line items, totals and a public link. Create and update draft invoices with line items, tax and late fees, totals computed server-side. Email an invoice PDF to the client, with a Stripe payment link when card payments are enabled. Mark an invoice paid for off-platform payments, or permanently delete an invoice.
When to use it
Useful when you want to draft, send and follow up on invoices conversationally from an MCP client instead of the web app, for example asking which invoices are overdue or invoicing a client for a set number of hours.
Requirements
A remote Streamable HTTP endpoint; nothing to install. A free InvoiceBloom account and a bearer API token sent in the Authorization header, minted in Settings › Security. The account email must be confirmed before invoices can be sent. Rate limit of 120 requests per minute per token.
Before you install
The token carries the same rights as the account, so treat it as a secret and revoke it if leaked. send_invoice emails a real person and may attach a Stripe payment link, so confirm before calling. delete_invoice is permanent and cannot be undone. update_invoice with line_items replaces all existing line items. Client names, emails and invoice data are sent to InvoiceBloom.

Installation

In SourceWeft

  1. Open InvoiceBloom in the dashboard and add it to a workspace.
  2. Connect Authorization token credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.theasteve%2Finvoicebloom/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "invoicebloom": {
      "type": "http",
      "url": "https://invoicebloom.io/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

InvoiceBloom MCP server

Create, send and track invoices from Claude, Cursor, or any Model Context Protocol client.

InvoiceBloom is a free invoicing app for freelancers and small businesses. Its MCP server is hosted: there is nothing to install or run. Point your client at the endpoint with an API token and start invoicing.

Quick start

Claude Code

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

Cursor, Windsurf and other HTTP-capable clients

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

Claude Desktop (via mcp-remote)

json
{  "mcpServers": {    "invoicebloom": {      "command": "npx",      "args": ["-y", "mcp-remote", "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?".

Tools

ToolWhat it does
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 server-side
send_invoiceEmails the PDF to the client, with a Stripe payment link if connected
mark_invoice_paidRecord a payment received outside the app
delete_invoiceRemove an invoice

send_invoice and delete_invoice carry MCP annotations (openWorldHint, destructiveHint) so well-behaved assistants confirm with you before calling them.

Safety and limits

  • A token has the same rights as your account. Revoke it from Settings › Security the moment you think it leaked.
  • 120 requests per minute per token.
  • The same anti-abuse rules as the web app apply to sending: a confirmed email, at least one line item, and a daily send cap.
  • Unauthenticated requests get a JSON 401.

Registry metadata

server.json follows the official MCP Registry schema for remote servers.

Support

Questions or a client you want supported: https://invoicebloom.io/contact

Source: README.md at commit 1436e58

Tools

11

get_account

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.

Takes no parameters.

list_clients

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.

Parametersquery

create_client

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.

Parametersnamerequiredemailrequirednotesphoneaddresscompany_name

update_client

Updates an existing client's details. Only the fields you pass are changed.

Parametersnameemailnotesphonestatusaddressclient_idrequiredcompany_name

list_invoices

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.

Parameterslimitstatusclient_idoverdue_only

get_invoice

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.

Parametersinvoice_idrequired

create_invoice

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.

Parameterstaxdatetermsthemedue_datelate_feeclient_idline_itemsrequiredclient_emailbusiness_namebusiness_addresspayment_instructions

update_invoice

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.

Parameterstaxdatetermsthemedue_datelate_feeclient_idinvoice_idrequiredline_itemsclient_emailbusiness_namebusiness_address+1 more

send_invoice

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.

Parametersinvoice_idrequired

mark_invoice_paid

Marks an invoice as paid, for payments received outside InvoiceBloom (bank transfer, cash, cheque). Card payments through the payment link are recorded automatically.

Parametersinvoice_idrequired

delete_invoice

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.

Parametersinvoice_idrequired

Version history

1
  1. v1.0.0LatestSep 25, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Bloom integrations