---
title: AI tools (MCP)
description: Connect Claude Code, Cursor or another MCP client to read-only Dozenfold evidence for one store.
slug: mcp
---

# Connect your AI tools

Dozenfold exposes a read-only [Model Context Protocol](https://modelcontextprotocol.io) endpoint.
Your coding assistant can ask which storefront problems cost the most, open one problem's full
context and follow a shopper's session. It reads the same evidence as the dashboard.

Every key belongs to one store. MCP access is included in all plans.

## Create a key

1. Open **Settings → AI agents** as the store Owner.
2. Name the key after the tool or person that will use it, then create it.
3. Copy the key or the generated setup command. Dozenfold shows the key only once.

A store can have up to 10 active keys. Revoke a key on the same page when you stop using it. Requests
with a revoked key fail immediately.

## Add it to your tool

The endpoint is `https://app.dozenfold.com/mcp`. It uses streamable HTTP and a Bearer key.

**Claude Code**

```bash
claude mcp add --transport http dozenfold https://app.dozenfold.com/mcp \
  --header "Authorization: Bearer <your key>"
```

**Cursor and other clients with a JSON config**

```json
{
  "mcpServers": {
    "dozenfold": {
      "url": "https://app.dozenfold.com/mcp",
      "headers": { "Authorization": "Bearer <your key>" }
    }
  }
}
```

Keep the key out of version control. Treat it like any other read credential for your store data.

## Tools

All tools are read-only. None of them change the store, issue status or settings.

| Tool | Returns |
| --- | --- |
| `get_store_health` | Collection status, 7-day error activity and Core Web Vitals (p75). |
| `list_problems` | Open problems ranked by estimated revenue impact, with affected sessions, trend, release and suspected owner. Filter by `file`, `funnel_stage`, `release` or `kind`. |
| `get_problem` | One problem's technical cause, mapped stack, linked causes, shopper steps, where it happens, revenue impact and replays. |
| `list_problem_sessions` | Recent anonymous sessions that hit one problem. |
| `get_session_timeline` | One session's pages, actions, requests and errors, in order. |
| `compare_releases` | New, regressed and spiking problems and error rates around each release. |
| `verify_fix` | Whether one problem stopped after the release that shipped its fix. |

A good first prompt: *"Which storefront problem is costing us the most? Open it and tell me who can
fix it."*

**Working in your theme repo.** Ask *"Which Dozenfold problems come from assets/cart.js?"* The
assistant calls `list_problems` with `file`, which matches the end of the script URL. Problems from
bundled or source-mapped code match the deployed bundle name, not the original source file.

**After a fix ships.** Mark the release from CI (see [Releases](/docs/releases)), then ask *"Did
the fix in release v43 stop problem X?"* `verify_fix` compares occurrences after the release with
the same length of time before it. It reports `too_early` during the first 24 hours with no
occurrences, and its counts are not adjusted for traffic.

## Read the answers carefully

- **Revenue amounts are estimates.** They come from the same comparison as the dashboard. A problem
  seen in only a few sessions has no estimate. See [Revenue impact](/docs/revenue-impact).
- **The script owner says who can fix it.** `theme` is your code, `third-party` is an installed app
  or external script, `shopify` is the platform.
- **Original source needs source maps.** Without them, stacks stay minified. See
  [Source maps](/docs/source-maps).
- Responses include dashboard links to the same evidence.

## Limits

- 60 requests per minute per key. Further requests get `429` with `Retry-After: 60`.
- 10 failed authentication attempts per minute per IP address.
- Each tool call times out after 20 seconds. Long responses are truncated.
