Odel
Staats

Staats

@mrvioletsUpdated 3 days ago

Cookieless web analytics your coding agent reads: traffic answers, deploy impact, what broke.

Server endpointStreamable HTTPNo authProbed

This is the third-party server itself — Odel doesn't run it. Hitting this URL directly talks straight to the upstream server with no auth or proxying. Connect through Odel to front it with managed auth.

Staats MCP Server

Listed on mcpservers.org

Cookieless web analytics your coding agent reads. No dashboard: your agent answers traffic questions, marks deploys, measures before and after impact, and flags errors and visitor friction, all over one MCP connection.

This is the public home of the hosted Staats MCP server. The server runs at Staats, there is nothing to install.

Connect

Sign in at staats.ai (free tier: 10,000 monthly events, 1 site, all tools). Your account view gives you a one-line connect snippet with your key embedded:

# Claude Code
claude mcp add --scope user --transport http analytics "https://api.staats.ai/functions/v1/mcp/YOUR_ACCOUNT_KEY"

Cursor, Windsurf, Codex, and raw URL snippets are in the MCP docs. Clients that prefer header auth can send Authorization: Bearer YOUR_ACCOUNT_KEY to https://api.staats.ai/functions/v1/mcp.

One connection covers every site on your account, current and future.

Tools

14 tools, including:

  • get_overview, query, funnel, journeys: traffic answers with statistical honesty
  • record_annotation, compare_around: mark deploys, measure before/after impact
  • what_changed, what_broke: notable movements, JS errors, and visitor friction, attributed to the nearest deploy
  • create_site, list_sites, site context tools: your agent sets up new sites itself

Unauthenticated connections get initialize and tools/list, so you can inspect the full tool surface before creating an account.

Tracking

One script tag per site, ~1.5 KB compressed, no cookies, no personal identifiers, no consent banner needed:

<script defer data-site="YOUR_SITE_CODE" src="https://www.staats.ai/s.js"></script>

Custom events via data-staats attributes or window.staats('event_name'). Passive JS error capture included on every tier.

Links