InvoiceyDocs
Connect & automate

MCP

Let compatible assistants use Invoicey through validated tools.

Invoicey exposes its invoicing tools over the Model Context Protocol, so an assistant that speaks MCP can look up companies, build invoices, issue them, mark them paid and email them.

MCP tools call the same handlers and validate against the same schema as the web app. The supported fields and rules stay aligned.

Connect

Streamable HTTP at https://invoicey.app/api/mcp. Create a personal key under Settings → API keys — see API keys.

{
  "mcpServers": {
    "invoicey": {
      "url": "https://invoicey.app/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Your key resolves to your user and binds every tool call to your default workspace (updated when you switch workspaces or change it under Settings → API keys).

Client-specific setup: Cursor · Claude Code.

The tools

ToolPurpose
lookup_businessARES lookup by IČO
search_businessARES search by company name
create_invoiceBuild, validate and render an invoice
list_invoicesSummaries, with status and displayStatus
get_invoiceOne invoice with its full payload
mark_invoice_paidRecord payment
send_invoice_emailEmail the PDF and ISDOC
list_presets · get_preset · save_preset · delete_presetManage presets

Full input and output shapes: MCP tool reference.

Presets

Presets are what make this safe enough to use.

Issuer presets hold a complete issuer — name, IČO, DIČ, address, bank account, VAT status. create_invoice takes a preset ID and injects the issuer server-side. The model never supplies the "from" party, so it cannot hallucinate your bank account onto an invoice.

Invoice template presets hold a partial draft — standard line items, VAT settings, payment defaults — merged underneath whatever the assistant specifies. Useful for a monthly retainer where only the period changes.

Save presets from the assistant once, then refer to them by name or ID.

Validation is not verification

The schema guarantees an invoice is well-formed, not that it is right. It cannot tell that the model billed 40 hours when you worked 4. Read what it produced — issuing and sending are the irreversible steps.

Try a complete request

Look up NFCtron by IČO. Using my "s.r.o." issuer preset, invoice them 40 hours of consulting at 1 800 CZK, due in 14 days. Return the draft for review; do not issue it yet.

Limitations

  • One workspace per key. A personal key binds to your default workspace; there is no per-call override. Change the default via the sidebar switcher or Settings → API keys.
  • No scopes. A key is full access to that workspace, including sending email.
  • No import tool. Historical import is web-only by design.
  • No unmark_invoice_paid. Web only.
  • MCP does not create issuers or clients. Those are managed in the web UI; MCP consumes them through presets.