> ## Documentation Index
> Fetch the complete documentation index at: https://docs.onboardme.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Connect a client

> Add the OnboardMe MCP server to Claude, ChatGPT, Claude Code, Cursor or your own tool.

The examples use the ANZ server. Replace it with your [region's URL](/mcp/regions) if your practice is in the UK or South Africa.

<Tabs>
  <Tab title="Claude">
    Works in claude.ai and Claude Desktop.

    1. Open **Settings → Connectors** and choose **Add custom connector**.
    2. Name it **OnboardMe** and enter `https://anzmcp.onboardme.app/mcp`.
    3. Choose **Connect**. You are sent to OnboardMe to sign in.
    4. Pick the practice and choose **Read-only** or **Read & write**, then approve.

    On Team and Enterprise plans, an owner may need to add the connector first.
  </Tab>

  <Tab title="ChatGPT">
    1. Add a custom connector (MCP server) in ChatGPT's connector settings.
    2. Enter `https://anzmcp.onboardme.app/mcp` and choose OAuth authentication.
    3. Sign in to OnboardMe, pick the practice and choose the access level.
  </Tab>

  <Tab title="Claude Code">
    ```bash theme={null}
    claude mcp add --transport http onboardme https://anzmcp.onboardme.app/mcp
    ```

    Then run `/mcp` in Claude Code and choose **Authenticate** to sign in with OnboardMe.
  </Tab>

  <Tab title="Cursor">
    Add the server to your Cursor MCP config (`.cursor/mcp.json` or the global one):

    ```json theme={null}
    {
      "mcpServers": {
        "onboardme": {
          "url": "https://anzmcp.onboardme.app/mcp"
        }
      }
    }
    ```

    Cursor opens the OnboardMe sign-in the first time it connects.
  </Tab>

  <Tab title="API key">
    For server-to-server tools and clients that can send headers. Use a practice API client, the same credentials as the [Partner API](/authentication):

    ```json theme={null}
    {
      "mcpServers": {
        "onboardme": {
          "url": "https://anzmcp.onboardme.app/mcp",
          "headers": {
            "X-OM-Auth-ID": "YOUR_CLIENT_ID",
            "X-OM-Auth-Key": "YOUR_CLIENT_SECRET"
          }
        }
      }
    }
    ```

    HTTP Basic (Client ID as username, secret as password) also works. Never put the secret in a shared or committed config file.
  </Tab>
</Tabs>

## Read-only connections

To expose only read tools, whatever the sign-in allows, add `?profile=readonly` to the URL:

```text theme={null}
https://anzmcp.onboardme.app/mcp?profile=readonly
```

Clients that can send headers can use `X-OM-Profile: readonly` instead. A smaller tool list also helps the assistant pick the right tool.

## Check the connection

Ask the assistant to *"validate my OnboardMe connection"*. It calls `auth_validate`, which returns the practice, whether writes are allowed, and the granted scope.

## Troubleshooting

| Problem | Fix |
| - | - |
| Sign-in page doesn't know your account | You are on the wrong region. Use the server for the region your practice signs in to. |
| The client rejects the server URL | Check the URL ends in `/mcp` with no trailing slash. |
| Write tools are missing | You chose **Read-only**, your role is read-only, or the URL has `?profile=readonly`. Reconnect with **Read & write**. |
| `403` on a tool | Your OnboardMe role doesn't allow that action. |
| `429 Too Many Requests` | Wait for the `Retry-After` time, then try again. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.