Skip to content

MCP Server

The Framedash MCP Server is a Model Context Protocol server that gives LLMs direct access to Framedash telemetry data. It provides 12 read-only tools and 4 resources, enabling natural-language queries against your game analytics.

Add to your claude_desktop_config.json:

{
"mcpServers": {
"framedash": {
"command": "npx",
"args": ["-y", "@framedash/mcp-server"],
"env": {
"FRAMEDASH_API_KEY": "fd_xxx",
"FRAMEDASH_PROJECT_ID": "your-project-uuid"
}
}
}
}

Add to your VS Code settings:

{
"claude.mcpServers": {
"framedash": {
"command": "npx",
"args": ["-y", "@framedash/mcp-server"],
"env": {
"FRAMEDASH_API_KEY": "fd_xxx",
"FRAMEDASH_PROJECT_ID": "your-project-uuid"
}
}
}
}

Register the server with the claude mcp command:

Terminal window
claude mcp add framedash \
-e FRAMEDASH_API_KEY=fd_xxx \
-e FRAMEDASH_PROJECT_ID=your-project-uuid \
-- npx -y @framedash/mcp-server

Use a Full preset key to enable every tool (including raw SQL query), or a Read-only key for the non-SQL analytics tools.

Framedash also hosts a remote MCP server, so MCP clients that support remote servers and OAuth need no local install. Send requests to POST {origin}/api/mcp (default https://app.framedash.dev/api/mcp) over the Streamable HTTP transport. The endpoint is stateless: it uses no session IDs.

Authentication is OAuth 2.1 Bearer only; API keys are not accepted here. A 401 response carries a WWW-Authenticate header whose resource_metadata points at {origin}/.well-known/oauth-protected-resource, so a client that implements the MCP authorization spec can discover the authorization server and complete the OAuth flow on its own, including dynamic client registration. Tool calls run under the granted scopes and projects, exactly as on the REST API. GET and DELETE return 405. The raw SQL query tool is not available over the remote endpoint: it needs the data:admin scope, which OAuth tokens can never carry, so raw SQL stays with the stdio server and a Full API key.

The remote endpoint has a separate per-IP rate limit at its pre-auth entry point, in addition to the per-account plan rate limit. See Rate Limits in the API Overview for details.

Use the hosted endpoint as the zero-install alternative to the stdio server for MCP clients with remote-server and OAuth support. The stdio server (npx -y @framedash/mcp-server) remains the choice for API-key-based or local setups.

VariableRequiredDescription
FRAMEDASH_API_KEYYesAPI key with scopes required by the tools you use. The Full preset covers every MCP tool, including raw SQL query; the Read-only preset covers the non-SQL analytics tools.
FRAMEDASH_PROJECT_IDNoDefault project UUID
FRAMEDASH_BASE_URLNoAPI base URL (default: https://app.framedash.dev)
ToolDescriptionArguments
queryExecute a read-only SQL query against the ClickHouse events tablesql (string, required), project_id (uuid, optional), limit (int 1-1000, default 100)
ToolDescriptionArguments
get_dashboardProject KPIs (DAU, MAU, sessions, events)project_id (uuid, optional), days (7/14/30/90, default 30)
get_retentionCohort retention analysisproject_id (uuid, optional), days (7/14/30/90, default 30)
get_funnelEvent funnel analysisproject_id (uuid, optional), steps (string, required: comma-separated 2-8 event names), days (7/14/30/90, default 30)
get_insightsAggregated insights by dimensionproject_id (uuid, optional), metric (count/unique_players, required), group_by (string, required: event_name, platform, etc.), days (7/14/30/90, default 30), limit (10/20/50), event_name (string, optional)
get_heatmapHeatmap grid data for a mapproject_id (uuid, optional), map_id (string, required), cell_size (5/10/25/50, default 25), days (1/7/14/30, default 7), event_name (string, optional)
ToolDescriptionArguments
list_projectsShow projects bound to the API key(none)
get_project_statusProject health overview (event counts, last event time)project_id (uuid, optional)
list_mapsList maps in the projectproject_id (uuid, optional)
list_contentList content registry entriesproject_id (uuid, optional), type (string, optional)
ToolDescriptionArguments
list_alertsList alert rulesproject_id (uuid, optional)
get_alert_historyAlert trigger/resolve historyproject_id (uuid, optional), limit (int 1-100, default 50)

Data is also available as MCP resources via the framedash:// URI scheme:

URIDescription
framedash://projectsProjects bound to the API key
framedash://projects/{projectId}/mapsMaps with coordinates and bounds
framedash://projects/{projectId}/contentContent registry entries
framedash://projects/{projectId}/statusProject health and statistics

Once the MCP Server is configured, you can query your data in natural language:

PromptTool Used
”Show me DAU for the last 7 days”get_dashboard (days=7)
“Analyze the funnel from spawn to death”get_funnel (steps=“player_spawn,player_death”)
“Break down event counts by platform”get_insights (metric=count, group_by=platform)
“Show the FPS heatmap for my map”get_heatmap (map_id=…)
”Check recent alert history”get_alert_history