Developers

Connect claude.ai

Add Invoia as a custom connector in claude.ai.

Add Invoia as a connector and Claude can read your invoicing and propose changes to it. Nothing is written until you commit. The connector follows your account, so it works in the web app, the desktop app and mobile once it is added.

Add the connector

On a personal plan, open Customize → Connectors, click + → Add custom connector, and paste this URL:

https://invoia.io/api/mcp

Leave the Advanced settings OAuth fields empty. They exist for servers that hand out client credentials by hand; Invoia supports dynamic registration, so Claude registers itself.

Claude then opens an invoia.io sign-in and shows a consent screen listing the scopes it is asking for. Approve the ones you are willing to grant — you can withhold issuing and still get everything else.

On Team and Enterprise, an owner adds it first

An owner adds the connector once under Organization settings → Connectors → Add → Custom → Web. Everyone else then finds it in Customize → Connectors and clicks Connect to authenticate as themselves. Each member's grant is their own — scopes are not inherited from the owner.

Custom connectors are available on Free, Pro, Max, Team and Enterprise plans; a Free account is limited to one at a time. Anthropic's connector documentation has the current details if the menu has moved.

Verify it works

Ask for something read-only first. Claude should answer from live data, not from memory:

List my five most recent invoices with their status.

If the answer names real customers, the connection is live.

Note the my: reads answer from the work you are assigned to, and the answer says which view produced it and how many rows sit outside it. Widening to the whole account is something you ask for, and admins only — see Auth and scopes.

Then try a write

Register 12 hours for me on the Bredgade SEO retainer for July.

Claude calls plan_register_work, shows you what it intends to change, and waits. Only when you approve does it call commit. If it comes back with a question instead of a plan — which line you meant, whether those hours replace the total or add to it — answer it; the tool refuses to guess at anything that would write a wrong number.

Naming a colleague instead of yourself is an admin's move. If you are not one, the refusal says so and offers you me.

Use the prompts

The connector ships two prompts, which claude.ai surfaces from the connector's menu in the chat composer:

  • Set up invoicing from a contract — paste the terms, get a recurring series proposed, with any new products it needs.
  • Monthly close — walk the occurrences due this period, one approval at a time.

Both stop and show you a plan before anything is committed.

Troubleshooting

  • The connector asks you to sign in again — an access token lives ten minutes and refreshes silently; a refresh token lives thirty days. A connection you have not used in over a month will genuinely ask. If it asks repeatedly within a session, remove and re-add the connector.
  • Claude says it cannot do something — it is almost always a missing scope, and the tool is not merely blocked but absent, so Claude has no way to name what it is missing. Check what you approved in Auth and scopes. Re-adding the connector is how you grant more; there is no way to widen an existing grant in place.
  • The connector is listed but Claude never uses it — make sure it is enabled for the conversation, and say "using Invoia" once. Claude attaches connectors per conversation, not globally.
  • A name matches several rows — Claude will show you the candidates. Answer with the one you meant, or use ext:your-id.
  • You want to switch Invoia accounts — a connector is bound to the account you signed in with. Remove it and add it again; the sign-in is where the account is chosen.
  • Anything else — every failure the server returns carries a code and a next step, and Claude will usually relay both verbatim. Quote them when you ask for help.