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

# Connect a client

> Add the doola MCP server to Claude, ChatGPT, Perplexity, Cursor, Replit, Lovable, Vercel v0, or any MCP client.

The doola MCP server lives at one URL:

```
https://mcp.doola.com
```

In many clients **doola** is a searchable app or connector — find it by name. In others, paste the URL above. Either way, complete the OAuth sign-in, then prompt the agent: **"Create a US LLC for me."**

<Note>
  Every client uses the same OAuth flow: find or add **doola**, then sign in to your existing doola account (or create one) and authorize. New users sign up during the flow. See [Authentication](/mcp/authentication) for what happens under the hood.
</Note>

<Tabs>
  <Tab title="Claude">
    1. Open [Claude](https://claude.ai) → **Settings** → **Connectors**.
    2. Click **Add custom connector**.
    3. Enter **Name** `doola` and **MCP Server URL** `https://mcp.doola.com`.
    4. Click **Add connector**, then sign in to (or create) your doola account and complete the OAuth flow.
    5. Start a new conversation — the doola tools are available.

    <Note>Custom MCP connectors are available on supported Claude plans and workspaces.</Note>
  </Tab>

  <Tab title="ChatGPT">
    1. Open **ChatGPT** → **Settings** → **Apps** → **Browse Apps**.
    2. Search for **doola** and click **Connect**.
    3. Sign in to (or create) your doola account and complete the OAuth flow.

    doola is now connected and ready to use in ChatGPT.
  </Tab>

  <Tab title="Perplexity">
    1. Open your **Perplexity Pro** workspace → **Settings** → **Connectors**.
    2. Search for **doola** and click **+ Connect**.
    3. Sign in to (or create) your doola account, review the requested permissions, and complete the OAuth flow.
    4. You're redirected back to Perplexity — **doola** now appears in your connectors list.
  </Tab>

  <Tab title="Cursor">
    Add to `~/.cursor/mcp.json`:

    ```json theme={null}
    {
      "mcpServers": {
        "doola": {
          "url": "https://mcp.doola.com"
        }
      }
    }
    ```

    Restart Cursor. doola appears in the MCP panel with a **login / authorize** prompt — click it, sign in to (or create) your doola account, and complete OAuth. The tools then appear under **doola**.
  </Tab>

  <Tab title="Replit">
    1. Open your Replit workspace → **Settings** → **Integrations** → **MCP Servers for Replit Agent**.
    2. Search for **doola** and click **Sign in**.
    3. Sign in to (or create) your doola account and complete the OAuth flow.
    4. Return to Replit Agent — doola is available in conversations.
  </Tab>

  <Tab title="Lovable">
    1. Open your Lovable project → **Connectors** → **Add Custom Connector**.
    2. Select **Add MCP Server** and enter **Name** `doola`, **MCP Server URL** `https://mcp.doola.com`, **Authentication** `OAuth`.
    3. Click **Add & Authorize**, then sign in to (or create) your doola account and complete the OAuth flow.
    4. Return to your project — doola is available to the Lovable agent.

    <Note>MCP support is available on supported Lovable Pro and Teams workspaces.</Note>
  </Tab>

  <Tab title="Vercel v0">
    1. Open **v0** → **Settings** → **Integrations** → **Add MCP**.
    2. Select **Custom MCP Server** and enter **Name** `doola` and **MCP Server URL** `https://mcp.doola.com`.
    3. Choose **OAuth** as the authentication method and click **Add**.
    4. Sign in to (or create) your doola account and complete the OAuth flow.
    5. Start a new conversation — doola is available in v0.
  </Tab>

  <Tab title="curl">
    Every `POST /` requires a bearer token. Capture the `Mcp-Session-Id` header from `initialize` and echo it on every later request; attach `Authorization: Bearer <token>` to every call.

    **1. Authenticate.** A `POST /` without a token returns `401` with a `WWW-Authenticate` challenge pointing at the OAuth metadata — that's what bootstraps discovery. Complete the OAuth flow (authorization code + PKCE, or client credentials) to get a bearer token; MCP clients do this for you. See [Authentication](/mcp/authentication).

    **2. Initialize** (with the bearer — mints a session ID):

    ```bash theme={null}
    curl -i -X POST https://mcp.doola.com/ \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer <token>" \
      -d '{
        "jsonrpc": "2.0",
        "id": 1,
        "method": "initialize",
        "params": {
          "protocolVersion": "2025-06-18",
          "capabilities": {},
          "clientInfo": { "name": "my-client", "version": "0.1" }
        }
      }'
    ```

    **3. List tools** (echo the session ID + bearer):

    ```bash theme={null}
    curl -X POST https://mcp.doola.com/ \
      -H "Content-Type: application/json" \
      -H "Mcp-Session-Id: <uuid>" \
      -H "Authorization: Bearer <token>" \
      -d '{ "jsonrpc": "2.0", "id": 2, "method": "tools/list" }'
    ```

    **4. Call a tool** — start every session with `get_company_onboarding_status`:

    ```bash theme={null}
    curl -X POST https://mcp.doola.com/ \
      -H "Content-Type: application/json" \
      -H "Mcp-Session-Id: <uuid>" \
      -H "Authorization: Bearer <token>" \
      -d '{
        "jsonrpc": "2.0",
        "id": 3,
        "method": "tools/call",
        "params": { "name": "get_company_onboarding_status", "arguments": {} }
      }'
    ```
  </Tab>
</Tabs>

## What the agent does next

The `initialize` response includes an `instructions` block telling the agent how to drive the flow. From there the agent calls `get_company_onboarding_status`, then loops on `advance_company_onboarding`, following the `nextAction` and `nextActionInput` on each response. See the [end-to-end flow](/mcp/flow).
