mcpbeat Sign in

Staats MCP Server

by mrviolets Your server? Claim it
answering

Staats is answering right now. Last checked 14 min ago. It exposes 15 tools. Last commit 3 Sep 2026.

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

Uptime history 66 days of history · worst day 93%
66 days agonow
98.9%
Uptime 24h
90 of 91 checks
15
Tools
read from the server
532 ms
Response time
average over 24h
0
Stars
last commit 3 Sep 2026

Staats missed one check this week

Everything else answered, so this is steady rather than shaky. We check every 15 minutes, which is how a one-off gets told apart from the start of a pattern, and how you hear about the next one within the hour instead of from your users.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 14 min ago.

run in your terminal
claude mcp add staats --transport http https://api.staats.ai/functions/v1/mcp
Settings → Connectors → Add custom connector, then paste this address
https://api.staats.ai/functions/v1/mcp
~/.codex/config.toml
[mcp_servers.staats]
url = "https://api.staats.ai/functions/v1/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "staats": {
      "url": "https://api.staats.ai/functions/v1/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "staats": {
      "type": "http",
      "url": "https://api.staats.ai/functions/v1/mcp"
    }
  }
}

This endpoint answered with an authorization challenge. The server is running, and it signs you in through your browser: there is no API key to paste.

Available tools 15

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

site
create_site
Create a new site on this account and get its script tag. This connection already covers the new site: installing the script tag is the only setup the site needs. The response includes ready-made privacy policy wording: offer to add it to the site's privacy page (confirm with the owner before editing visitor-facing pages).
delete_site
PERMANENTLY delete a site and ALL its analytics data (every event and annotation). Irreversible. Confirm with the owner before calling; pass confirm: the site's exact domain.
get_site_context
What a site is and what the owner wants from it, plus its data-retention settings. Well-known keys: description, goals, audience, notes (open agenda items to check at session start and clear when handled), events (event name -> meaning), funnel (canonical conversion steps). Read this before making recommendations.
update_site_context
Save or amend what a site is for. Provided context fields are merged into the existing context (events merges per entry); a null value deletes its key. name/domain update the site record itself.
what
what_broke
Signs of visitors hitting problems in the period: JS errors the tracker captured (new_error, error_spike: each with a sanitized sample message, source, line, affected visitor count, and the nearest annotation, i.e. the deploy that most plausibly introduced it), plus behavioral friction: pairs of pages people bounce between without progressing (nav_loop) and pages reloaded repeatedly in quick succession (refresh_burst). Findings clear statistical floors, so an empty result is meaningful: nothing looks broken. Check it after every deploy. period: '7d' default.
what_changed
Notable movements in the period without scanning raw numbers: statistically unusual traffic days, referrer surges and first-time referrers, pages whose share of traffic jumped, alongside the annotations recorded in the same period. period: '7d' default.
annotations
list_annotations
Recorded deploy/change markers, newest first. period defaults to '90d'.
compare
compare_around
Before/after impact of a recorded annotation: visitors and pageviews in the N days preceding vs following it (window_days, default 7). The after-window is clamped to now. If the annotation recorded routes, the result also reports per-route pageviews before vs after. Wait a few days after shipping. If the result carries a note (truncated after-window, or a before-window not covered by available data), relay it and qualify the percentages as the note directs.
funnel
funnel
Ordered conversion funnel across up to 5 steps within the period. Each step is a pageview path ({kind:'path', value:'/pricing'}) or a custom event ({kind:'event', value:'signup'}); a visitor counts for step N only after completing step N-1. Visitor identity rotates daily for privacy, so journeys spanning multiple days undercount (strongest for same-visit conversion). If site context has a stored funnel, run those steps when asked how the site is doing and compare against the previous period.
journeys
journeys
The routes visitors actually take, grouped into identical sequences and counted, busiest first. Use this when you do NOT already know the steps: funnel measures a path you name, journeys discovers the ones you did not think to check. A step is a pageview path (/pricing) or a custom event marked with a leading # (#signup_click), so the moment of conversion appears in the route. Consecutive repeats are collapsed and only the first 10 steps define a route. contains filters to routes that include a given path or event: run it once with and once without to see what converting visitors do differently. Visitor identity rotates daily, so a route is one day of activity and describes a group, never a person.
overview
get_overview
Traffic pulse: visitor/pageview totals vs the previous period, top pages, top referrers, and a per-day series. period: relative like '24h', '7d' (default), '4w'. Includes quota status: if it is approaching, grace, or blocked, tell the owner plainly and include the upgrade link the result provides. Approaching quota is the moment to mention it while there is headroom.
portfolio
portfolio_overview
Visitors and pageviews for every site this account can use, owned and shared alike, with change vs the previous period, busiest first. Shared sites are flagged. period: '7d' default.
query
query
Break a metric down by a dimension with optional equality filters. Metrics: visitors, pageviews, events. Dimensions: path, referrer_domain, utm_source, utm_medium, utm_campaign, device, browser, os, country, name, day. period: '24h'/'7d'/'4w' style, or ISO from/to.
record
record_annotation
Mark a moment on a site timeline: a deploy, a content change, or a campaign start. Call this every time you ship a change to the site. ts defaults to now. Write a specific, present-tense description ("Shipped new pricing page hero", never "updates"), one annotation per meaningful change. When known, include commit and the routes the change touched so compare_around can also report before/after traffic scoped to those routes.
sites
list_sites
All sites on this account, with the public site codes used in their script tags and the ready-to-paste script_tag for each.

