---
title: "MCP server · EenFactuurMaken.nl"
description: "Connect your AI assistant to EenFactuurMaken.nl with the MCP server. Create, check and send Dutch invoices in a chat with ChatGPT, Claude, Cursor, Gemini CLI or Copilot."
url: "https://eenfactuurmaken.nl/en/docs/mcp"
markdown_url: "https://eenfactuurmaken.nl/en/docs/mcp.md"
language: "en-GB"
---

# MCP server

Connect your AI assistant to EenFactuurMaken.nl with the MCP server. Create, check and send Dutch invoices in a chat with ChatGPT, Claude, Cursor, Gemini CLI or Copilot.

The **Model Context Protocol** (MCP) is an open standard that lets AI assistants work safely with other software. With EenFactuurMaken.nl's MCP server your assistant creates invoices, looks up customers, makes credit notes and sends reminders, right in a chat. All the Dutch rules are built in. The MCP server is included in every plan.

## Server URL

```text
https://eenfactuurmaken.nl/mcp
```

Transport: **Streamable HTTP** (stateless, POST only). There's nothing to install. If you open the URL in your browser you get an error (405): that's expected, only MCP apps can talk to it.

## Signing in: OAuth or API key

### OAuth (recommended for ChatGPT and Claude)

You only add the URL. Your app opens a EenFactuurMaken.nl window where you sign in and give permission. No key to copy.

- The app only gets access to the MCP server (scopes `invoices` and `offline_access`), not to the REST API.
- An access token is valid for 1 hour. The app renews it itself; that works for 60 days without signing in again.
- You get an email when an app is connected.
- You see connected apps under **Settings → API & AI → Connected apps**, and you disconnect them there.

### API key (for Claude Code, Cursor, VS Code and Gemini CLI)

Create a key under **Settings → API & AI** and send it as `Authorization: Bearer efm_…`. Handy for tools on your own computer. See [API keys and apps](https://eenfactuurmaken.nl/en/docs/security/api-keys).

## Setup per app

| App | Sign-in | Guide |
| --- | --- | --- |
| ChatGPT | OAuth | [ChatGPT](https://eenfactuurmaken.nl/en/docs/mcp/chatgpt) |
| Claude.ai and Claude Desktop | OAuth (or an API key in Desktop) | [Claude](https://eenfactuurmaken.nl/en/docs/mcp/claude) |
| Claude Code | OAuth or API key | [Claude](https://eenfactuurmaken.nl/en/docs/mcp/claude#claude-code) |
| Cursor | API key | [Cursor](https://eenfactuurmaken.nl/en/docs/mcp/cursor) |
| Gemini CLI | OAuth or API key | [Gemini CLI](https://eenfactuurmaken.nl/en/docs/mcp/gemini-cli) |
| GitHub Copilot in VS Code | API key | [VS Code](https://eenfactuurmaken.nl/en/docs/mcp/vscode) |

Using another app that supports MCP? Choose "Streamable HTTP" or "HTTP" as the transport and enter the server URL, with OAuth or the `Authorization` header.

## What can your assistant do?

24 tools, including: creating, updating, checking, issuing and emailing invoices; credit notes; customers and products; reminders; payments; download links for PDF and UBL; and your VAT figures per quarter. Plus ready-made prompts. The complete overview with examples is in [All tools](https://eenfactuurmaken.nl/en/docs/mcp/tools).

Your assistant can simply give amounts in euros ("85" or "85.50"); the server converts them to cents.

## Examples

> Create an invoice for Bakkerij De Gouden Korst: 12 hours of web design at €85 and a year of hosting for €120.

Your assistant creates a draft, checks it and shows the total (€1,379.40 incl. 21% VAT). It asks whether it may issue and email it.

> I did subcontracting work for Bouwbedrijf Pietersen, €2,500. VAT reverse charged.

It creates an invoice with reverse charge, asks for the customer's VAT number if it's missing and puts "Btw verlegd" on the invoice.

> Which invoices are overdue? Send a reminder for everything more than 14 days late.

It finds the outstanding invoices, shows them and sends the reminders after you approve.

> Invoice 2026-0012 was €200 too high. Credit that.

It creates a partial credit note of €200 that refers to 2026-0012.

You'll find more prompts in the [prompt library](https://eenfactuurmaken.nl/en/docs/prompts).

## Safety

- New invoices are always a **draft** first. Only `issue_invoice` gives them a number and locks them.
- Tools that send or finalise something are marked as such. Most AI apps ask for your approval first. Keep that turned on.
- Your assistant only sees your data, with your permissions and your plan's limits. It can't change payment details (IBAN and the like).
- Download links work for 15 minutes (up to 60) and only for that one invoice.
- Revoke an API key when you no longer use it, and disconnect apps you no longer use.

## Troubleshooting

| Message | Solution |
| --- | --- |
| 401 | The key or token is missing, revoked or expired. Check the header, or sign in again through your app. |
| 402 | This feature is part of Pro, or you've used your 5 free invoices this month. |
| 403 `insufficient_scope` | The OAuth token lacks the `invoices` scope. Connect the app again. |
| 405 in your browser | Expected: the server only accepts POST requests from an MCP app. |
| 429 | A few too many requests. Wait a minute. |
| The app shows no tools | Restart the app after changing the configuration, and check that the server is enabled in the app's settings. |

More in [Troubleshooting](https://eenfactuurmaken.nl/en/docs/troubleshooting#mcp).

Last updated on 13 October 2026
