SEO Perception
Search Console, crawl and SEO to-dos, read-only inside Cursor and Claude.
Hosted MCP Server
npx add-mcp 'https://seoperception.com/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
// Umami tag: `/da` or `/da/…` only — `/dashboard` must stay English. (function () { var p = location.pathname; var tag = p === '/da' || p.indexOf('/da/') === 0 ? 'da' : 'en'; var s = document.querySelector( 'script[data-website-id="725dd9cf-2721-4981-bfe7-f3996b7d21d1"]' ); if (s) s.setAttribute('data-tag', tag); })(); // Prevent theme flash by setting theme before page renders (function () { const savedTheme = localStorage.getItem('theme'); const systemTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; const theme = savedTheme || systemTheme; document.documentElement.classList.toggle('dark', theme === 'dark'); })(); {"@context":"https://schema.org","@type":"FAQPage","mainEntity":\[{"@type":"Question","name":"What is an SEO MCP server?","acceptedAnswer":{"@type":"Answer","text":"An SEO MCP server lets Cursor or Claude read your stored Search Console data, crawl, and open Possibilities, then draft the next edit on a URL."}},{"@type":"Question","name":"Is MCP a separate dataset?","acceptedAnswer":{"@type":"Answer","text":"No. MCP reads the same weekly Search Console facts, crawl, and Possibilities list you already use in SEO Perception. There is no second copy of your site."}},{"@type":"Question","name":"Does SEO Perception MCP call Google Search Console live?","acceptedAnswer":{"@type":"Answer","text":"No. MCP tools read stored weekly Search Console facts and crawl evidence already collected in SEO Perception. Collection happens in the product sync, not inside the MCP tool call."}},{"@type":"Question","name":"Which MCP clients are supported?","acceptedAnswer":{"@type":"Answer","text":"Any MCP client that can call a remote HTTP endpoint with a Bearer token works, including Cursor, Claude Desktop, Claude Code, and VS Code with an MCP extension."}},{"@type":"Question","name":"Do I need a paid plan?","acceptedAnswer":{"@type":"Answer","text":"Yes. MCP personal access tokens and the POST /mcp endpoint require Starter, Pro, Business, or Enterprise. Create tokens under Account → MCP after upgrading."}}]} {"@context":"https://schema.org","@graph":\[{"@type":"Organization","@id":"https://seoperception.com/#organization","name":"SEO Perception","url":"https://seoperception.com/","logo":"https://seoperception.com/web-app-manifest-512x512.png?v=20260806","description":"SEO Perception connects Google Search Console and site crawls into a prioritized Possibilities queue so teams know what to fix next.","contactPoint":{"@type":"ContactPoint","contactType":"customer support","url":"https://seoperception.com/contact"},"sameAs":\["https://x.com/SEOPerception","https://www.linkedin.com/company/seoperception-com/","https://www.wikidata.org/wiki/Q141285025"\]},{"@type":"WebSite","@id":"https://seoperception.com/#website","url":"https://seoperception.com/","name":"SEO Perception","publisher":{"@id":"https://seoperception.com/#organization"}},{"@type":"WebPage","@id":"https://seoperception.com/mcp-integration#webpage","url":"https://seoperception.com/mcp-integration","name":"Your SEO to-dos in Cursor and Claude | SEO Perception","isPartOf":{"@id":"https://seoperception.com/#website"}},{"@type":"TechArticle","@id":"https://seoperception.com/mcp-integration#article","headline":"SEO Perception MCP","description":"Search Console, crawl, and your open SEO to-dos — inside Cursor and Claude.","mainEntityOfPage":{"@id":"https://seoperception.com/mcp-integration#webpage"},"publisher":{"@id":"https://seoperception.com/#organization"},"datePublished":"2026-08-04","dateModified":"2026-08-12"}\]}Your SEO to-dos in Cursor and Claude | SEO Perception /* Prevent theme flash by hiding content until theme is applied */ html:not(.dark) { color-scheme: light; } html.dark { color-scheme: dark; } /* Ensure smooth transitions */ * { transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease; }
English
🌙
SEO Perception
Your open SEO to-dos
Search Console, crawl, and your open SEO to-dos — inside Cursor and Claude.
SEO Perception already keeps the search data, the workspace, and a prioritized to-do list for every URL. MCP is how Cursor and Claude read that and draft the next edit.
- Weekly Search Console and the crawl, already stored
- The same pages and evidence you use in the product
- Possibilities: the to-do list, with the reason on each URL
See plans with MCP See example asks
You · MCP client
“Find the biggest losing keywords on /pricing and suggest concrete content changes to recover them.”
Tools called
get_page_diagnostics + search_queries
Stored evidence ticket
Stored evidence for /pricing
“pricing calculator”
Clicks down 42%. Position 8.4 to 14.1. Missing from H1 and body.
Open possibility
query-not-in-content (high)
Suggested next move
Add a “Pricing calculator” section and tighten the meta around those queries.
Ask once. Get evidence-backed edits.
Illustrative chats. The shape of what your MCP client can do once a token is connected. Real answers use your stored Search Console and crawl data.
Recover lossesPrioritize the weekPick a winner
You · MCP client
“Use SEO Perception to find the biggest losing keywords on /pricing and suggest concrete content changes to recover them.”
Copy prompt
Tools called
get_page_diagnostics + search_queries
Stored evidence ticket
Stored evidence for /pricing
“pricing calculator”
Clicks down 42%. Position 8.4 to 14.1. Not in H1 or body.
“enterprise seo pricing”
Impressions up. CTR 0.9% vs page avg 3.1%.
Open possibility
query-not-in-content (high)
Suggested next move
Add a short Pricing calculator section, mention enterprise packaging in an H2, and tighten the meta description around those queries.
No live Google call. Data from stored weekly GSC and crawl.
What the editor is reading
MCP is not a thinner SEO tool. It is the product you already use, opened from Cursor or Claude.
01
The data
Weekly Search Console facts, the crawl, and page history. Queries stay tied to the URL. MCP reads what is already stored. It does not call Google.
02
The workspace
The same pages, queries, and evidence you review in SEO Perception, including on the live page with the site overlay.
03
The to-do list
Possibilities is the prioritized list: what to do, on which URL, and why. MCP returns that list so the editor can draft the change.
Connect in minutes
Create a personal access token, point your MCP client at the endpoint, and start asking. Full guide: SEO Perception MCP docs.

