Dashboards are great for visual exploration. But sometimes you just want to ask: "How much did I code today?" or "Does my sleep affect my productivity?" and get an answer in plain text. That is what the xeve MCP server does.
What Is MCP?
The Model Context Protocol is an open standard by Anthropic that lets AI assistants connect to external data sources. Instead of pasting data into a chat window, you configure a server once and the AI can query it directly. Claude Desktop and Claude Code both support MCP natively.
The xeve MCP server exposes your personal analytics as 9 tools that Claude can call. You ask a question in natural language, Claude decides which tool to call, and your data comes back formatted and ready for analysis.
The 9 Tools
- get_productivity_summary — total screen time, productive vs. distracted time, top categories, app switches
- get_app_usage — which apps you used, for how long, sorted by duration
- get_coding_summary — coding time by project and language
- get_health_summary — steps, active energy, sleep duration, heart rate from HealthKit
- get_music_history — Spotify tracks, top artists, total listening time
- get_github_activity — commits, PRs, reviews, lines changed, active repos
- get_correlations — statistical correlation between any two metrics (e.g., sleep vs. coding)
- get_daily_trend — day-by-day table of all metrics for spotting trends
- get_recent_sessions — your most recent app sessions with window titles
Every tool accepts optional from and to date parameters. "This week", "last month", "yesterday" — Claude translates your natural language into the right dates.
Setup: Two Minutes
For Claude Desktop, add this to your config:
{
"mcpServers": {
"xeve": {
"command": "npx",
"args": ["-y", "xeve-mcp-server"],
"env": {
"XEVE_ACCESS_TOKEN": "your-token"
}
}
}
}
For Claude Code:
claude mcp add xeve -e XEVE_ACCESS_TOKEN=your-token -- npx -y xeve-mcp-server
Get your access token from Settings → API Access on the xeve dashboard. That is it. No server to deploy, no Docker container, no configuration file.
Example Conversations
"How productive was I this week compared to last week?"
Claude calls get_productivity_summary twice — once for this week, once for last week — and compares the numbers. You get a plain-text comparison: screen time up 12%, productive percentage down 5%, coding time flat.
"Does sleep affect my coding output?"
Claude calls get_correlations with sleep_ms and coding_ms. You get the Pearson coefficient, sample size, and a plain-English interpretation: "Days with more sleep tend to have more coding time (moderate positive, r=0.52)."
"What did I work on today?"
Claude calls get_recent_sessions and get_coding_summary. You see your app timeline with window titles, plus a project-by-project coding breakdown.
Architecture: Supabase RPC Over Stdio
The MCP server is a lightweight Node.js process that communicates via stdio (standard input/output). It does not run an HTTP server — Claude launches it as a subprocess and exchanges JSON-RPC messages through pipes.
Under the hood, it uses your Supabase access token to call the same RPC functions the web dashboard uses: get_app_usage_summary, get_coding_summary, compute_correlation, and direct table queries for Spotify and GitHub data. Row-Level Security ensures you can only access your own data — the same security boundary as the dashboard.
Open Source
The MCP server is open source at github.com/xeveio/xeve-mcp-server and published on npm as xeve-mcp-server. It is 300 lines of TypeScript with two dependencies. Fork it, extend it, add your own tools.