# Connect claude.ai

> Add Tabba as a custom connector in claude.ai.

Source: https://www.tabba.io/developers/mcp/claude-ai

Add Tabba as a custom connector and Claude reads Tabba Sales as you and plans
changes to it. Nothing is written until you confirm a plan.

## Add the connector [#add-the-connector]

In Claude's settings, open the connectors page, add a custom connector, and
give it this URL:

```
https://www.tabba.io/api/mcp
```

Leave any OAuth client id and client secret fields empty. Those are for
servers that hand out client credentials by hand. Tabba registers clients
dynamically, so Claude registers itself.

Claude then opens Tabba in your browser. Sign in if you are asked to. The
consent page lists what Claude asked to be able to do and asks which company
it reaches. Pick the company and choose **Approve**.

> [!NOTE]
> **Each person approves for themselves**
>
> If your Claude organisation manages connectors centrally, an owner may have
> to add the connector before members can connect. Whoever adds it, each
> member then approves in their own browser and is connected as themselves:
> with their own role in Tabba, their own work, and the company they picked.
> Nothing is inherited from the person who added the connector.

Where the menus are, and which Claude plans offer custom connectors, is
Anthropic's to say and changes. Their own documentation of custom connectors
has the current steps.

## Verify it works [#verify-it-works]

Ask for something that only reads:

```
What work do I have open?
```

Claude should call `get_my_work` and answer from live data: your open lines,
grouped by customer or recurring series. If the answer names real customers,
the connection works.

Note the "I". A read answers from the work you hold a place on, and a list
opens by saying which view produced it. The whole company is an admin's to
ask for. See [Auth and scopes](/developers/mcp/auth).

## Then try a write [#then-try-a-write]

```
Add five hours for me on the Bredgade development line.
```

Claude calls `plan_register_work`, shows you what it would change, and waits.
Only when you confirm does it call `commit`. If it comes back with a question
in place of a plan (which line you meant, or whether the hours replace the
total or are added to it), answer it. The tool does not guess at anything
that would write a wrong number.

Both tools are offered to every member whose connection may write. Naming a
colleague in place of yourself is an admin's to do. A standard user who tries
is refused, and the answer says so.

## Use the prompts [#use-the-prompts]

The server comes with two prompts, which Claude offers alongside the
connector:

* **Set up invoicing from a contract.** Paste the terms and get the invoicing
  they call for put to you: the customer, a one-off invoice or a recurring
  series, and its lines. For an admin whose connection may write, it ends in
  one plan to confirm.
* **Monthly close.** Start from the work you still have outstanding, then
  review what is due this period and what it has earned.

Each is worded from the tools your connection has. Where the connection
cannot plan a step, the prompt says that nothing is written from there and
ends with what is left for a person to do.

## Troubleshooting [#troubleshooting]

* **Claude asks you to approve again.** An access token lives ten minutes and
  is refreshed without you. A refresh token lives thirty days, so a connector
  you have not used for a month asks again. It also asks again after you
  revoked access in Tabba, after your access to the company ended, and after
  the company was disconnected from its accounting system.
* **Claude says it cannot do something.** The tool is most likely not in your
  list, in which case Claude cannot name what is missing. A tool is absent
  when the connection's scope does not cover it or when it is an admin's and
  you are a standard user. The two tables in
  [Auth and scopes](/developers/mcp/auth) say which.
* **The connector is listed but Claude does not use it.** Check that it is
  enabled for the conversation, and name Tabba in your message once.
* **A name matches several records.** Claude shows you the candidates. Answer
  with the one you meant.
* **You want another company.** A connection reaches the one company you
  picked on the consent page. Connect again and pick the other one.
* **Anything else.** Every refusal the server answers carries a code and a
  next step, and Claude usually relays both. Quote them when you ask for
  help.

## Remove it [#remove-it]

Remove the connector in Claude, then revoke the access in Tabba: under
**Claude and other AI clients** on your profile settings, choose **Revoke
access**. That ends every AI client connection of yours, not only this one.
See [Auth and scopes](/developers/mcp/auth).