Connect with OAuth or a token
Cursor and Claude can use OAuth (browser consent) when the client supports Connect. You can also create a personal access token under Account → MCP. Each secret is shown once. Store it as SEOPERCEPTION_MCP_TOKEN.
Sign in on a paid plan, then open Account → MCP.
Cursor
Add to ~/.cursor/mcp.json or project .cursor/mcp.json:
{
"mcpServers": {
"seo-perception": {
"url": "https://seoperception.com/mcp",
"headers": {
"Authorization": "Bearer ${env:SEOPERCEPTION_MCP_TOKEN}"
}
}
}
}
Copy
Other MCP clients
- URL:
https://seoperception.com/mcp - Authorization:
Bearer <your MCP token>
Claude Desktop, Claude Code, VS Code, and others use the same remote endpoint. If a client only supports local MCP, use that client’s remote or proxy option with the URL and token above.
Data boundary
- MCP never re-queries Google Search Console or URL Inspection.
- Answers use data SEO Perception has already collected for your sites.
- Your MCP client may send returned evidence to its model provider. Treat results as sensitive site analytics.
- Paid plans only (Starter, Pro, Business, Enterprise).
Tool status
Only Available tools appear in tools/list.

Available
Tool
Status
What it does
seoperception_list_sites
List sites
Available
List owned websites with stored GSC and crawl freshness.
seoperception_get_site_overview
Site overview
Available
Summarize stored search performance, leading pages, queries, and rank momentum.
seoperception_search_queries
Search queries
Available
Search and filter stored query evidence by content match, position band, impressions, landing page, CTR, and intent. Content filters use stored match rows only.
seoperception_list_opportunities
SEO opportunities
Available
List bounded, evidence-backed crawl and Search Console possibilities.
seoperception_find_cannibalization
Keyword cannibalization
Available
Find stored query conflicts and the deterministic preferred page.
seoperception_find_content_gaps
Content and snippet gaps
Available
Find stored low-CTR, missing-query, title/snippet, question, and refresh opportunities.
seoperception_suggest_internal_links
Internal-link suggestions
Available
Return stored destination and anchor opportunities without crawling or probing URLs.
seoperception_get_page_diagnostics
Page diagnostics
Available
Combine one page’s crawl metadata, stored GSC trends, top queries, and possibilities.
seoperception_find_content_decay
Content decay
Available
Detect sustained stored click and position declines from open refresh-candidate rows. An empty result means none are stored yet.
Planned
Tool
Status
What it does
seoperception_compare_periods
Period comparison
Planned
Compare explicit stored weekly periods with deterministic deltas.
seoperception_get_geo_breakdown
Country and device breakdown
Planned
Read stored country/device facts for Business and Enterprise sites.
seoperception_generate_report
Hosted report
Planned
Create a bounded, shareable analysis artifact.
Permanently excluded
Tool
Status
What it does
live_gsc_query_or_inspection
Live Google calls
Excluded
Direct GSC queries, URL Inspection, collection, and Google OAuth are permanently excluded.
mutations_and_refreshes
Mutations and refreshes
Excluded
Recrawls, indexing writes, issue updates, PSI refreshes, and LLM generation are excluded.
More prompts
Prefer observed evidence from tool results over invented recommendations.
-
List sites
“List my SEO Perception sites and tell me which data is freshest.”
-
Site overview
“Summarize the strongest gains and losses for my site using stored data.”
-
Search queries
“Find non-branded queries in positions 5–20 with at least 50 impressions that are missing from their landing page.”
-
SEO opportunities
“Show the highest-priority open SEO opportunities and explain the evidence.”
-
Keyword cannibalization
“Find keyword cannibalization and recommend which page should be preferred.”
-
Content and snippet gaps
“Find the biggest content and snippet gaps, then suggest rewrites that match the losing keywords.”
-
Internal-link suggestions
“Suggest internal links and natural anchor text for pages with ranking potential.”
-
Page diagnostics
“Diagnose /page1/ from crawl state, top queries, and opportunities, then tell me what to rewrite first.”
-
Content decay
“Which pages show meaningful content decay?”
Rate limits
POST /mcp: 60/min per IP before auth, 120/min per token after.- Tool calls: 30/min per user, token, and site combination.
- Token creation: 5 attempts per user per hour.
Security
Personal tokens, not passwords
Never put your login password or session cookie in an MCP client config. Manage tokens under Account → MCP.
Troubleshooting
- 401: create a new token in Account → MCP and update the env var.
- 403 paid_plan_required: upgrade, then create a token.
- 429: wait for the retry time in the response.
- 406: send
Accept: application/json, text/event-stream. - Empty lists usually mean no stored data yet for that site.
Common questions
What is an SEO MCP server?
An SEO MCP server lets Cursor or Claude read your stored Search Console data, crawl, and open Possibilities, then draft the next edit on a URL.
Is MCP a separate dataset?
No. MCP reads the same weekly Search Console facts, crawl, and Possibilities list you already use in SEO Perception. There is no second copy of your site.
Does SEO Perception MCP call Google Search Console live?
No. MCP tools read stored weekly Search Console facts and crawl evidence already collected in SEO Perception. Collection happens in the product sync, not inside the MCP tool call.
Which MCP clients are supported?
Any MCP client that can call a remote HTTP endpoint with a Bearer token works, including Cursor, Claude Desktop, Claude Code, and VS Code with an MCP extension.
Do I need a paid plan?
Yes. MCP personal access tokens and the POST /mcp endpoint require Starter, Pro, Business, or Enterprise. Create tokens under Account → MCP after upgrading.
Guides for MCP SEO workflows
This page covers setup, tokens, and the tool catalog. The posts below explain workflows, comparisons, and how to run SEO from Cursor with stored evidence.
- What is an SEO MCP server?
- Google Search Console MCP: live API vs stored evidence
- 7 SEO workflows from Cursor with MCP
- Turn GSC queries into content briefs with MCP
- Find keyword cannibalization with an AI agent and MCP
Ready to write from real search data?
Yes. MCP is included on every paid plan. Create a personal token under Account → MCP, add the config from the Connect in minutes section, and paste one of the example prompts above.
Stay in the loop
The Insight newsletter
Weekly SEO teardowns, algorithm update alerts, and performance tactics, when we publish them.
Your name Email address Join the network
We respect your privacy: we do not sell your email or spam you.
SEO Perception
We take all the dry, technical SEO data nobody wants to read, connect the dots with AI and decades of SEO expertise, and show you the fixes that matter most plus the opportunities with the biggest upside.
Product
- Features
- SEO Possibilities
- Today’s Focus
- Site Overlay
- GSC workspace
- AI discoverability
- SEO Perception MCP
- Page SEO scan
- Free SEO tools
- JSON-LD generator
- Pricing
- Dashboard
Company
Google, PageSpeed, and PageSpeed Insights are trademarks of Google LLC. SEO Perception is not endorsed by or affiliated with Google. We use Google’s public PageSpeed Insights service because we find it useful for site owners.
© 2024 - 2026 SEO Perception. All rights reserved.
Built with love by Larsik Corp.
{ __sveltekit_15maqpl = { base: new URL(".", location).pathname.slice(0, -1), env: {"PUBLIC_API_BASE_URL":"https://seoperception.com","PUBLIC\_CLARITY\_PROJECT\_ID":"w3zg98vuwz"} }; const element = document.currentScript.parentElement; Promise.all([ import("./_app/immutable/entry/start.DN2qb_LZ.js"), import("./_app/immutable/entry/app.BktpADTo.js") ]).then(([kit, app]) => { kit.start(app, element, { node_ids: [0, 44], data: [{type:"data",data:{allowFreeSignup:true,allowPremiumSignup:true,freemius:{pricing:{paidTiers:{noob:{monthlyPrice:9.99,annualPrice:99.99,currency:"USD",annualSavingsPercent:16.6},business:{monthlyPrice:99,annualPrice:999,currency:"USD",annualSavingsPercent:15.9},pro:{monthlyPrice:29,annualPrice:299,currency:"USD",annualSavingsPercent:14.1},enterprise:{monthlyPrice:399,annualPrice:3999,currency:"USD",annualSavingsPercent:16.5}}},checkout:{productId:"18773",publicKey:"pk_3376cc7b2763abc9bd66d809d177a"},checkoutPlanIds:{noob:"31540",pro:"31040",business:"31042",enterprise:"43524"}},checkoutPaidTierAllowlist:["noob","pro","business","enterprise"],newsletterSignupUrl:null},uses:{}},{type:"data",data:{account:{signedIn:false,paid:false,tier:"free"},toolCatalog:[{name:"seoperception_list_sites",title:"List sites",description:"List owned websites with stored GSC and crawl freshness.",status:"available",examplePrompt:"List my SEO Perception sites and tell me which data is freshest."},{name:"seoperception_get_site_overview",title:"Site overview",description:"Summarize stored search performance, leading pages, queries, and rank momentum.",status:"available",examplePrompt:"Summarize the strongest gains and losses for my site using stored data."},{name:"seoperception_search_queries",title:"Search queries",description:"Search and filter stored query evidence by content match, position band, impressions, landing page, CTR, and intent. Content filters use stored match rows only.",status:"available",examplePrompt:"Find non-branded queries in positions 5–20 with at least 50 impressions that are missing from their landing page."},{name:"seoperception_list_opportunities",title:"SEO opportunities",description:"List bounded, evidence-backed crawl and Search Console possibilities.",status:"available",examplePrompt:"Show the highest-priority open SEO opportunities and explain the evidence."},{name:"seoperception_find_cannibalization",title:"Keyword cannibalization",description:"Find stored query conflicts and the deterministic preferred page.",status:"available",examplePrompt:"Find keyword cannibalization and recommend which page should be preferred."},{name:"seoperception_find_content_gaps",title:"Content and snippet gaps",description:"Find stored low-CTR, missing-query, title/snippet, question, and refresh opportunities.",status:"available",examplePrompt:"Find the biggest content and snippet gaps, then suggest rewrites that match the losing keywords."},{name:"seoperception_suggest_internal_links",title:"Internal-link suggestions",description:"Return stored destination and anchor opportunities without crawling or probing URLs.",status:"available",examplePrompt:"Suggest internal links and natural anchor text for pages with ranking potential."},{name:"seoperception_get_page_diagnostics",title:"Page diagnostics",description:"Combine one page’s crawl metadata, stored GSC trends, top queries, and possibilities.",status:"available",examplePrompt:"Diagnose /page1/ from crawl state, top queries, and opportunities, then tell me what to rewrite first."},{name:"seoperception_compare_periods",title:"Period comparison",description:"Compare explicit stored weekly periods with deterministic deltas.",status:"planned",examplePrompt:"Compare the latest four complete weeks with the previous four."},{name:"seoperception_find_content_decay",title:"Content decay",description:"Detect sustained stored click and position declines from open refresh-candidate rows. An empty result means none are stored yet.",status:"available",examplePrompt:"Which pages show meaningful content decay?"},{name:"seoperception_get_geo_breakdown",title:"Country and device breakdown",description:"Read stored country/device facts for Business and Enterprise sites.",status:"planned",examplePrompt:"Where do mobile CTR and ranking performance differ most?"},{name:"seoperception_generate_report",title:"Hosted report",description:"Create a bounded, shareable analysis artifact.",status:"planned",examplePrompt:"Create a client-ready monthly SEO report."},{name:"live_gsc_query_or_inspection",title:"Live Google calls",description:"Direct GSC queries, URL Inspection, collection, and Google OAuth are permanently excluded.",status:"excluded",examplePrompt:"Not available: MCP never contacts Google."},{name:"mutations_and_refreshes",title:"Mutations and refreshes",description:"Recrawls, indexing writes, issue updates, PSI refreshes, and LLM generation are excluded.",status:"excluded",examplePrompt:"Not available: MCP is read-only."}],mcpEndpoint:"https://seoperception.com/mcp",serverCardUrl:"https://seoperception.com/.well-known/mcp/server-card.json",docsUrl:"https://seoperception.com/docs/mcp-for-cursor",tokensUrl:"https://seoperception.com/account/mcp"},uses:{}}\], form: null, error: null }); }); }