Connect an agent
dvt is built agent-first: a dashboard is a versioned JSON spec, and the same API that powers the app is exposed to AI agents as an MCP server. Point Claude at it and you can design, build, and revise dashboards against your real warehouse data — by describing what you want.
The server
The MCP server speaks streamable HTTP at:
https://dvt-mcp.fly.dev/mcp
Authentication is a per-user dvt API key sent as a bearer token —
Authorization: Bearer dvt_live_…. The agent acts as the key's owner:
same role, same org, same permissions. There is no separate agent permission tier —
if you can't see a dashboard, neither can your agent.
Get an API key
Keys are minted by an org admin or owner via the REST API (a key-management UI is on the roadmap). The secret is shown once in the create response; dvt stores only its hash.
curl -X POST https://app.dvt.dev/api/v1/api-keys \
-H "Authorization: Bearer dvt_live_<an-existing-admin-key>" \
-H "Content-Type: application/json" \
-d '{"name": "claude-code"}'
For the very first key (nothing to authenticate the curl with yet): the endpoint also
accepts your signed-in app.dvt.dev session, so an
admin can mint it from the browser console while signed in —
fetch('/api/v1/api-keys', {method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({name: 'claude-code'})}).then(r => r.json()).then(console.log).
Treat dvt_live_* keys like passwords: environment variables or a secret
manager, never source control. Revoke a leaked key immediately with
DELETE /v1/api-keys/{id}.
Claude Code
claude mcp add --transport http dvt https://dvt-mcp.fly.dev/mcp \
--header "Authorization: Bearer dvt_live_..."
Any MCP client
For clients configured with a JSON file (e.g. a project-level .mcp.json):
{
"mcpServers": {
"dvt": {
"type": "http",
"url": "https://dvt-mcp.fly.dev/mcp",
"headers": {
"Authorization": "Bearer dvt_live_..."
}
}
}
}
What agents can do
- Build and revise dashboards — create, patch, and move dashboards, pages, and elements; every write is versioned and restorable.
- Query your data — SQL pushdown to your connected warehouse; only result rows leave it.
- Look things up — list dashboards and folders, read specs, browse revision history, check chart-type references.
The tool surface is derived from the same OpenAPI contract as the REST API — see the API reference for every operation and schema, or fetch the raw contract.
Try it
Once connected, ask your agent something like:
Build me a revenue dashboard from the orders table —
monthly trend, top 10 customers, and AOV by region.