@metricspot/mcp-server
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).
- Hosted Streamable HTTP endpoint:
https://mcp.metricspot.com/mcp - Local stdio binary:
npx @metricspot/mcp-server - Agent guide: <https://metricspot.com/AGENTS.md>
Tools
| 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) |
Local install (stdio)
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.
Hosted (Streamable HTTP)
POST https://mcp.metricspot.com/mcp
Authorization: Bearer ms_live_xxx
Content-Type: application/json
{"jsonrpc":"2.0","id":1,"method":"tools/list"}
Env vars
| 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 |
Develop
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)
Deploy
Multi-stage Dockerfile produces a Bun runtime image. Independent Dokku app on the same Hetzner droplet as app/ and web/.
License
MIT












