invoice-ninja-mcp-server
v1.0.0
Published
MCP server for Invoice Ninja - create invoices, manage clients, payments, quotes, and expenses
Maintainers
Readme
Invoice Ninja MCP Server
An MCP (Model Context Protocol) server for Invoice Ninja v5. Create invoices, manage clients, record payments, and more through Claude.
Features
26 tools across 7 categories:
System
test-connection- Verify API credentials and instance connectivity
Invoices (primary)
list-invoices- List/filter/search invoicesget-invoice- Get full invoice details with line itemscreate-invoice- Create draft invoicesupdate-invoice- Update invoice fields and line itemsdelete-invoice- Soft-delete invoicessend-invoice-email- Email invoices to clientsbulk-invoice-action- Mark sent/paid, archive, cancel, clone to quote
Clients
list-clients- List/search clientsget-client- Get client details with contactscreate-client- Create clients with contactsupdate-client- Update client detailsdelete-client- Soft-delete clients
Products
list-products- List products for line item referenceget-product- Get product details and pricing
Payments
list-payments- List payment recordsget-payment- Get payment detailscreate-payment- Record payments against invoices
Quotes
list-quotes- List quotesget-quote- Get quote detailscreate-quote- Create quotes (same structure as invoices)update-quote- Update quotesbulk-quote-action- Approve, convert to invoice, mark sent
Expenses
list-expenses- List expensesget-expense- Get expense detailscreate-expense- Create expense records
Configuration
You need two things:
- Invoice Ninja URL - Your Invoice Ninja instance URL (e.g.,
https://invoicing.coor your self-hosted URL) - API Token - Generate from Invoice Ninja: Settings > Account Management > API Tokens
Installation
Claude Desktop
Add to your Claude Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"invoice-ninja": {
"command": "npx",
"args": ["-y", "invoice-ninja-mcp-server"],
"env": {
"INVOICE_NINJA_URL": "https://your-instance.invoicing.co",
"INVOICE_NINJA_API_TOKEN": "your_api_token_here"
}
}
}
}Then restart Claude Desktop.
Claude Code
claude mcp add invoice-ninja \
-e INVOICE_NINJA_URL=https://your-instance.invoicing.co \
-e INVOICE_NINJA_API_TOKEN=your_api_token_here \
-- npx -y invoice-ninja-mcp-serverCursor
Add to .cursor/mcp.json in your project root (or ~/.cursor/mcp.json for global):
{
"mcpServers": {
"invoice-ninja": {
"command": "npx",
"args": ["-y", "invoice-ninja-mcp-server"],
"env": {
"INVOICE_NINJA_URL": "https://your-instance.invoicing.co",
"INVOICE_NINJA_API_TOKEN": "your_api_token_here"
}
}
}
}Development
Prerequisites
- Node.js >= 18
- pnpm
Setup
pnpm install
pnpm run buildWatch mode
pnpm run watchTesting locally
Create a .env file with your credentials (already in .gitignore):
INVOICE_NINJA_URL=https://your-instance.invoicing.co
INVOICE_NINJA_API_TOKEN=your_api_token_hereThen point your MCP config to the local build:
{
"mcpServers": {
"invoice-ninja": {
"command": "node",
"args": ["/path/to/invoice-ninja-mcp/dist/index.js"],
"env": {
"INVOICE_NINJA_URL": "https://your-instance.invoicing.co",
"INVOICE_NINJA_API_TOKEN": "your_api_token_here"
}
}
}
}Example Workflow
- "List my clients" ->
list-clients - "Create an invoice for Acme Corp with 10 hours of consulting at $150/hr" ->
list-clients(find ID) ->create-invoice - "Send that invoice" ->
send-invoice-email - "Mark it as paid" ->
bulk-invoice-actionwithmark_paid
License
MIT
