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
- Your LLM client calls
register_accountwith your email, organization name, andaccept_terms=true. - clariBI emails a 6-digit verification code, valid for 10 minutes.
- You paste the code back into the LLM client.
- The client calls
verify_emailwith the code and a password. - 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
| Resource | Trial allowance |
|---|---|
| Duration | 14 days |
| AI credits | 50 |
| Data sources | 3 |
| Storage | 1 GB |
| Users | 1 |
| OCR pages | 40 |
| MCP server access | Yes |
| 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_sessionto 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_sourcesto 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_accountagain. - 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.