> LOADING MCP-INVOICE-EXPRESS...

MCP InvoiceXpress

Servidor MCP (Model Context Protocol) para a InvoiceXpress API V2. Permite que o Claude Code -- e qualquer outro cliente MCP -- opere a plataforma de faturacao portuguesa directamente: criar faturas, finalizar, enviar por email, gerar PDFs, registar pagamentos, exportar SAF-T, e muito mais.

Overview

O MCP InvoiceXpress e um servidor que implementa o Model Context Protocol (especificacao aberta para integracao de ferramentas com LLMs) para a InvoiceXpress API V2. Em vez de copiar valores manualmente para o dashboard, basta dar a instrucao em linguagem natural ao Claude Code -- por exemplo, "cria uma fatura para a Acme Lda no valor de €1230 + IVA, finaliza-a e envia por email para o cliente" -- e o servidor faz as chamadas correctas a API.

Stop pasting numbers into the dashboard. Diga ao Claude o que quer fazer e deixe-o fazer as chamadas certas.

Node.js 20+ TypeScript MIT License stdio MCP 25 Tools 3 Resources 2 Prompts npx -y

Compatibilidade

Funciona com o Claude Code e qualquer outro cliente MCP que fale stdio. O binario distribuido e mcp-invoice-express e e publicado em npm como @digitaldev-lx/mcp-invoice-express.

Instalacao em uma linha

Adicione o servidor ao Claude Code com um unico comando. Substitua your-account-subdomain pelo prefixo do URL do dashboard (ex: acme em acme.app.invoicexpress.com). Gere a API key em app.invoicexpress.com/users/api.

claude mcp add (recomendado)
bash
claude mcp add invoice-express \
  --env INVOICE_EXPRESS_ACCOUNT_NAME=your-account-subdomain \
  --env INVOICE_EXPRESS_API_KEY=your-api-key \
  -- npx -y @digitaldev-lx/mcp-invoice-express

Reinicie o Claude Code (ou use /mcp para verificar a ligacao) e os 25 tools ficam disponiveis.

Project-scoped install (.mcp.json)

Para versionar a configuracao num repositorio, coloque um .mcp.json na raiz e defina as env vars na sua shell:

.mcp.json
json
{
  "mcpServers": {
    "invoice-express": {
      "command": "npx",
      "args": ["-y", "@digitaldev-lx/mcp-invoice-express"],
      "env": {
        "INVOICE_EXPRESS_ACCOUNT_NAME": "${INVOICE_EXPRESS_ACCOUNT_NAME}",
        "INVOICE_EXPRESS_API_KEY": "${INVOICE_EXPRESS_API_KEY}"
      }
    }
  }
}

Manual install / outros clientes MCP

Qualquer cliente que fale stdio pode usar o binario directamente:

Stdio direct
bash
INVOICE_EXPRESS_ACCOUNT_NAME=acme \
INVOICE_EXPRESS_API_KEY=xxx \
npx -y @digitaldev-lx/mcp-invoice-express

Configuracao

As variaveis sao passadas via --env no claude mcp add ou no bloco env do .mcp.json.

Env var Required Default Descricao
INVOICE_EXPRESS_ACCOUNT_NAME Sim -- Subdominio da conta
INVOICE_EXPRESS_API_KEY Sim -- API key
INVOICE_EXPRESS_TIMEOUT Nao 15000 HTTP timeout em ms
INVOICE_EXPRESS_RETRY_TIMES Nao 3 Retries em 429/5xx (0 desactiva)
INVOICE_EXPRESS_RETRY_BACKOFF_MS Nao 1000 Base do backoff exponencial
INVOICE_EXPRESS_LOG_LEVEL Nao warn silent / error / warn / info / debug (stderr)

Multi-conta

O servidor usa uma conta por instancia. Para trabalhar com varias contas InvoiceXpress em paralelo, configure varios MCP servers com nomes diferentes:

Dois servers em paralelo
bash
claude mcp add ix-acme \
  --env INVOICE_EXPRESS_ACCOUNT_NAME=acme \
  --env INVOICE_EXPRESS_API_KEY=xxx \
  -- npx -y @digitaldev-lx/mcp-invoice-express

claude mcp add ix-otra \
  --env INVOICE_EXPRESS_ACCOUNT_NAME=otraempresa \
  --env INVOICE_EXPRESS_API_KEY=yyy \
  -- npx -y @digitaldev-lx/mcp-invoice-express

O que pode pedir ao Claude

Depois de instalado, basta falar com o Claude em linguagem natural. Exemplos reais:

"Lista as faturas em rascunho deste mes e diz-me o total."
"Cria uma fatura para a Acme Lda -- 4 horas de consultoria a €100/h mais 23% IVA. Finaliza-a e envia para finance@acme.pt."
"Marca a fatura 4523 como paga, transferencia bancaria de €1230 a 2026-05-15."
"Gera o XML SAF-T de Abril 2026 e guarda em ./saft.xml."
"Emite uma nota de credito contra a fatura 5012 no valor de €100 e envia por email."
"A fatura para o cliente ACM-001 ja foi paga?"

Tools (25)

