MCP

Give your AI tools hands. The InvoiceJet MCP server lets Claude, Cursor, VS Code, Windsurf, Zed, and any Model Context Protocol client extract invoices and query your extraction results. "Extract this PDF and tell me the total" becomes a sentence, not an integration.

Connect

claude mcp add invoicejet \
  -e INVOICEJET_API_KEY=ijk_live_... \
  -- npx -y @invoicejetai/mcp

Tools

ToolDoes
extract_invoiceExtract a local file (file_path) or public URL (file_url); waits for the result by default. Uses quota. Optional idempotency_key: pass the key from an earlier error whose outcome was unknown to get the original result instead of a second extraction.
get_invoiceFetch one invoice by id.
list_invoicesQuery newest-first: status, source, vendor substring, paid/unpaid, overdue, amount range, due-date and created windows. Pages with starting_after.
list_vendorsVendors with invoice count, total billed, and last seen, highest spend first.
mark_invoice_paidMark a complete invoice paid (or unpaid).
set_invoice_tagSet or clear the entity/company tag.
request_approvalEmail an approve/reject request to a named approver (sends real email).
get_invoice_fileTime-limited download URL (1 hour) for the original source document.
retry_extractionRe-run extraction for a failed invoice; force=true re-runs a complete one.
account_quotaKey check (name, scope) + monthly quota.
list_eventsinvoice.completed / invoice.failed events since a time, with the full invoice. Pages with starting_after.
export_invoicesRender a CSV/JSON export (lines, xero, invoices, or vendors shape) of matching invoices.

Things to ask

Once connected, natural requests just work:

Prompts
Extract ~/Downloads/bayline-invoice.pdf and tell me the total and the due date.

Which vendors have we spent the most with?

What's unpaid and due in the next 14 days? Anything overdue?

Which invoices failed extraction since Monday?

Mark everything from Jetstream Supplies as paid.

Tag all the AWS invoices as "EngCo Cloud".

Find Jetstream invoice INV-2026-0042 and send it to sam@company.com for approval.

Notes

The server is a thin, zero-dependency wrapper over the REST API: same key, same quota, same invoice resource. Tools that change data or send email are annotated as writes, so clients that support MCP tool annotations can ask before running them. Everything an agent extracts lands in your InvoiceJet account for review, exports, and webhooks. Without INVOICEJET_API_KEY the server still starts and returns setup instructions from any tool call, so a missing key never breaks your MCP client's startup.

Timeouts & retries

Network errors, timeouts and 408/429/500/502/503/504 are retried twice by default, with jittered backoff and Retry-After honored. Each attempt times out after 20s for read, list and update tools, 60s for export_invoices, and 120s for extract_invoice uploads and waits.

Env varDoes
INVOICEJET_TIMEOUTPer-attempt timeout in seconds, for every tool call (replaces the defaults above).
INVOICEJET_MAX_RETRIESRetries per call. Default 2; 0 turns retries off.

extract_invoice always sends an Idempotency-Key, so retries never extract twice. If the outcome is unknown (a timeout or 5xx), the tool error includes the key; call again with idempotency_key set to it. Tool errors include the request id when the API sends one.