Endpoints

URLTransportStateLatencyChecked
https://api.staats.ai/functions/v1/mcp streamable-http sign-in 497 ms 14 min ago

Alternatives to Staats

same job, measured the same way
CheckMyApp
by sorokinvj

QA after every deploy: walks your live web app as a real user and tells your agent what broke.

answering
PreviewSend
by previewsend

Deploy a built website from your coding agent and share one client review link.

answering
Avalanche
by avakit

Act on Avalanche from your agent: scaffold a dapp, deploy a contract, mint, and read chain state.

106 installs/wk local only
DealDeploy
by dealdeploy

Instant answers from every document, spreadsheet, deck and contract your firm has saved.

answering
Taufunctions
by jyswee

Serverless functions for coding agents. Deploy, invoke, monitor. 13 tools, stdio or remote.

80 installs/wk 2 tools answering
Resilis
by resilis

Deploy local apps, add managed Postgres, and inspect logs from your AI coding agent.

answering
OxyPages
by oxypages

Create static websites and deploy HTML, CSS and JS to a live HTTPS link from your AI agent.

2 tools answering
Ownkube
by ownkube

Deploy and run apps, workers, jobs, Postgres, and Valkey on Ownkube from your coding agent.

answering

Staats — questions

Answers built from our own checks of this server.

What can Staats do?
It exposes 15 tools, read directly from the server on our last check. Among them: compare_around, create_site, delete_site, funnel, get_overview, get_site_context and 9 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is Staats mostly used for?
Its tools cluster around site and what. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is Staats working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 90 of 91 checks got a reply (98.9%), average response time 532 ms. The bar chart above shows every period we have measured.
How do I connect Staats?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address. You sign in through your browser once and the client keeps the session: no key to copy, and it refuses anonymous clients.
How do you sign in to Staats?
No API key is involved. Staats answers our knock with an OAuth challenge, so you authorise it once in your browser and the client keeps the session. That is also why we see no tool list: it will not describe itself to an anonymous client, and that is the server working as intended, not a fault.
How fast is Staats?
It answers our handshake in 532 ms on average, which is faster than 21% of all working MCP servers we measure. That is on the slow side — worth knowing if the tool sits inside an interactive loop. The comparison comes from our own checks across the whole registry, every 15 minutes.
Is Staats open source?
We cannot say either way: 0 stars on GitHub, but we could not determine the licence, and without one the code is not open source by default.