REST API & MCP
Everything the dashboard does goes through /api/v1 — there is no private
API. Two read surfaces:
REST — the typed query contract
POST /api/v1/query with a typed object:
{
"metric": "visitors",
"dimensions": ["country"],
"filters": [{"dimension": "project_id", "op": "eq", "value": "…"}],
"granularity": "day",
"period": {"start": "2026-06-01T00:00:00Z", "end": "2026-07-01T00:00:00Z"},
"compare_to": "previous_period"
}
Metrics and dimensions are validated against a hand-maintained registry —
never free-form SQL. Authentication: an org read key (ofx_read_…,
Authorization: Bearer header).
MCP — for your agents
The (read-only) MCP server is exposed at /mcp with the same read keys:
typed queries, funnels, retention, insights, alerts, annotations. See the
repository’s docs/mcp.md for the tool-by-tool detail.
Connect in one click
The dashboard gathers everything under Org settings → Connect to Claude: the endpoint, the key, and the paste-ready commands.
-
Claude Code — add the public marketplace, then install the plugin:
/plugin marketplace add ezeeFlop/claude-plugins /plugin install oriflux@sponge-theoryAt install time, enter the base URL (defaults to
https://api.oriflux.sponge-theory.dev) and yourofx_read_…read key. Already installed?/plugin marketplace update sponge-theoryfirst. -
Claude Desktop — double-click the
.mcpbbundle (mcp/mcpb/in the repo), or add a custom connector pointing at<base>/mcpwith theAuthorization: Bearerheader. -
Any other MCP client — the raw
mcpServersconfig:{ "mcpServers": { "oriflux": { "type": "http", "url": "https://api.oriflux.sponge-theory.dev/mcp", "headers": { "Authorization": "Bearer ofx_read_…" } } } }
No secret is baked in: the URL and key stay yours, entered at configuration time and sent only to your own instance.