Delivery
MCP server
What it is
A Model Context Protocol server, so Claude, Cursor, Codex or your own agent can read your analytics directly. One endpoint:
https://app.vitrus.dev/mcp
Authentication uses your normal session, and the server resolves which sites you may read before any tool runs.
Connecting
// .mcp.json or claude_desktop_config.json { "mcpServers": { "vitrus": { "url": "https://app.vitrus.dev/mcp" } } }
Tools
| Tool | Returns |
|---|---|
list_sites | Sites you can read. |
get_overview | Visitors, sessions, pageviews, bounce, duration, channels, pages, referrers. |
get_ai_traffic | AI referrals and AI crawlers, kept separate. |
get_digest | The plain-language summary with evidence ids. |
analyze_funnel | Ordered funnel; you can pass your own steps. |
get_retention | Cohort matrix, or the reason it is unavailable. |
get_web_vitals | Core Web Vitals (p75) and slowest pages. |
get_errors | JavaScript errors by message, page and browser. |
Every answer carries its evidence
This is the part that differs from other analytics MCP servers. Each metric comes back with the SQL that produced it, its parameters and the raw rows:
{
"metric": "visitors.unique",
"value": 40,
"query": "SELECT COUNT(DISTINCT visitor_id) ... bot_kind = ''",
"params": ["site-id", 1789003421000, 1789608221000],
"rows": [...]
}
A human reading a dashboard can sense when a number looks wrong. An agent cannot — it takes the number, writes it into a report, and the error propagates with full confidence. Returning the query lets the agent cite evidence, and lets you audit what it said afterwards.
It is read-only, deliberately. An agent cannot create, delete or reconfigure anything.
Analytics is a system of record; a record a model can write to stops being a record. A wrong read
produces a sentence you can catch — a wrong write silently corrupts the history you measure
against.