invoice_listLABSCO 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
USE CASES
Issuing a compliant invoice from a conversation
Create the invoice against a client record with the right IVA rate, generate the PDF, and email it — then move it out of draft into a final state.
Meeting the monthly SAF-T deadline
Export the SAF-T file for a given month and year in the XML format the tax authority accepts.
Chasing what a client actually owes
Read the client's balance, list their invoices, and record the payment when it arrives.
Turning an accepted quote into work
Move the estimate through its workflow states, then raise the invoice and the shipping guide for delivery.
Setting up legal document numbering
Create the sequence, register it with the tax authority, and set it as the current one before issuing documents against it.
61 tools
Listed in project docs. Your client may show a different list.
invoice_createinvoice_getinvoice_updateinvoice_send_emailinvoice_generate_pdfinvoice_change_stateinvoice_get_related_documentsinvoice_generate_paymentinvoice_cancel_paymentinvoice_get_qrcodeclient_listclient_createclient_getclient_updateclient_find_by_nameclient_find_by_codeclient_list_invoicesestimate_listestimate_createestimate_getestimate_updateestimate_send_emailestimate_generate_pdfestimate_change_stateguide_listguide_createguide_getguide_updateguide_send_emailguide_generate_pdfguide_change_stateguide_get_qrcodeitem_listitem_createitem_getitem_updateitem_deletesequence_listsequence_getsequence_createsequence_set_as_currentsequence_registertax_listtax_createtax_gettax_updatetax_deleteaccount_getaccount_createaccount_updateaccount_create_for_existing_useraccount_update_at_communicationsaft_exporttreasury_get_client_balancetreasury_update_client_initial_balancetreasury_get_regularizationstreasury_create_regularizationtreasury_delete_regularizationtreasury_create_movementtreasury_delete_movementBEFORE YOU INSTALL
What to know first
Tools you get
61 tools named in the project's documentation.
Requires
- npx on PATH
- Node.js >= v18.0.0
- INVOICEEXPRESS_API_KEY in your environment
- INVOICEEXPRESS_ACCOUNT_NAME in your environment
Where it runs
All 8 documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
npx -y @wizardingcode/invoiceexpress-mcp@latestMCP Clients
Cursor, Windsurf, Cline, BoltAI
{
"mcpServers": {
"invoiceexpress": {
"command": "npx",
"args": [
"-y",
"@wizardingcode/invoiceexpress-mcp@latest"
],
"env": {
"INVOICEEXPRESS_API_KEY": "<YOUR_INVOICEEXPRESS_API_KEY>",
"INVOICEEXPRESS_ACCOUNT_NAME": "<YOUR_INVOICEEXPRESS_ACCOUNT_NAME>"
}
}
}
}VS Code
{
"servers": {
"invoiceexpress": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@wizardingcode/invoiceexpress-mcp@latest"
],
"env": {
"INVOICEEXPRESS_API_KEY": "<YOUR_INVOICEEXPRESS_API_KEY>",
"INVOICEEXPRESS_ACCOUNT_NAME": "<YOUR_INVOICEEXPRESS_ACCOUNT_NAME>"
}
}
}
}Claude Desktop
{
"mcpServers": {
"InvoiceExpress": {
"command": "npx",
"args": [
"-y",
"@wizardingcode/invoiceexpress-mcp@latest"
],
"env": {
"INVOICEEXPRESS_API_KEY": "<YOUR_INVOICEEXPRESS_API_KEY>",
"INVOICEEXPRESS_ACCOUNT_NAME": "<YOUR_INVOICEEXPRESS_ACCOUNT_NAME>"
}
}
}
}Zed
{
"context_servers": {
"InvoiceExpress": {
"command": "npx",
"args": [
"-y",
"@wizardingcode/invoiceexpress-mcp@latest"
],
"env": {
"INVOICEEXPRESS_API_KEY": "<YOUR_INVOICEEXPRESS_API_KEY>",
"INVOICEEXPRESS_ACCOUNT_NAME": "<YOUR_INVOICEEXPRESS_ACCOUNT_NAME>"
}
}
}
}Any MCP client — Windows
{
"mcpServers": {
"invoiceexpress": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"@wizardingcode/invoiceexpress-mcp@latest"
],
"disabled": false,
"env": {
"INVOICEEXPRESS_API_KEY": "<YOUR_INVOICEEXPRESS_API_KEY>",
"INVOICEEXPRESS_ACCOUNT_NAME": "<YOUR_INVOICEEXPRESS_ACCOUNT_NAME>"
}
}
}
}