O servidor expoe 25 high-level tools mais um raw fallback para o resto da API.

Documents (8)

Tool Funcao
create_invoiceCria fatura em rascunho (todos os tipos)
find_invoiceProcura por id
list_invoicesListagem com filtros
change_document_statefinalized / settled / canceled / deleted
email_documentEnvio por email
generate_document_pdfURL temporario de 24h (segunda via opcional)
register_paymentPagamento (codigos SAF-T)
list_related_documentsRecibos, devolucoes, etc.

Estimates (2)

create_estimateQuote / Proforma / FeesNote / Estimate
list_estimatesLista por tipo e estado

Guides (2)

create_guideTransport / Shipping / Devolution / Global
list_guidesLista por tipo e estado

Purchase Orders (2)

create_purchase_orderEncomenda a fornecedor
list_purchase_ordersLista com filtros

Clients (4) e Items (3)

create_clientAdicionar cliente
find_clientLookup por id / name / code / vat
list_clientsListagem paginada com pesquisa
update_clientPatch de campos
create_itemItem de catalogo
list_itemsListagem paginada
update_itemPatch de campos

Reference / config (3)

list_taxesImpostos configurados
list_sequencesSequencias de numeracao
list_accountsContas bancarias / caixa

Treasury & SAF-T (3)

list_treasury_movementsCash flow com filtros de data/conta
create_treasury_movementMovimento de entrada ou saida
generate_saftXML SAF-T para a AT

Raw fallback (1)

invoice_express_requestmethod, path, query?, body? para endpoints nao cobertos

Resources

Contexto read-only que o Claude pode anexar automaticamente quando precisar.

URI Conteudo
invoice-express://invoices/recent As 50 faturas mais recentes (JSON)
invoice-express://clients Os primeiros 100 clientes (JSON)
invoice-express://account Conta + sequencias + impostos + bancos

Prompts (workflow templates)

Templates de workflow para tarefas comuns. Em Claude Code, use /prompts para listar e seleccionar.

Prompt Use case
create_invoice_workflow End-to-end: localizar/criar cliente -> draft -> finalize -> email -> registar pagamento. Aceita client_hint, items_hint, send_email.
monthly_close_workflow Lista drafts de um periodo, finaliza com confirmacao, sumariza totais e gera SAF-T. Aceita year + month.
No Claude Code
bash
/prompts                          # browse available prompts
/prompts create_invoice_workflow  # use one

Erros

O servidor mapeia os codigos HTTP da InvoiceXpress para tipos de erro estaveis. Tool errors sao devolvidos com isError: true para que o Claude possa decidir entre retry, perguntar ao utilizador, ou expor a falha.

HTTP Mapped error Significado
401 AuthenticationError API key em falta ou errada
404 NotFoundError Documento / cliente nao existe
400 BadRequestError Payload malformado
422 ValidationError Erros field-level (fieldErrors: { name: [...] })
429 RateLimitError 780 req/min/conta excedido (retry automatico)
5xx ServerError Problema upstream da InvoiceXpress (retry automatico)

Verificacao

Apos a instalacao, abra o Claude Code e use o comando MCP para listar servidores ligados:

Verificar ligacao
bash
/mcp

Deve aparecer invoice-express como ligado, com 28 entries (25 high-level tools + raw + 2 prompts + 3 resources). Em seguida pergunte ao Claude:

"Usa o list_taxes para me mostrar as configuracoes de IVA da minha conta."

Se a chamada for bem sucedida, esta tudo a funcionar.

Troubleshooting

"INVOICE_EXPRESS_ACCOUNT_NAME is required"

As env vars nao foram passadas. Em claude mcp add, use --env KEY=VALUE. Em .mcp.json, defina-as na shell ou use valores literais.

"Authentication failed for InvoiceXpress"

Confirme que a API key do dashboard esta actualizada. Gerar uma nova revoga imediatamente a anterior.

"connection closed" / o processo termina

Corra o binario a mao com as mesmas env vars para ver o erro real. A primeira linha em stderr e a mensagem de falha.

Debug manual
bash
INVOICE_EXPRESS_ACCOUNT_NAME=demo \
INVOICE_EXPRESS_API_KEY=xxx \
npx -y @digitaldev-lx/mcp-invoice-express

Lista de tools vazia em /mcp

Aumente o timeout de boot: MCP_TIMEOUT=10000 claude e verifique novamente em /mcp.

Rate limit atingido

A InvoiceXpress permite 780 requests por minuto por conta. Operacoes em massa podem disparar 429 -- o servidor retenta com backoff exponencial (1s -> 2s -> 4s). Aumente INVOICE_EXPRESS_RETRY_TIMES se necessario.

$ npx -y @digitaldev-lx/mcp-invoice-express

A faturacao a uma instrucao de distancia.

Consulte o repositorio para a documentacao completa, issues e contribuicoes. Para integracao Laravel sem MCP veja o pacote complementar.

> COOKIE_CONSENT_REQUIRED

We use essential cookies for the site to work, and analytics cookies (Google Analytics) to understand how you use it. Analytics cookies are only enabled with your consent. Privacy Policy