Wraps MetricSpot's SEO and AI-readability engine in six MCP tools. The anonymous endpoint gives you a quick one-shot audit with no key, rate-limited to one per IP per day. Authenticated tools let you run full audits with Core Web Vitals via PageSpeed Insights, fetch results by ID, grab a branded PDF, list your audit history, and pull a 28-day organic traffic snapshot from GA4 and Search Console if you've linked Google. Ships as both a local stdio binary via npx and a hosted Streamable HTTP endpoint. Useful when you're building AI workflows that need to check on-page SEO, readability scores, or lighthouse metrics without leaving the chat context.
Model Context Protocol server for MetricSpot. Exposes 6 SEO + AI-readability audit tools to AI agents (Claude, ChatGPT, Gemini, Perplexity, Cursor, Zed, OpenClaw, custom bots).
https://mcp.metricspot.com/mcpnpx @metricspot/mcp-server| Tool | Auth | Description |
|---|---|---|
run_audit_anonymous | none | One-shot audit, 1/IP/24h, no Core Web Vitals |
run_audit | Bearer key | Full audit with PSI, returns audit_id |
get_audit | Bearer key | Fetch audit + findings by id |
list_audits | Bearer key | List the user's recent audits (max 100) |
get_audit_pdf | Bearer key | Signed URL for the branded PDF report |
get_organic_traffic | Bearer key | 28-day GA4 + GSC snapshot (if Google linked) |
Claude Code (~/.claude/mcp.json):
{
"mcpServers": {
"metricspot": {
"command": "npx",
"args": ["-y", "@metricspot/mcp-server"],
"env": {
"MCP_API_KEY": "ms_live_xxx"
}
}
}
}
Cursor (~/.cursor/mcp.json) and Zed use the same shape.
Omit MCP_API_KEY to only use run_audit_anonymous.
POST https://mcp.metricspot.com/mcp
Authorization: Bearer ms_live_xxx
Content-Type: application/json
{"jsonrpc":"2.0","id":1,"method":"tools/list"}
| Var | Default | Purpose |
|---|---|---|
PORT | 3000 | HTTP listen port |
APP_API_BASE_URL | https://app.metricspot.com | MetricSpot app API base (the dev/dev:stdio scripts override it to http://localhost:3000) |
APP_PUBLIC_BASE_URL | falls back to APP_API_BASE_URL | Used to build report_url |
MCP_INTERNAL_TOKEN | — | Service-to-service secret forwarded as X-MCP-Internal-Token |
MCP_API_KEY | — | (stdio only) User API key, sent as Authorization: Bearer to the HTTP layer |
bun install
bun run typecheck
bun test
bun run dev # Streamable HTTP on :3000
bun run dev:stdio # stdio loop (send JSON-RPC on stdin)
Multi-stage Dockerfile produces a Bun runtime image. Independent Dokku app on the same Hetzner droplet as app/ and web/.
MIT
MCP_API_KEYsecretYour MetricSpot API key (ms_live_...) from app.metricspot.com/settings/api-keys. Required for 5 of the 6 tools; omit to use only run_audit_anonymous (1 audit per IP per 24 hours, no auth).