Sign up via LLM

Estimated reading time: 6 minutes

You can create a clariBI account without opening a browser. Any spec-compliant MCP client (Claude Desktop, Cursor, ChatGPT custom GPTs, your own agent) calls two unauthenticated tools, register_account and verify_email, to provision a workspace.

The two-step flow

  1. Your LLM client calls register_account with your email, organization name, and accept_terms=true.
  2. clariBI emails a 6-digit verification code, valid for 10 minutes.
  3. You paste the code back into the LLM client.
  4. The client calls verify_email with the code and a password.
  5. clariBI creates your User and Organization on the 14-day Trial tier and returns:
    • An access token for the current conversation (valid 1 hour).
    • A long-lived MCP API key the client stores in its persistent config.

Step-by-step request shape

Step 1: register_account

POST /mcp/v1/
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "register_account",
    "arguments": {
      "email": "me@example.com",
      "organization_name": "Acme Analytics",
      "first_name": "Alex",
      "last_name": "Doe",
      "accept_terms": true
    }
  }
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [{"type": "text", "text": "A 6-digit verification code has been sent to me@example.com..."}],
    "isError": false,
    "structuredContent": {
      "pending_id": "8f1a2b3c-4d5e-6f7g-8h9i-0j1k2l3m4n5o",
      "email": "me@example.com",
      "expires_in_seconds": 600,
      "next_step": "verify_email"
    }
  }
}

Step 2: verify_email

POST /mcp/v1/
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "verify_email",
    "arguments": {
      "pending_id": "8f1a2b3c-4d5e-6f7g-8h9i-0j1k2l3m4n5o",
      "code": "428193",
      "password": "a-strong-password"
    }
  }
}

Successful response:

{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "content": [{"type": "text", "text": "Welcome to clariBI! Your Acme Analytics workspace is live on the 14-day Trial..."}],
    "isError": false,
    "structuredContent": {
      "access_token": "claribi_mcp_tok_...",
      "token_type": "Bearer",
      "expires_in": 3600,
      "scope": "dashboards:read reports:read data-sources:read usage:read analysis:run",
      "mcp_api_key": "claribi_mcp_...",
      "mcp_api_key_id": "...",
      "user_id": "...",
      "organization_id": "...",
      "tier": "trial",
      "next_steps": [
        "Paste the mcp_api_key into your LLM client's MCP server config",
        "Call list_data_sources to see what you can connect",
        "Sign in at https://claribi.com/app/login to upload data and manage settings"
      ]
    }
  }
}

What you get

ResourceTrial allowance
Duration14 days
AI credits50
Data sources3
Storage1 GB
Users1
OCR pages40
MCP server accessYes
MCP inbound integrations (Stripe, HubSpot, etc.)Yes

What you do not get via LLM signup

  • Stripe checkout. Payment requires a browser. After the Trial ends, your LLM client can call create_checkout_session to get a one-time URL you open in a browser to finish the upgrade.
  • Data source connection. For now, you connect data sources from the web app at claribi.com/app/data-sources. Credentials never pass through chat. The LLM can call list_data_sources to check what is connected.

Privacy and abuse mitigation

  • Verification codes are stored as SHA-256 hashes. The raw value exists only in the email body and in transit.
  • Pending registrations expire after 10 minutes.
  • After 5 incorrect verification attempts the pending row is locked. Start over by calling register_account again.
  • Public signup tools are rate-limited per IP (5 per hour in production). A botnet cannot enumerate addresses cheaply.
  • If the email is already a clariBI account, the response is generic on purpose. No enumeration oracle.

Next step

Wire the new API key into your client config: Claude Desktop, Cursor, or any spec-compliant client.