Home · Setup · Cursor

MCP Invoice in Cursor

Numbered invoices with tax lines, rendered to a PDF. It stores your business profile and clients, allocates numbers that never repeat, computes per-line rounding and several VAT rates in integer minor units, and renders an A4 PDF.

If you invoice per repository, .cursor/mcp.json inside the client project keeps that client's invoice server scoped to that project, which is the cleanest separation any of the six clients here offers.

What you get in Cursor

You sayTool
Invoice Acme for 12 hours at 90 EUR plus 300 EUR setup, 23% VAT, PDF.invoice_create then invoice_pdf
Which invoices are unpaid and overdue?overdue_report
Mark INV-2026-0007 as paid in full.invoice_mark_paid

In the audit run this issued INV-2026-0001: subtotal EUR 275.00, 23% VAT EUR 63.25, total EUR 338.25. The file on disk began with %PDF-1.3 at 2,495 bytes.

Install it in Cursor

The file is .cursor/mcp.json, and the key inside it is mcpServers.

ScopePath
This project only<project>/.cursor/mcp.json
Every project~/.cursor/mcp.json
{
  "mcpServers": {
    "invoice": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@theluckystrike/mcp-invoice"]
    }
  }
}

The Customize page shows the server and its tools once it has started.

The npm publish of @theluckystrike/mcp-invoice is pending; until then use the .mcpb bundle or a clone and build from the latest release.

No install: the hosted endpoint

The same server runs at https://mcp.zovo.one/mcp/invoice over MCP streamable HTTP, no install. Mint a free token with curl https://mcp.zovo.one/mcp/token, or use a Pro key. It has no filesystem, so a file comes back as a one-hour download link.

{
  "mcpServers": {
    "invoice": {
      "url": "https://mcp.zovo.one/mcp/invoice",
      "headers": { "Authorization": "Bearer <token>" }
    }
  }
}

Cursor notes worth knowing first

The current field table marks `type` as required, with `stdio` for a locally launched server, so write it out rather than relying on command and args alone. The other documented restriction is that `envFile` is stdio-only: a remote HTTP or SSE server does not read it, and its headers belong in the config.

Free: 3 invoices a month with a small footer line, overdue report included. Pro is $19 once, verified offline.

Questions

Project config or global config?

<project>/.cursor/mcp.json applies to that project and can be committed, which suits a server tied to one client. ~/.cursor/mcp.json applies everywhere. Both are managed from the Customize page.

Why does my stdio entry not start?

The current field table marks type as required, with stdio for a locally launched server, so include it. Pointing at a remote endpoint, envFile is documented as stdio-only and is not read.

Is there a one-click install link?

Servers in Cursor's marketplace get an Add to Cursor button. The deeplink reference currently documents prompt, command and rule links only, so for MCP Invoice pasting the config block above is the supported route.

Related

MCP Invoice in detail · The same server in Claude Code and VS Code · Every server in Cursor · Guides · Cursor docs