---
url: https://simpledatalogs.com/docs/mcp.md
description: >-
  The simpledatalogs MCP server lets Claude, ChatGPT, Grok, Cursor and other AI
  assistants read your event counts and logs, and lets a coding agent set up
  projects and keys.
---

# MCP server

The simpledatalogs MCP server lets your AI assistant read your data. Connect it once, then ask in plain language:

> How many signups did the iOS app get this week, compared with last week?
>
> Show me the last 20 error logs from production.
>
> Which events grew the most in the last 7 days?

The assistant calls the server's tools, gets exact numbers from the same queries the dashboard uses, and answers. It never guesses a number.

## The server

| | |
|---|---|
| URL | `https://simpledatalogs.com/mcp` |
| Transport | Streamable HTTP, JSON answers (no SSE stream, no sessions) |
| Protocol | `2025-11-25`, `2025-06-18` and `2025-03-26` |
| Access | **Read-only**, and it reads only what you can. A [setup token](#setup-tokens-for-a-first-setup) can also create projects and keys |
| Plans | Starter, Pro and Scale. Organizations on Free are left out of every tool |

## Two ways to sign in

Which one you use depends on your client.

### OAuth, for chat apps

Claude (web, desktop and mobile), ChatGPT and Grok connect with OAuth. You paste the URL, and the app sends you to simpledatalogs to approve:

1. In the app, add a custom connector with the URL `https://simpledatalogs.com/mcp`.
2. Choose **Connect**. A simpledatalogs page opens; sign in if you aren't already.
3. Pick the organization the app may read, if you belong to more than one, and choose **Approve**.

That's it. The app now reads that organization's data on your behalf, read-only. See [Connecting clients](/mcp/clients) for each app's exact steps.

### A personal token, for coding tools

Claude Code, Cursor, the xAI API and your own scripts send a header instead. Create a personal token, `sdl_mcp_…`, and pass it as `Authorization: Bearer sdl_mcp_…`:

1. In the dashboard, open **Settings → MCP and agents** and choose **Manage tokens**.
2. Name the token, for example `Laptop agent`, and choose **Create token**. Creating one asks you to have signed in recently.
3. Copy it now: only a hash is stored. An **Install in your agent** dialog opens with the token filled into ready-made snippets for Claude Code, Cursor, VS Code, Codex, Windsurf, any other client and curl.

```sh
claude mcp add --transport http simpledatalogs https://simpledatalogs.com/mcp \
  --header "Authorization: Bearer sdl_mcp_…"
```

You can hold up to 10 tokens. Each one reads everything you can read.

### Setup tokens, for a first setup

Tick **Create a temporary setup token instead** when you create a token, and your coding agent can also set the app up for you: create the project, its environments and deployments, make an ingest key and write it to the project's `.env`. Ask it, for example:

> Set up simpledatalogs for this app: make a project, a key for production, and wire the SDK.

A setup token is deliberately narrow:

* It creates projects, environments, deployments and keys. It never edits or deletes anything, invites people, or touches billing, alerts or exports.
* It can revoke only keys it made itself, for example one that leaked.
* It expires 24 hours after you make it. Make another for the next setup.
* It makes at most 100 projects, 5 environments per project, 10 deployments per environment and 2 active keys per deployment, at 10 setup calls a minute. Your plan's own limits apply too, and every agent that uses the token shares them.
* Every setup answer carries `setup_budget` (`projects_left`, `environments_per_project`, `deployments_per_environment`, `keys_per_deployment`, `calls_per_minute`), and the server's instructions tell agents the limits before they start, so they plan instead of running into them.
* It works only where you can create: not as a viewer, and not in organizations on Free.
* Chat apps connected with OAuth never get it.

Each create takes an `idempotency_key`, so a retried call never makes a second project or key. Keys a setup token made show **via MCP** and the token's name on the environment's Deployments & keys tab.

::: tip Which should I use?
Use OAuth wherever the client offers it. Use a token for clients that only take headers, or for scripts. The two never mix: an OAuth token isn't a personal token, and the other way round.
:::

## What it can and can't read

The server reads events, log lines, totals and series for the environments you are a member of. It never reads existing ingest keys, billing or team settings, and only a setup token can create anything.

* Every answer is bounded: at most 90 days back and 100 rows.
* Each user can make 60 calls a minute; past that the server answers `429` with `Retry-After: 60`.
* Browsers may only call it from the dashboard's own origin. Agents and chat apps send no `Origin`, so they are unaffected.

## Revoking access

* **A chat app:** open **Settings → MCP and agents** in the dashboard, choose **Connected apps**, find the app, and choose **Disconnect**. Its tokens stop working at once. Removing the connector inside the app alone doesn't revoke it.
* **A personal token:** open **Settings → MCP and agents → Manage tokens** and revoke it. Any client using it gets `401` on its next call.
* Leaving an organization stops every read of it at once.

## Next steps

* [Connecting clients](/mcp/clients): step-by-step for Claude, ChatGPT, Grok, Claude Code, Cursor and others.
* [Tools reference](/mcp/tools): every tool and its inputs.
* [Coding agents](/agents/): have an agent add tracking to your app, then read the numbers back.
