Ask your AI assistant about your own traffic
DevDome runs a first-party MCP server. One URL and your API key connect Claude, Cursor, ChatGPT and every other MCP client straight to your live analytics - stats, bots, visitors and site health, in plain language. Nothing is installed and nothing is stored.
The server is a stateless proxy over your account at https://analytics.devdome.com/mcp. Every answer
comes straight from your live data, scoped to your API key. The same data is available as a
plain REST API.
Get your API key
One key per account, created under Account → API. It is
shown exactly once - copy it right away. Preferred transport is the
Authorization: Bearer header; clients that cannot send headers append
?key=YOUR_API_KEY to the URL instead (treat that URL as a secret).
Connect your client
Pick yours - each card is the complete setup.
Claude Code
TerminalOne command in your terminal:
claude mcp add devdome https://analytics.devdome.com/mcp \
-t http -H "Authorization: Bearer YOUR_API_KEY" Claude Desktop
Config fileSettings, Developer, Edit Config. Add this to claude_desktop_config.json and restart the app:
{
"mcpServers": {
"devdome": {
"url": "https://analytics.devdome.com/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
} Claude.ai (web)
In the browserSettings, Connectors, Add custom connector. The dialog cannot send headers, so the key rides in the URL:
https://analytics.devdome.com/mcp?key=YOUR_API_KEY Cursor
Config fileSettings, MCP, Add new global MCP server (or .cursor/mcp.json in a project):
{
"mcpServers": {
"devdome": {
"url": "https://analytics.devdome.com/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
} Windsurf
Config fileSettings, Cascade, MCP Servers (or ~/.codeium/windsurf/mcp_config.json - note serverUrl):
{
"mcpServers": {
"devdome": {
"serverUrl": "https://analytics.devdome.com/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
} VS Code (Copilot)
Config fileCommand palette, "MCP: Add Server", HTTP - or .vscode/mcp.json:
{
"servers": {
"devdome": {
"type": "http",
"url": "https://analytics.devdome.com/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
} ChatGPT
In the browserSettings, Connectors, Advanced, Developer mode, then Create connector. ChatGPT cannot send custom headers, so the key rides in the URL:
https://analytics.devdome.com/mcp?key=YOUR_API_KEY Zed
Config filesettings.json, context_servers:
{
"context_servers": {
"devdome": {
"source": "custom",
"url": "https://analytics.devdome.com/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
} Any other MCP client
TerminalPlain streamable HTTP, no OAuth, no session. Prove it works with curl:
curl https://analytics.devdome.com/mcp \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "content-type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' What it can do
Ten tools, each mapped 1:1 to a dashboard report. Time arguments default to the full history your plan retains.
| Tool | Arguments | What it answers |
|---|---|---|
list_sites | none | The sites on your account with verification status. |
add_site | domain | Add a website. Returns the tracking snippet; stays pending until verified. |
verify_site | domain | Verify a pending website (installed snippet or DNS TXT record). |
get_stats | site, days? | from?/to? | Headline KPIs vs the previous window. |
get_timeseries | site, days? | from?/to? | Daily traffic series in the site timezone. |
get_breakdown | site, dimension, days?, limit? | Top-N by pages, referrers, countries, devices, browsers, os, dates, keywords, products or redirects. |
get_bot_report | site, kind?, days? | Which bots hit the site and why they were flagged; kind "threats" = detection-category totals. |
get_realtime | site | Visitors active in the last 5 minutes with their current page. |
get_visitors | site, days?, limit? | Recent individual visits with step-by-step paths. |
get_site_health | site | Uptime, response times, TLS/DNS checks and incidents. |
Things to ask
Once connected, these all work out of the box:
- “How was my traffic this week compared to last week?”
- “Which pages got the most visitors this month, and which of them are broken?”
- “Which bots hit example.com yesterday, and how much of my traffic is bots?”
- “Where do my visitors come from - top referrers and countries for the last 90 days?”
- “Is anyone on my site right now? What are they looking at?”
- “Add newsite.com to my DevDome account and give me the snippet to install.”
- “Is my site healthy? Any downtime incidents this month?”
- “Write a weekly traffic report I can paste into Slack.”
Troubleshooting
The four things that ever go wrong, and their fixes.
- 401 invalid API key: the key was mistyped, revoked or rotated. Copy a fresh one from Account, API.
- 429 rate limit: 60 requests per minute per key. Assistants that fan out many tool calls can hit this; it resets within a minute.
- "not your site": the site argument must be a domain on THIS account, in punycode for international names (münchen.de = xn--mnchen-3ya.de). Ask the assistant to run list_sites first.
- Client cannot connect: the server answers POST with JSON-RPC only - no OAuth, no session. Verify with the curl example above, then check your client uses the HTTP transport.
Connect your assistant now
Create your API key, paste one config block, and ask about your traffic. Included on every plan, the free one too.