MCP server

Ask your analytics, in plain language.

Connect Claude Code, Cursor or your own agent to Wholetally. It reads your traffic, AI crawlers and revenue through read-only tools, and answers with your numbers.

Built for any MCP client, including

  • Claude
  • ChatGPT
  • Gemini CLI
  • Cursor
  • GitHub Copilot
  • Zed
  • Perplexity

Clients that send a bearer header (Claude Code, Cursor, mcp-remote) connect today. Claude.ai and ChatGPT connectors need OAuth sign-in, which follows later. Hover a name for setup details. Trademarks belong to their owners. Not affiliated.

Your agent wholetally MCPExample
You

Which AI assistants sent us visitors last week, and what did they read?

ai_traffic{ "site_id": "example-shop", "period": "7d" }read-only
"ai_referrals": [
  { "source": "chatgpt.com", "visitors": 312, "top_page": "/shirts/linen" },
  { "source": "perplexity.ai", "visitors": 118, "top_page": "/sizing" },
  { "source": "claude.ai", "visitors": 47, "top_page": "/shirts/linen" }
]
Agent

ChatGPT sent the most: 312 visitors, mostly to /shirts/linen. Perplexity followed with 118, mainly reading /sizing, and Claude sent 47.

  • chatgpt.com312
  • perplexity.ai118
  • claude.ai47
Example conversation with example data. The agent answers from the tool result.

What you can ask

Questions you’d open three reports for.

  • 01

    “Which pages did AI crawlers read most this month?”

    Hits per crawler and per page, training vs search vs user fetches.

    ai_traffic
  • 02

    “Compare the last 30 days with the 30 before.”

    Both periods side by side, with the change in percent.

    compare_periods
  • 03

    “Which sources led to payments in October?”

    Net revenue and orders per source, from Stripe (incl. iDEAL).

    revenue_by_source
  • 04

    “What were our top landing pages last week?”

    Pageviews and entries per page.

    top_pages
  • 05

    “How many visits came from the spring campaign?”

    Visits per channel, source and UTM campaign.

    sources
  • 06

    “Write this week’s summary for the team.”

    A plain-language summary built from computed facts.

    weekly_report

Tools

Nine tools, one write.

Your agent picks the tool, the server does the counting. Every answer starts from a real query.

ToolReturnsAccess
list_sitesThe sites this key can readRead
get_statsVisitors, pageviews, events and AI crawler hits, with a daily seriesRead
compare_periodsA period against the one before it, with the changeRead
top_pagesMost viewed pages, with entriesRead
sourcesVisits per channel, source and campaign, AI assistants includedRead
ai_trafficAI crawlers per page, and visitors referred by AI assistantsRead
revenue_by_sourceNet revenue per source from Stripe (incl. iDEAL)Read
get_funnelA funnel’s steps, conversion, drop-off and sources, against the period beforeRead
weekly_reportThis week against last week, in plain languageRead
add_siteAdd a site and get its install snippetWrite

Setup

Connected in a minute.

  1. Create a key in the dashboard: read-only, for one site or all.
  2. Add the server to your client with the snippet.
  3. Ask. Your agent finds the right tool.

Create keys under Account in the app. Claude.ai and ChatGPT connectors need OAuth sign-in, which follows later.

Terminal
claude mcp add --transport http wholetally https://api.wholetally.com/mcp \
  --header "Authorization: Bearer wt_…"
claude_desktop_config.json
{
  "mcpServers": {
    "wholetally": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://api.wholetally.com/mcp",
        "--header",
        "Authorization: Bearer ${WT_KEY}"
      ],
      "env": {
        "WT_KEY": "wt_…"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "mcpServers": {
    "wholetally": {
      "url": "https://api.wholetally.com/mcp",
      "headers": {
        "Authorization": "Bearer wt_…"
      }
    }
  }
}
Any MCP client
URL        https://api.wholetally.com/mcp
Transport  Streamable HTTP
Header     Authorization: Bearer wt_…

Privacy and security

Your agent sees counts, never people.

Read-only keys
A key reads your numbers. Only a key with the write scope can add a site, and nothing can delete.
Scoped per site
Give an agent one site, or all of them. Revoke a key and it stops working at once.
No personal data
There’s none to hand over: no cookies, no IP addresses, no visitor IDs. Only counts.
EU infrastructure
Collection and storage are planned on EU infrastructure. A model your agent calls (or in-app Ask via OpenRouter) is outside that.

Count the visitors you’ve been missing.

30-day free trial, no card needed. Create an account with your work email and add your first site.

Start 30-day trial