Analytics
your agent
can query.
Abner is a privacy-first analytics primitive for the LLM era. Drop a 2 KB script, connect Claude or Cursor over MCP, and ask your data anything.
│ pathname │ v │ pv │
├────────────────────────┼────┼─────┤
│ /dashboard/ │ 56 │ 550 │
│ / │ 44 │ 49 │
│ /live-feed/ │ 22 │ 43 │
│ /docs/mcp/ │ 14 │ 18 │
└────────────────────────┴────┴─────┘
A real conversation. No mockup.
// three steps
From zero to "hey claude, how did we do this week?" in five minutes.
Drop a tracker.
A 2 KB cookieless script. No consent banner. Works behind your own subdomain via Cloudflare.
<script defer
data-site="abc123"
src="https://www.abner.app/abner.js">
</script>
Connect your agent.
OAuth 2.1 with PKCE and dynamic client registration. Works with Claude Code, Claude Desktop, Cursor, and anything that speaks MCP.
# one command, browser opens for consent
claude mcp add \
--transport http \
abner https://mcp.abner.app/mcp
Query in plain English.
No SQL. No dashboard. The agent picks the right tool, joins what it needs, narrates the answer.
"Compare visitor trends across all my sites for the last two weeks and tell me which one's slipping."
// the surface
Four tools.
One scope.
Read-only.
Designed to be picked up by an LLM in one take. No knobs the model has to guess. Each tool returns structured JSON the agent can pivot, filter, or chart.
full reference →Every site the user can read, across every workspace.
Visitors, pageviews, sessions — grouped by any dimension, filtered by anything, over any preset window.
Active visitors in the last five minutes plus a stream of recent events.
LCP, FID, CLS, FCP, TTFB, INP — at the 75th percentile, exactly the way Web Vitals reports them.
// for builders
An engine, not a dashboard.
Abner doesn't try to be the last-mile UI. We collect the events and expose them through one well-designed API. You — or your favorite agent — build whatever the moment calls for.
// example
Scriptable end to end.
Every metric is one curl away. Pipe your analytics into cron jobs, CI checks, or a Claude session — no dashboard clicking required.
curl -H "Authorization: Bearer $KEY" \
api/v1/stats?period=7d | jq .visitors
// example
Hosting platforms.
Resell native analytics to your customers. Workspaces, OAuth, multi-tenant — all already there.
your.app/sites/:id/analytics
powered by abner
// example
Standalone agents.
A Slack bot that answers "how was last week?" every Monday. A weekly digest emailer. A dashboard your CEO actually opens.
cron + claude + abner
= weekly_brief()
# python — using mcp client
from mcp.client.streamable_http import streamablehttp_client
from mcp import ClientSession
async with streamablehttp_client("https://mcp.abner.app/mcp") as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
result = await session.call_tool(
"query_metrics",
{"site_id": site_id, "metrics": ["visitors"], "period": "7d"},
)
print(result.structuredContent)
// privacy
Built to be
boring to lawyers.
no cookies
No tracking cookies, no fingerprinting, no consent banner. The script doesn't set anything in storage.
no PII
Visitor identity is a daily-rotating salted hash. No raw IPs are stored. No emails, no names.
data lives in the EU and US
GDPR compliant by construction. CCPA compliant. SCCs available on request.
// next step
Spend an afternoon
building with us.
A free tier so you can try it. Real billing when you're ready. No surprises in between.