{"serverId":"mcp-registry/com.metricspot/seo-mcp","tools":[{"name":"get_audit","fixed":{"name":"get_audit","description":"Fetch a previously-run audit by id. Returns module scores (0-100), total score, all findings with severity, recommendation text, and links to the HTML report. Use this to poll a queued `run_audit` until `status: complete`. Requires an API key.","inputSchema":{"type":"object","required":["audit_id"],"properties":{"audit_id":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":118,"tokensAfter":118},{"name":"get_audit_pdf","fixed":{"name":"get_audit_pdf","description":"Return a signed download URL for the branded PDF report for a given audit id. If no PDF has been rendered yet, queues a render and returns `status: queued` — poll the same tool again, or fetch the URL directly once ready. Requires an API key.","inputSchema":{"type":"object","required":["audit_id"],"properties":{"audit_id":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":119,"tokensAfter":119},{"name":"get_organic_traffic","fixed":{"name":"get_organic_traffic","description":"If the user has linked GA4 + Google Search Console, return the 28-day organic traffic snapshot for an audit: session count, daily trend, top landing pages, top queries, and indexing health. Returns `connected: false` if Google is not linked. Cached 24h server-side. Requires an API key.","inputSchema":{"type":"object","required":["audit_id"],"properties":{"audit_id":{"type":"string","minLength":1}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":133,"tokensAfter":133},{"name":"list_audits","fixed":{"name":"list_audits","description":"List the user's audits (most recent first, deduplicated by URL). Returns `audit_id`, `url`, `status`, `total_score`, `created_at`. Default limit 24, max 100. Use the returned `audit_id` with `get_audit` for full findings. Requires an API key.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","maximum":100,"minimum":1}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":114,"tokensAfter":114},{"name":"run_audit","fixed":{"name":"run_audit","description":"Queue a full SEO + AI-readability audit (includes Core Web Vitals from Google PSI and organic traffic if Google is linked). Returns the audit envelope immediately with `status: queued` and an `audit_id`. Poll `get_audit` with the returned `audit_id` until `status` becomes `complete` (typical 10-30s). Counts against the user's plan allowance. Requires an API key as a Bearer token. Quota and per-domain cooldowns mirror the dashboard.","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","maxLength":2000}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":174,"tokensAfter":174},{"name":"run_audit_anonymous","fixed":{"name":"run_audit_anonymous","description":"Run a one-shot SEO + AI-readability audit on any public URL. Returns scores across 11 modules and ~90 checks, plus actionable findings with rule docs. Limited to 1 audit per IP per 24 hours — for higher volume, get an API key at https://app.metricspot.com/settings/api-keys and use `run_audit`. Synchronous: blocks until the audit completes. Does NOT include Core Web Vitals (use `run_audit` for full PSI scoring). No auth required.","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","maxLength":2000}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":175,"tokensAfter":175}],"toolsChanged":6,"tokensSaved":0,"todo":[{"tool":"get_audit","params":["audit_id"]},{"tool":"get_audit_pdf","params":["audit_id"]},{"tool":"get_organic_traffic","params":["audit_id"]},{"tool":"list_audits","params":["limit"]},{"tool":"run_audit","params":["url"]},{"tool":"run_audit_anonymous","params":["url"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}