Aptabase MCP Server
OfficialAptabase MCP Server
Unofficial TypeScript MCP server that lets AI agents (Cursor, Claude Desktop, etc.) query Aptabase analytics.
Aptabase has no public query API. This server wraps the same cookie-authenticated dashboard endpoints used by the web UI (/api/_apps, /api/_stats/*, /api/_export/usage). Those endpoints are undocumented and may change.
Security
APTABASE_AUTH_SESSION is a full dashboard login cookie. Anyone with it can read your analytics (and anything else that session can do in the Aptabase UI).
Store it only in local MCP config or a secret manager — never commit it.
Prefer a throwaway / limited account if your org supports one.
Rotate by signing out of Aptabase (or clearing the cookie) if it leaks.
Do not paste real cookies into issues, PRs, or chat logs.
Requirements
Node.js 20+
An Aptabase account (cloud US/EU or self-hosted)
A browser session cookie named
auth-session
Install (Cursor)
Clone and build:
git clone https://github.com/aptabase/aptabase-mcp.git
cd aptabase-mcp
npm installAdd to Cursor MCP settings (~/.cursor/mcp.json or project .cursor/mcp.json):
{
"mcpServers": {
"aptabase": {
"command": "node",
"args": ["/absolute/path/to/aptabase-mcp/dist/index.js"],
"env": {
"APTABASE_BASE_URL": "https://us.aptabase.com",
"APTABASE_AUTH_SESSION": "<paste-cookie-value>"
}
}
}
}For local development without building:
{
"mcpServers": {
"aptabase": {
"command": "npx",
"args": ["tsx", "/absolute/path/to/aptabase-mcp/src/index.ts"],
"env": {
"APTABASE_BASE_URL": "https://us.aptabase.com",
"APTABASE_AUTH_SESSION": "<paste-cookie-value>"
}
}
}
}Get the auth-session cookie
Log into Aptabase (
https://us.aptabase.com,https://eu.aptabase.com, or your self-hosted URL).Open DevTools → Application (Chrome) / Storage (Firefox) → Cookies.
Copy the value of
auth-session(not the name).Paste into
APTABASE_AUTH_SESSION. Cookies last up to ~365 days; refresh on 401.
Base URL
Deployment |
|
Aptabase Cloud (US) |
|
Aptabase Cloud (EU) |
|
Self-hosted |
|
Use the same host you logged into when copying the cookie.
Tools
Tool | Description |
| List apps for the authenticated account |
| Get one app by id |
| Key metrics (daily users, sessions, events, duration) |
| Time-series buckets |
| Top event names |
| Top countries |
| Top operating systems |
| Top OS versions |
| Top app versions |
| Top device models |
| Top regions |
| Custom props for a given |
| Recent/live sessions |
| Live geo points |
| Session timeline |
| Historical sessions |
| Monthly event counts |
Most stats tools accept:
appId(required)buildMode:release(default) ordebugperiodpreset orstartDate/endDate(ISO)Optional filters:
eventName,osName,appVersion,countryCode,deviceModel
Period presets
Same as the Aptabase dashboard: 24h, 48h, today, yesterday, 7d, 14d, 30d, month, last-month, 90d, 180d, 365d, all.
If neither period nor dates are provided, stats tools default to 24h.
Note: dailyUsers from get_metrics is average daily users for the window, not a multi-day distinct user total (Aptabase’s privacy model).
Example prompts
“List my Aptabase apps.”
“Show key metrics for app
<appId>over the last 7 days.”“What are the top events in the last 30 days for
<appId>?”“Break down properties for the
purchaseevent over the last 90 days.”“Show live sessions and then detail session
<sessionId>.”
Scripts
Script | Purpose |
| Install deps and build ( |
| Run with |
| Compile to |
| Run |
| Unit tests |
|
|
Notes
Read-only: does not create/update/delete apps or download bulk CSV exports.
Dashboard stats are rate-limited (~1000 req/hour); retry on
429.App Key (
A-US-…) is for ingestion only — querying needs theauth-sessioncookie.Not affiliated with Aptabase.
License
MIT