Start free

Connect your AI assistant

Ask Claude, ChatGPT, Cursor or any assistant that speaks MCP about your website: “How many visitors did we get last week?”, “Which pages do people from ChatGPT land on?”. It reads your own sites, read-only, with a key you can revoke at any time.

Read-only and aggregate only. Your assistant sees the same totals as your dashboard: visitors, pages, sources, countries, devices, campaigns. Never a visitor ID, IP address, user agent or single visit, because quietstats doesn’t keep them.

1. Create a read key (not needed for ChatGPT or Claude on the web)

In Settings → API keys, give the key a name (such as “Claude”), choose Read stats, and if you like limit it to one site. Copy the key: it starts qs_ and is shown once. One key per assistant makes it easy to revoke just that one later.

2. Connect your assistant

The MCP server address is https://quietstats.co.uk/mcp (Streamable HTTP). ChatGPT and Claude on the web sign in to quietstats instead of using a key (see below). Everything else sends your key in the Authorization header as Bearer qs_….

Claude Code

claude mcp add --transport http quietstats https://quietstats.co.uk/mcp \
  --header "Authorization: Bearer qs_…"

Claude Desktop

Settings → Developer → Edit Config, add this to claude_desktop_config.json, then restart Claude (needs Node.js):

{
  "mcpServers": {
    "quietstats": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://quietstats.co.uk/mcp", "--header", "Authorization:${QS_AUTH}"],
      "env": { "QS_AUTH": "Bearer qs_…" }
    }
  }
}

Claude (claude.ai and the Claude apps)

Customize → Connectors → Add custom connector. Name it quietstats and enter the URL https://quietstats.co.uk/mcp. Under Authentication choose Sign in now (or Sign in when needed), keep Use Claude’s published identity (or Register automatically), then Add. Claude opens quietstats: log in, choose which site it can read, and press Allow read-only access. No key to paste.

Cursor

Add to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):

{
  "mcpServers": {
    "quietstats": {
      "url": "https://quietstats.co.uk/mcp",
      "headers": { "Authorization": "Bearer qs_…" }
    }
  }
}

VS Code (Copilot agent mode)

Add to .vscode/mcp.json:

{
  "servers": {
    "quietstats": {
      "type": "http",
      "url": "https://quietstats.co.uk/mcp",
      "headers": { "Authorization": "Bearer qs_…" }
    }
  }
}

ChatGPT

On ChatGPT on the web: Plugins → + → Add custom MCP server. Name it quietstats, enter the server URL https://quietstats.co.uk/mcp, set Authentication to OAuth (it registers itself, so leave the client fields empty), tick the risk acknowledgement and Create as a plugin. ChatGPT opens quietstats: log in, pick the site, and press Allow read-only access. Then type @quietstats in a chat, or just ask about your stats.

Or a custom GPT with your API key: in the GPT builder, Configure → Actions → Create new action → Import from URL https://quietstats.co.uk/api/openapi.json, Authentication API Key, auth type Bearer.

Codex. In ~/.codex/config.toml, with your key in the QUIETSTATS_KEY environment variable:

[mcp_servers.quietstats]
url = "https://quietstats.co.uk/mcp"
bearer_token_env_var = "QUIETSTATS_KEY"

Any other MCP client

Use Streamable HTTP with the URL https://quietstats.co.uk/mcp and the header Authorization: Bearer qs_…. To check a key from a terminal:

curl -s https://quietstats.co.uk/mcp \
  -H "Authorization: Bearer qs_…" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

3. Ask about your site

Tools

ToolWhat it returns
list_sitesList the websites on this quietstats account (ID and domain). Use this first to find the site ID the other tools need.
get_summaryHeadline numbers for a site and date range: visitors, pageviews, visits, views per visit, bounce rate and average visit duration, each with the previous period and the change.
get_timeseriesVisitors, pageviews and other metrics per hour, day, week or month, for charts and trends.
get_breakdownTop values of one dimension, biggest first: pages (page), entry/exit pages, referrers (referrer), channels (channel: Search, Social, AI, Email…), AI assistants (ai), UTM campaigns (utm_campaign, utm_source, utm_medium…), countries, regions, devices, browsers, operating systems, screen sizes or on-site search terms.
get_overviewOne-call overview for a date range: the summary numbers plus the top 5 pages, sources (referrers), channels, countries, devices and UTM campaigns. Good first call for "how is my site doing?".
get_liveUnique visitors in the last 5 minutes, with the top pages and countries right now. Counts only.
get_custom_eventsCustom events and goals sent with quietstats events.js (e.g. Signup, Download): counts and unique visitors. property=name lists event names; prop or page needs name.
get_reportDeeper reports: pathways (where visitors go next from a page, exit rates), matrix (browser × device × OS), landing (landing pages by channel), groups (content groups / site sections), search_terms (on-site search) and engagement (scroll depth and engaged time per page).

Dates are in UTC. The tools take the same periods and filters as the Stats API; for full exports (every row, CSV) use the API directly.

Safety and limits