MCP server
DataGauge speaks MCP. Point an agent — Claude, Cursor, Claude Code, anything that speaks the protocol — at one URL with your token, and it can read your metrics and list your apps directly. No install, no version to keep current: it's a hosted server, not a binary.
https://mcp.datagauge.dev/mcp
It is a read-only surface, by design. The two tools it exposes can read numbers and nothing else — there is no path through this server to send an event, create an app, or mint a key. A prompt-injected agent holding your credential can look, but it can never inflate what it's looking at. That's the trust stance applied to agents.
Auth
The server holds no credential of its own. Your token arrives per request as a Bearer token and is forwarded to the public API — the server mints, stores, and caches nothing.
Use a dg_live_ control token with the metrics:read
and apps:read scopes. It is org-scoped, so one token covers every app in
the organization. (An sk_live_ key works too, but it's scoped to a single
app — apps.list would only ever see that one.)
Tools
| Tool | Reads | Backs onto |
|---|---|---|
apps.list | your apps, their type, and whether each has received events | GET /v1/apps |
metrics.get | one metric for one app over a date window | GET /v1/metrics/{metric} |
The usual loop: call apps.list to get an app's public id, then pass that id
as metrics.get's project. metrics.get takes any metric the read API
serves (mau, dau, signups, revenue, mrr, volume, …) plus optional
date_from / date_to; event_count and event_series also need a name.
portfolio.summary is not in v1 yet — an agent composes it today by listing
apps and reading each. It lands as a first-class tool once the batched
portfolio surface is public.
Connect a client
For a native remote-MCP client, add the URL and your token as a Bearer
credential. For a client that speaks stdio, bridge it with
mcp-remote:
{
"mcpServers": {
"datagauge": {
"command": "npx",
"args": [
"-y", "mcp-remote", "https://mcp.datagauge.dev/mcp",
"--header", "Authorization: Bearer ${DATAGAUGE_CONTROL_KEY}"
]
}
}
}Set DATAGAUGE_CONTROL_KEY to your dg_live_ token. A missing or unscoped
token earns a clean 401/403 — the server never echoes the token back, in a
challenge or an error.