# For AI agents

> Shipabase is built to be installed by a coding agent. Give it one prompt, it reads the rules, you review the diff.

Source: https://shipabase.dev/docs/ai-agents

## Let your agent do it

Paste this into Claude Code, Cursor or another coding agent:

```text
Add Shipabase analytics to this app using the @shipabase/js package.
Read node_modules/@shipabase/js/llms.txt first and follow it exactly.
1. Install @shipabase/js with this project's package manager.
2. Call init() once on the client at app startup, with the app key from an env var
   (NEXT_PUBLIC_SHIPABASE_KEY for Next.js, VITE_SHIPABASE_KEY for Vite, SHIPABASE_KEY for Node).
   In Next.js App Router, do it in a "use client" providers component inside useEffect,
   and wrap app/layout.tsx with it.
3. Find the 5–10 most important user actions (signup, core feature used, upgrade, etc.)
   and add trackEvent() calls named in snake_case object_verb form (e.g. project_created).
4. Props: only non-personal values (plan, count, duration, variant).
   NEVER emails, names, user IDs, IPs or free text typed by users.
5. Show me the list of events you added, then tell me to open the Shipabase dashboard
   Setup page to confirm the first event arrived.
```

## MCP server

Connect the Shipabase MCP server and your agent can create apps, check that the first event arrived and read your stats. You sign in once in the browser; disconnect an agent anytime in **Settings → AI agents**.

**Claude Code**

`Terminal`

```bash
claude mcp add --transport http shipabase https://api.shipabase.dev/mcp
```

Then type /mcp in Claude Code and sign in.

**Cursor**

`.cursor/mcp.json`

```json
{
  "mcpServers": {
    "shipabase": {
      "url": "https://api.shipabase.dev/mcp"
    }
  }
}
```

Then sign in from Cursor’s MCP settings.

**Gemini CLI**

`Terminal`

```bash
gemini mcp add --transport http shipabase https://api.shipabase.dev/mcp
```

Then run /mcp auth shipabase in Gemini CLI.

**Codex**

`Terminal`

```bash
codex mcp add shipabase --url https://api.shipabase.dev/mcp
codex mcp login shipabase
```

The login opens your browser.

## The rules your agent follows

The same rules ship inside the package at `node_modules/@shipabase/js/llms.txt`, so the agent works offline and with the exact version you installed.

| Rule |   |
| --- | --- |
| Install | Use the project’s package manager. |
| init once | On the client, at startup. Key from `NEXT_PUBLIC_SHIPABASE_KEY`, `VITE_SHIPABASE_KEY` or `SHIPABASE_KEY`, never hardcoded. |
| Name events | `snake_case`, `object_verb`, past tense. Constant strings. 5–15 events is typical. |
| Props | Max 20 keys. Values are string, number or boolean. No nesting. |
| Never | Personal data in props (emails, names, user IDs, IPs, tokens, free text). No cookies, localStorage or custom identifiers. The API masks what it detects, but don’t rely on it. |
| Verify | Open the dashboard **Setup** page: it shows the first event. |

## Point your tools at the docs

| URL | What it is |
| --- | --- |
| [/llms.txt](https://shipabase.dev/llms.txt) | The rules above, plus an index of every page |
| [/llms-full.txt](https://shipabase.dev/llms-full.txt) | All docs in one Markdown file, for context windows |
| `/docs/<page>.md` | Any page as plain Markdown: append `.md` to its URL |
| Copy as Markdown | Button at the top of every page |
