QuickSEO MCP Server
Connect any Model Context Protocol client — Claude Desktop, Claude Code, Cursor, or your own — to read your QuickSEO data and act on it. Pull AI visibility, Google Search Console rows, tracked prompts, and competitors directly into your agent workflows.
Introduction
The QuickSEO MCP server exposes your sites, AI visibility scans, Google Search Console performance, tracked prompts, and competitors through a single, agent-ready endpoint. Pick a starting point below or follow the page top to bottom for the full setup.
Server URL
Point your MCP client at this endpoint. All transports (HTTP + SSE) are supported.
https://quickseo.ai/api/mcp
Connect your agent
Pick the path for your client. All four trigger the same one-click OAuth flow on first use.
Claude Code
Run this in your terminal. On recent versions you can also use the /mcp slash command.
claude mcp add --transport http quickseo https://quickseo.ai/api/mcp
Claude Desktop
In Claude Desktop, open Customize → Connectors, click the + icon, choose Add custom connector, then fill in:
- Name:
QuickSEO - Remote MCP server URL:
https://quickseo.ai/api/mcp - Click Add, then approve the OAuth prompt on first use.
Cursor
One-click install — opens Cursor and pre-fills the MCP server config.
Other MCP clients
For any MCP client that reads a JSON config (and doesn't yet support remote HTTP-transport servers natively), add this block to its config file. It uses mcp-remote as a local bridge.
{
"mcpServers": {
"quickseo": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://quickseo.ai/api/mcp"]
}
}
}
Authentication
The QuickSEO MCP server speaks OAuth 2.1 with Dynamic Client Registration and PKCE. Your MCP client registers itself the first time it connects, redirects you to the QuickSEO consent screen, and receives a short-lived bearer token bound to your user account.
You stay logged in via the QuickSEO browser session — there is no copy-pasting of API keys or personal access tokens. You can revoke any connection at any time from your account page.
Conventions
A few rules hold across every tool, and knowing them saves an agent a round-trip.
siteId accepts a domain. Every tool that takes a siteId also accepts the site's domain or full URL — quickseo.ai, https://www.quickseo.ai/pricing and blog.quickseo.ai all resolve to the same site. Matching is on the registrable domain, so you only need list_sites when two of your sites share one.
Most lists are bounded. Every tool below except list_sites, list_prompts, list_competitors and get_search_analytics takes limit (default 50, max 200) and a per-tool sort, applied before truncation, and answers with a meta object carrying returned_count, total_count and truncated, plus upstream_truncated — a separate flag, because "we cut your list" and "the database read was partial" are different facts. Those four return their list whole and carry no meta: the first three are already bounded by your plan (competitors at 200 rows), and get_search_analytics returns raw Search Console rows up to 25 000 — get_keywords and get_pages are the bounded, sorted, delta-carrying way to read the same data.
Date windows are checked, not just parsed. Where a tool takes startDate and endDate, both must be real calendar days with the start on or before the end, and the window may span at most 1100 days — wider than any range the QuickSEO app itself offers. An out-of-range or impossible window answers invalid_input rather than being read literally.
Visibility is a mention rate. Every *_score field on the AI visibility tools is AI Visibility as QuickSEO defines it: the % of AI answers that named the brand — mentioned_count ÷ total_prompts × 100, one decimal — overall and per model. It is not a composite; nothing else is folded in.
Missing is not zero. Where something was never measured, the tools say so rather than returning a zero. A run that errored reports mentioned: null; a suggested competitor arrives in an unmeasured list with no rate at all; AI traffic on a site that never installed tracking reports configured: false; an audit that crawled no pages reports scored: false with a coverage_note; and a delta with no previous window read is null with has_comparison: false.
Which plan a tool needs. list_sites, get_search_analytics, get_keywords, get_pages and get_page_groups need any paid plan. The AI visibility, prompt, competitor and audit tools additionally need a plan with a tracked-prompt allowance. get_ai_traffic needs Pro or Business. When a tool is out of reach it answers with a structured error code — mcp_access_required, ai_access_required or ai_traffic_required — rather than empty data.
Clocks differ. AI visibility and competitor data are keyed on UTC scan dates, AI crawler traffic on UTC day bounds, and Search Console on your property's own timezone with a roughly two-day lag. Every response returns the window it actually resolved, so nothing has to be assumed.
Available tools
Twenty-one tools cover the read and write surfaces of your QuickSEO data.
list_sitesList all sites the authenticated QuickSEO user owns. Returns each site UUID, URL, brand name, GSC property, and whether the site is active. Call this first to discover the siteId values you pass to the other tools.
get_site_overviewReturn a combined overview for one site over the last 30 days: latest AI Visibility — the % of AI answers naming the brand, overall and per model for ChatGPT, Claude, Gemini, Perplexity — and Google Search Console totals (clicks, impressions, CTR, average position).
get_search_analyticsFetch Google Search Console rows for a site over a date range. Use dimensions to break down the result; defaults to DATE. Example: dimensions=["QUERY","PAGE"] returns clicks/impressions/CTR/position grouped by query+page.
get_ai_visibilityReturn AI Visibility for a site across the chosen period — the % of AI answers naming the brand (mentioned_count ÷ total_prompts). Includes the full per-scan series plus a latest summary (overall + ChatGPT, Claude, Gemini, Perplexity, total_prompts, mentioned_count).
list_promptsList the AI prompts currently tracked for a site. These are the user-facing prompts that get run against ChatGPT, Claude, Gemini, and Perplexity for AI visibility scoring.
add_promptAdd a new AI prompt to track for a site and trigger an immediate scan against ChatGPT, Claude, Gemini, and Perplexity. Subject to the user prompt-quota.
list_competitorsList competitor domains for a site — picked by QuickSEO from AI citations or tracked by you — with total citations, status, and first/last seen timestamps. Filter by status — tracked, suggested, or dismissed.
get_prompt_resultsPer-prompt AI visibility results: the latest run of every tracked prompt on every tracked platform, or — with a promptId — one prompt in depth, with an excerpt of each model answer and the domains it cited. A run that errored reports mentioned: null, never false.
get_cited_pagesWhich of your own pages AI models actually cited, aggregated per page: citation count, per-platform breakdown, best position, first and last cited, and how many distinct prompts surfaced it, plus a site-level daily series.
get_ai_search_queriesThe search queries AI models ran while answering your tracked prompts, joined against your Google Search Console keywords so you can see where you already rank for what the models are searching.
compare_competitorsHead-to-head AI visibility for your brand and your tracked competitors over one denominator — mention rate, share of voice, citation rate, sentiment, position. Suggested competitors come back in a separate unmeasured list, because nothing was measured for them. Pass a domain for the per-prompt deep dive.
get_keywordsGoogle Search Console keywords with clicks, impressions, CTR, average position and period-over-period deltas. Keywords under 10 impressions in the window are omitted.
get_pagesGoogle Search Console pages with clicks, impressions, CTR, average position and period-over-period deltas, with an optional branded/non-branded split applied per query before aggregating.
get_page_groupsYour configured page groups with their Search Console totals and deltas, plus each group's filter definition so you can see exactly what it matches.
get_ai_trafficServer-side AI crawler hits: totals by category, a per-crawler leaderboard with a previous-window comparison, and the most-crawled paths. Available on the Pro and Business plans.
get_seo_auditThe site's latest technical SEO and AEO audit — overall and per-category scores, and the failing issues with their impact and fix, most severe first — plus the score history.
update_promptRewrite the text of a tracked prompt. Does not trigger a rescan, and the prompt keeps its existing scan history under the same id.
remove_promptPermanently delete a tracked prompt. Destructive and cascading: the prompt's scan history and every competitor mention scored against it go with it.
track_competitorStart scoring a competitor domain on every prompt of every future scan. The domain has to already appear in list_competitors, and a site can track up to 25 over MCP.
dismiss_competitorHide a competitor domain and stop scoring it in future scans. Historical measurements are kept.
whats_changedOne call answering "what changed on this site" across AI visibility, Google Search Console, AI crawler traffic and competitors. Each surface is read independently, so one being unavailable never fails the rest.
Suggested prompts
Paste any of these into your connected agent to see what QuickSEO can do. Most use only the read tools; the ones that write say so.
Quick snapshot
Using QuickSEO MCP, give me a one-paragraph health check on my site: AI visibility per model (ChatGPT, Claude, Gemini, Perplexity), plus Google Search Console clicks, impressions, CTR, and average position over the last 30 days. Flag anything that looks off.
AI visibility deep dive
Using QuickSEO MCP, list every prompt I track for my site and tell me which AI models currently mention my brand for each one. Group the results by 'mentioned everywhere', 'mentioned by some', and 'never mentioned'. Then suggest 5 new prompts to track that I'm probably missing.
Competitor landscape
Using QuickSEO MCP, pull my tracked and suggested competitors with their citation counts and first/last seen dates. Which competitor is gaining the most across AI models in the last 30 days? Recommend one I should add to my tracked list.
GSC quick wins
Using QuickSEO MCP, pull Google Search Console data for the last 30 days grouped by QUERY and PAGE. Find queries with more than 200 impressions and CTR below 2%. For each, suggest one specific change to the page (title, meta description, or on-page copy) to lift CTR.
Branded vs non-branded
Using QuickSEO MCP, compare my branded vs non-branded AI visibility for the last 90 days. Which model indexes my brand best? Which is weakest on non-branded prompts? Give me 3 concrete actions to lift the weak surface.
Add a prompt and scan
Using QuickSEO MCP, add the prompt 'best AI SEO tool for SMBs' to my site and run a scan. When it finishes, tell me which models mentioned my brand, what they said, and which competitor domains were cited.
What changed this week
Using QuickSEO MCP, run whats_changed on my site for the last 7 days. Walk me through what moved on each surface, and call out explicitly any surface that came back unavailable and why, rather than treating it as zero. End with the one thing I should act on.
Which pages do AI models cite
Using QuickSEO MCP, pull my cited pages for the last 30 days and my top Search Console pages over the same window. Which pages earn AI citations but little Google traffic, and which rank well in Google but are never cited? Give me three concrete changes for the second group.
Are AI crawlers reading my new content
Using QuickSEO MCP, pull AI crawler traffic for the last 30 days and my Search Console pages for the same window. Which of my pages are the crawlers hitting most, and are there pages getting Google impressions that no AI crawler has touched? If AI traffic isn't configured or isn't on my plan, say so instead of reporting zeros.
Where I lose to competitors, prompt by prompt
Using QuickSEO MCP, compare my competitors over the last 30 days. First tell me which competitors are in the unmeasured list — those are suggested, not tracked, so their visibility is unknown rather than zero, and I may want to track one. Then pick the tracked competitor beating me most and do the per-prompt deep dive on their domain, telling me which prompts I lose and what its coverage verdict is.
Weekly progress report
Using QuickSEO MCP, compare this week vs last week for both AI visibility (per model) and Google Search Console (clicks, impressions, CTR, position). Write a 5-bullet summary I can share with my team, ending with the single most important thing to focus on next week.
Rate limits
120 requests per minute per user, sliding 60-second window. When you exceed the limit the server responds with HTTP 429 and a Retry-After header.
Need a hand getting set up? Email support@quickseo.ai.