MCP server for WeFact

Stop typing
in WeFact.
Tell Claude what to do.

An MCP server that lets your AI assistant work directly with your WeFact administration. Local. No cloud middleman. Built by me for my own administration, now available for other WeFact users who want that same time back.

€197 per year or €497 one-off · 14 days' right of withdrawal

I use WeFact intensively for EASEO's administration. The repetitive tasks — monthly invoices, status checks, subscription changes — cost time without adding value. This MCP server solves that for myself. It runs stable enough that I share it with other WeFact users who recognise the same pattern.

No launch promo, no scarcity. One price, running locally, code available for self-audit.

Why this is different

Three reasons that matter.

Local — your API key stays on your machine

The MCP server runs locally, not in the cloud. Your WeFact API key stays on your machine — we never see it. No telemetry, no tracking, no phone-home. The AI client you choose (Claude, Cursor, or a local model via Ollama) does see the conversation content — for maximum control, combine this server with a local LLM.

  • Local-first architecture — no server in between
  • No telemetry or usage tracking in the MCP server
  • API key in your own .env, never in our database
  • Code available for self-audit (commercial licence)
  • Licence key = HMAC-signed proof of purchase, no runtime callbacks

Tested — not "hopefully it works"

We only build what we use ourselves in production. 18 automated tests, all green in CI. Every commonly used WeFact v2 endpoint has its own tool in the server (debtors, invoices, subscriptions, credit invoices, products); for the rest there's a generic escape hatch so you never get stuck.

  • 18 automated tests, run on every release
  • Error handling with retry and exponential backoff
  • Runs on a live administration — not only tested in a sandbox
  • Structured error messages so you know what's going wrong
  • Built-in pagination — works on administrations with 10,000+ debtors

Concrete, not promised

Monthly invoicing that used to take me 90 minutes now takes 5. VAT adjustment across all subscriptions: one instruction. Customer asks for invoice status: instant answer. That's what I measure for myself — what it delivers for you depends on your administration.

  • Monthly invoicing: one instruction instead of click-by-click
  • Check invoice status without opening the UI
  • VAT adjustment across all subscriptions in one instruction
  • Monthly report for the accountant without export fiddling
  • Register a new client from an email: dictation instead of copy-paste
Examples

What you can ask your AI.

No more UI needed. No more buttons. You dictate what needs to happen — Claude handles the rest.

List all outstanding invoices older than 30 days.

Claude fetches the list through the WeFact API and groups it by customer. An overview in seconds — no UI navigation, no manual filtering.

Create a draft invoice for customer DB10000 with the line "Monthly hosting" for €25.

Claude creates the invoice, asks for confirmation before sending, and gives you the invoice number back. You stay in control.

Which subscriptions expire next month?

Claude filters your subscription list and shows what needs action — so you never miss anything.

Mark invoice 2026010001 as paid today, payment method bank transfer.

Claude updates the status straight away. What takes four screens in WeFact is one sentence.

Under the bonnet

Commonly used endpoints + escape hatch.

Targeted tools for the most common operations, plus a generic escape hatch so you're never stuck if WeFact supports something that doesn't have its own tool yet:

  • list_debtors / get_debtor / create_debtor / update_debtor
  • list_invoices / get_invoice / create_invoice / send_invoice
  • credit_invoice / mark_invoice_paid
  • list_products / get_product
  • list_subscriptions / get_subscription
  • list_credit_invoices / get_credit_invoice
  • wefact_request — generic escape hatch for any WeFact endpoint

Field names match the WeFact docs 1:1. You can use the WeFact API documentation at developer.wefact.com directly — every parameter name matches.

Transparency

How your purchase works.

No opaque middleman. Four steps, all verifiable.

01

Order → Revolut

Your details and plan choice go through the form on this page to our server. We reserve a licence record (status: reserved) and create a Revolut order. You're redirected to the Revolut checkout page for the payment itself — we never see your card details.

02

Webhook → HMAC verification

After payment, Revolut sends an ORDER_COMPLETED webhook to our server. We verify the HMAC-SHA256 signature (its own signing secret per endpoint) and the timestamp (a 5-minute replay window) before anything happens to the licence. If verification fails: 401, no change.

03

Licence key → proof of purchase

We generate a key from your email address plus order ID, signed with our HMAC secret. Format: WFM-XXXX-XXXX-XXXX. The key is your evidence for support and for the EULA — no activation server, no runtime callback. The MCP server itself knows nothing about licences.

04

Welcome email → automatic

Right after webhook confirmation we send a welcome email with your key, installation instructions for Claude Desktop / Code and the licence terms. Not received within 10 minutes? Email nick@easeo.nl with your order confirmation.

The MCP server itself is open source: github.com/NickAldewereld/wefact-mcp — free to audit before you buy.

Installation

Up and running in 5 minutes.

01

Install

pip install wefact-mcp

One Python package. Runs on Mac, Linux and Windows.

02

Configure

WEFACT_API_KEY=...

Put your WeFact API key in an env var or in your MCP client config. Whitelist your IP in WeFact — done.

03

Start talking

claude mcp add wefact

One command for Claude Code. For Claude Desktop: edit the config file. Exact instructions are in the welcome email.

Licence

Two options.

Annual licence or perpetual licence. One fair price, no discount theatre.

Your details

Secure payment via Revolut · VAT is calculated automatically on the checkout page

Running more than WeFact?

Most businesses run three or four systems that don’t talk to each other. Which ones are worth connecting depends on how you work.

Frequently asked questions

FAQ.

What exactly is an MCP server?

Model Context Protocol is an open standard from Anthropic that lets Claude (and other AI assistants) talk to external systems safely. This MCP server translates Claude's instructions into WeFact API calls, on your own machine.

Does my data need to reach your servers?

No — not on the WeFact side. The MCP server runs locally on your own machine or VPS. We never see invoice data, customer details or API keys. What does leave your machine: the conversation itself, sent to the AI provider you choose (Claude, Cursor, or a local model). For maximum sovereignty, combine this with a local model via Ollama — then everything stays on your own machine.

What exactly is that licence key?

An HMAC-signed proof of your purchase. We calculate it at ORDER_COMPLETED from your email address plus the Revolut order ID, signed with our own secret. The MCP server itself does nothing with it — there's no licence server, no runtime validation, no activation flow that can break offline. The key is your evidence for support and for the commercial EULA in the welcome email.

Which clients support MCP?

Claude Desktop, Claude Code, Cursor, Zed, and growing. Any MCP-compatible client works — you simply configure the server in your client's config.

What if WeFact changes its API?

With the annual licence you get 12 months of updates. With the perpetual licence you get 12 months of updates included, then optionally €49 a year for continued updates. The version you have keeps working — even without an updates subscription.

How long does installation take?

5 minutes. `pip install wefact-mcp`, set your API key in an env var, and register the server with your MCP client. Setup instructions are in the welcome email.

Does this work if I'm not a developer?

Installation is copy-paste work. If you get stuck: email support is included. No Python environment and using Claude Desktop on Mac/Windows: that works too — instructions included.

Right of withdrawal?

Yes. 14 days' right of withdrawal under Dutch consumer law. If it doesn't work for you: email support@easeo.nl and we'll refund the amount.

Can I use this for more than one WeFact administration?

The licence is per person, not per administration. Managing three clients each with their own WeFact: one licence covers it.

For WeFact itself

Work at WeFact and want to offer this as an official integration or discuss a partnership? Email nick@easeo.nl.

Ready to let Claude handle your WeFact?

€197 per year or €497 one-off. 14 days' right of withdrawal.