Labsco
MCP SERVER

MCP Invoice Express

by andreagroferreira

Portuguese invoicing end to end — invoices, estimates, transport guides, VAT rates, AT document sequences and monthly SAF-T export, all as tool calls.

Accounting, Invoicing & Bookkeeping
Summary
Built around Portuguese compliance, not translated into it.

The distinctions that make Portuguese invoicing painful are first-class here: AT-registered document sequences, regional VAT rates, devolution notes, and a SAF-T export that produces the XML for the monthly submission. The date handling is the small tell — you send ISO dates, the server converts to the Portuguese format the API wants, so nobody has to remember which layer expects which.

What it is

An MCP server over the InvoiceExpress API, built around Portuguese tax compliance. It covers the document types Portuguese law actually distinguishes — invoices, simplified invoices, receipts, credit notes, estimates, shipping and devolution guides — and handles the ISO-to-DD/MM/YYYY date conversion the API expects.

What you get
  • Invoice lifecycle: list with filters, create, read, update, email, generate the PDF, change state between draft, sent, final and canceled, fetch related credit notes and receipts, generate and cancel payment references, and produce payment QR codes — `invoice_list`, `invoice_create`, `invoice_send_email`, `invoice_generate_pdf`, `invoice_change_state`, `invoice_generate_payment`, `invoice_get_qrcode`
  • Clients with Portuguese fiscal details, searchable by name or by code, with their invoice history — `client_list`, `client_create`, `client_find_by_name`, `client_find_by_code`, `client_list_invoices`
  • Estimates and quotes with their own state workflow, PDF and email path — `estimate_create`, `estimate_change_state`, `estimate_send_email`
  • Transport documentation: shipping guides and devolution notes with state management and tracking QR codes — `guide_create`, `guide_change_state`, `guide_get_qrcode`
  • Tax and numbering: IVA rates including the Açores and Madeira regional ones, and document sequences registered with the Portuguese Tax Authority — `tax_list`, `tax_create`, `sequence_create`, `sequence_set_as_current`, `sequence_register`
  • Monthly SAF-T export in the XML format the tax authority requires — `saft_export`
  • Treasury: client balances, initial balance updates, regularizations, and recorded payments and reimbursements — `treasury_get_client_balance`, `treasury_create_movement`, `treasury_create_regularization`
  • A product and service catalogue with tax rates attached — `item_list`, `item_create`, `item_update`
Requirements

An InvoiceExpress account with API access, plus two environment variables: `INVOICEEXPRESS_API_KEY` and `INVOICEEXPRESS_ACCOUNT_NAME` — the account name is the subdomain in your InvoiceExpress URL, and the key comes from Settings > API Access. Node.js 18.0.0 or newer. Run it through `npx` as `@wizardingcode/invoiceexpress-mcp@latest`; `bunx` is the documented fallback if you hit ERR_MODULE_NOT_FOUND. `MCP_MODE=silent` reduces logging. The CLI accepts `--transport` for stdio, http or sse and `--port` for the HTTP modes.

Setup effort

One command plus a key — npx -y @wizardingcode/invoiceexpress-mcp@latest, then supply credentials