DevDome Analytics

Website traffic, bot reports, realtime visitors and site health for your DevDome sites

Hosted MCP Server

npx add-mcp 'https://analytics.devdome.com/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

1URL, no install

10tools, from stats to site health

9clients documented below

0data stored on our side

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.

01

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).

02

Connect your client

Pick yours - each card is the complete setup.

Claude Code

Terminal

One command in your terminal:

claude mcp add devdome https://analytics.devdome.com/mcp \
  -t http -H "Authorization: Bearer YOUR_API_KEY"

Claude Desktop

Config file

Settings, 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 browser

Settings, 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 file

Settings, 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 file

Settings, 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 file

Command 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 browser

Settings, 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 file

settings.json, context_servers:

{
  "context_servers": {
    "devdome": {
      "source": "custom",
      "url": "https://analytics.devdome.com/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

Any other MCP client

Terminal

Plain 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"}'

03

What it can do

Ten tools, each mapped 1:1 to a dashboard report. Time arguments default to the full history your plan retains.

ToolArgumentsWhat it answers
list_sitesnoneThe sites on your account with verification status.
add_sitedomainAdd a website. Returns the tracking snippet; stays pending until verified.
verify_sitedomainVerify a pending website (installed snippet or DNS TXT record).
get_statssite, days? | from?/to?Headline KPIs vs the previous window.
get_timeseriessite, days? | from?/to?Daily traffic series in the site timezone.
get_breakdownsite, dimension, days?, limit?Top-N by pages, referrers, countries, devices, browsers, os, dates, keywords, products or redirects.
get_bot_reportsite, kind?, days?Which bots hit the site and why they were flagged; kind "threats" = detection-category totals.
get_realtimesiteVisitors active in the last 5 minutes with their current page.
get_visitorssite, days?, limit?Recent individual visits with step-by-step paths.
get_site_healthsiteUptime, 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.