Invoice Ninja MCP server. Manage Invoice Ninja clients, invoices, quotes, expenses, tasks and projects.
Add to your MCP config, then reload & authorize:
{
"mcpServers": {
"invoice-ninja": {
"url": "https://invoice-ninja.usefulapi.io/mcp"
}
}
}| Tool | Type | What it does |
|---|---|---|
invoiceninja_list_clients | read | List clients List clients with balances and contacts, optionally searched by name, email or number. Invoice Ninja: GET /api/v1/clients. |
invoiceninja_get_client | read | Get one client Fetch one client by id, with contacts, address, balance and paid-to-date. Invoice Ninja: GET /api/v1/clients/{id}. |
invoiceninja_list_invoices | read | List invoices List invoices, filterable by client and payment status (paid / unpaid / overdue). status_id on each invoice: 1 draft, 2 sent, 3 partial, 4 paid, 5 cancelled, 6 reversed. Invoice Ninja: GET /api/v1/invoices. |
invoiceninja_get_invoice | read | Get one invoice Fetch one invoice by id — line items, totals, balance, dates, status and invitations. Invoice Ninja: GET /api/v1/invoices/{id}. |
invoiceninja_list_quotes | read | List quotes List quotes (estimates), filterable by client and quote status. Invoice Ninja: GET /api/v1/quotes. |
invoiceninja_get_quote | read | Get one quote Fetch one quote by id — line items, totals, status and the invoice it was converted to (invoice_id), if any. Invoice Ninja: GET /api/v1/quotes/{id}. |
invoiceninja_list_products | read | List products List products / services in the catalog with price, cost and default taxes. Invoice Ninja: GET /api/v1/products. |
invoiceninja_list_payments | read | List payments List payments received, with amount, date, refunded/applied totals and the invoices each was applied to (paymentables). Read-only: this server never records or refunds payments. Invoice Ninja: GET /api/v1/payments. |
invoiceninja_list_expenses | read | List expenses List expenses, filterable by client and invoicing/payment state. Invoice Ninja: GET /api/v1/expenses. |
invoiceninja_list_vendors | read | List vendors List vendors (suppliers) with contacts and address. Invoice Ninja: GET /api/v1/vendors. |
invoiceninja_list_tasks | read | List tasks List tasks / time entries with their time_log, duration, rate and linked client, project and invoice. Invoice Ninja: GET /api/v1/tasks. |
invoiceninja_list_projects | read | List projects List projects with client, budgeted hours, task rate, current hours and due date. Invoice Ninja: GET /api/v1/projects. |
invoiceninja_list_recurring_invoices | read | List recurring invoices List recurring invoice schedules with frequency, next send date and remaining cycles. Read-only. Invoice Ninja: GET /api/v1/recurring_invoices. |
invoiceninja_create_client | write | Create a client Create a client, optionally with contacts. Give at least a name or one contact. Invoice Ninja: POST /api/v1/clients. |
invoiceninja_update_client | write | Update a client Update a client's details; only the fields you pass change. Passing contacts replaces the contact list. Invoice Ninja: PUT /api/v1/clients/{id}. |
invoiceninja_create_invoice | write | Create an invoice Create a DRAFT invoice for a client. It is not sent or emailed — use invoiceninja_mark_invoice_sent or invoiceninja_email_invoice afterwards. Invoice Ninja: POST /api/v1/invoices. |
invoiceninja_update_invoice | write | Update an invoice Edit an invoice; only the fields you pass change, but line_items (if passed) replace every existing line. Does not send anything. Invoice Ninja: PUT /api/v1/invoices/{id}. |
invoiceninja_mark_invoice_sent | write | Mark an invoice sent Mark a draft invoice as sent WITHOUT emailing it. This moves it out of draft and adds its amount to the client's balance. Invoice Ninja: GET /api/v1/invoices/{id}/mark_sent. |
invoiceninja_email_invoice | write | Email an invoice to the client OUTWARD-FACING: sends a real email with the invoice to the client's invited contacts, and marks the invoice sent. Cannot be unsent — confirm with the user first. Invoice Ninja: POST /api/v1/invoices/bulk with action=email. |
invoiceninja_create_quote | write | Create a quote Create a DRAFT quote (estimate) for a client. Nothing is emailed. Invoice Ninja: POST /api/v1/quotes. |
invoiceninja_convert_quote_to_invoice | write | Convert a quote to an invoice Convert a quote into a new invoice (the quote is marked converted and links to it). Returns the new invoice. Invoice Ninja: GET /api/v1/quotes/{id}/convert_to_invoice. |
invoiceninja_create_expense | write | Create an expense Log an expense, optionally tied to a vendor, client or project and flagged to be re-invoiced. Invoice Ninja: POST /api/v1/expenses. |
invoiceninja_create_task | write | Create a task / log time Create a task, optionally with logged time entries, for a client or project. Invoice Ninja: POST /api/v1/tasks. |
invoiceninja_create_project | write | Create a project Create a project for a client, with an optional hourly task rate, budget and due date. Invoice Ninja: POST /api/v1/projects. |
invoiceninja_usage_status | Usage status (free-tier meter) Report the caller's current free-tier usage this month: calls used, monthly limit, remaining, and whether the cap is reached. Read-only; does not count against the meter. | |
invoiceninja_upgrade | Upgrade to Pro (unlimited) Subscribe to the Pro plan for UNLIMITED Invoice Ninja tool calls (the free tier caps monthly usage). Choose monthly ($9/month) or yearly ($90/year — 2 months free) billing. Returns a Stripe Checkout link to open in your browser; after payment your account upgrades automatically. Read-only; does not count against the meter. |
| Plan | Price | Limit |
|---|---|---|
| Free | $0 | 100 tool calls / month |
| Proper user | $9/mo · $90/yr | Unlimited |
This is a Model Context Protocol endpoint — meant to be connected from an AI client, not opened in a browser. An invalid_token response at the URL is the auth gate working as designed; clients authenticate automatically.