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

# Connectors

> Clickbase exposes its analytics over the Model Context Protocol (MCP) so AI agents can read your data and manage your sites through tools.

Clickbase exposes its analytics over the **Model Context Protocol (MCP)** so AI agents can read your data and manage your sites through tools. The connectors are the AI twin of the [REST API](/api/overview): they call the exact same server-side Actions and Resources, so a number a tool returns is the same number the dashboard and the REST API return.

## Two servers

The read/write split is by **server**, not by scope:

| Server     | URL                               | Tools | Purpose                                                                                                                                                                                               |
| ---------- | --------------------------------- | ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Reader** | `https://clickbase.so/mcp/reader` | 51    | Read-only. Analytics, sessions and journeys, events and errors, realtime, people, revenue, Stripe status, Search Console, annotations and site config. Safe for reporting, analytics and Q\&A agents. |
| **Writer** | `https://clickbase.so/mcp/writer` | 29    | Mutations. Site CRUD and config, goals and funnels, annotations, tracking toggles, session-replay deletion and the Stripe integration.                                                                |

A reporting agent connects the [Reader](/ai/reader); an agent that manages your account connects the [Writer](/ai/writer). Neither server exposes any resources or prompts — only tools.

## Authentication

Both servers are protected by **OAuth 2.1**, advertised via discovery and dynamic client registration (`Mcp::oauthRoutes()`). laravel/mcp advertises a single `mcp:use` scope — custom scopes are not used, which is why the read/write separation lives in *which server you connect*, not in the token's scope.

Tenancy is identical to the REST API: the same `team.token` binding applies. An OAuth token acts within its bound (or the user's current) team, fails closed with `403` if you leave that team, and can never reach another team's data. See [REST Authentication](/api/authentication) for the full binding rules.

**One token, both servers.** The single `mcp:use` token authorizes both the Reader and the Writer — the surface you reach is decided by which URL you connect, not by the token. **An active subscription is required:** a lapsed team is cut off from both servers (reads and writes alike), matching the web dashboard — every tool call returns an error until the subscription is restored.

## Referencing a site

Every tool that targets a site takes a `site` parameter that accepts either the site's **domain** or its **id**. A site not in your current team fails with a clear, AI-actionable message rather than a raw error.

## Connecting

Point your MCP client at a server URL and complete the OAuth flow. A typical client config:

```json theme={null}
{
    "mcpServers": {
        "clickbase-reader": {
            "url": "https://clickbase.so/mcp/reader"
        },
        "clickbase-writer": {
            "url": "https://clickbase.so/mcp/writer"
        }
    }
}
```

Connect only the Reader for read-only agents; add the Writer when the agent needs to make changes.

See the full tool reference for each server: [Reader tools](/ai/reader) and [Writer tools](/ai/writer).
