QuickSEO MCP Server
Connect any Model Context Protocol client — Claude Desktop, Claude Code, Cursor, or your own — to read your QuickSEO data. Pull Google Search Console clicks, impressions, keywords, pages and page groups, plus technical SEO audits, opportunities and index monitor results, for any of your websites directly into your agent workflows.
Introduction
The QuickSEO MCP server exposes your sites, their Google Search Console performance, their technical SEO audits, their opportunities (pages worth fixing, each with an estimated range of extra clicks) and their index status (which pages Google has indexed, and which dropped out) through a single, agent-ready, read-only endpoint. Apart from list_sites, every tool reads one website at a time — to compare websites, an agent calls a tool once per site. The MCP server is included in QuickSEO's paid plan (see pricing). 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. The server speaks the Streamable HTTP transport over HTTPS.
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 the MCP page in the QuickSEO app (under Connections in the sidebar).
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 list tool below except list_sites and get_search_analytics takes limit (default 50, max 200), applied after the tool's ordering — a per-tool sort on the Search Console and audit lists, a fixed order on get_opportunities (best estimate first) and get_index_status (set by state) — 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 Search Console read was partial" are different facts. The two exceptions return their list whole and carry no meta: list_sites lists your websites, 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.
Missing is not zero. Where something was never measured, the tools say so rather than returning a zero. A site with no linked Search Console property reports gsc_connected: false, and one we could not read reports gsc_available: false; a page group whose read failed is listed in unavailable_groups rather than as zero; an audit that crawled no pages reports scored: false with a coverage_note; a delta with no previous window read is null with has_comparison: false; and get_index_status answers available: false with a reason before the index monitor has checked a site.
Which plan the tools need. Every tool needs QuickSEO's paid plan. Without it, a tool answers with the structured error code mcp_access_required rather than empty data, and the message says where to fix it. An account on the paid plan but with no website yet gets an empty list_sites plus a hint pointing at where to add one.
Search Console lags. Search Console dates are in your property's own timezone and lag roughly two days, so today usually has no data yet. Every response returns the window it actually resolved, so nothing has to be assumed.
Available tools
Ten read-only tools cover your Search Console data, SEO audits, opportunities and index monitoring.
list_sitesList all sites the authenticated QuickSEO user owns. Returns each site UUID, URL, brand name, Search Console property, and whether the site is active. Call this first to discover the siteId values you pass to the other tools.
get_site_overviewGoogle Search Console totals for one site over the last 30 days: clicks, impressions, CTR and average position. Null when no property is linked or Search Console could not be read.
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_keywordsGoogle Search Console keywords with clicks, impressions, CTR, average position and period-over-period deltas, with an optional branded/non-branded split. 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_seo_auditThe site's latest technical SEO audit — overall and per-category scores, and the failing issues with their impact and fix, most severe first — plus the score history.
get_opportunitiesThe pages worth fixing on a site, found daily in its own Search Console data — striking distance, low CTR, content decay and cannibalization — each with a reason, one action and an estimate of extra clicks per 28 days. Items you marked done carry the clicks before and after.
get_index_statusThe index monitor's latest results from Google's URL Inspection tool: how many pages are indexed, and which dropped out of the index, aren't indexed or haven't been crawled in 90+ days.
whats_changedOne call answering "what changed on this site": Search Console clicks, impressions, CTR and average position against the previous equal-length window. A surface that could not be read says why instead of reporting zeros.
Suggested prompts
Paste any of these into your connected agent to see what QuickSEO can do. Every one of them only reads your data.
Quick snapshot
Using QuickSEO MCP, give me a one-paragraph health check on my site: Google Search Console clicks, impressions, CTR and average position over the last 30 days, compared with the 30 days before. Flag anything that looks off.
All my websites at a glance
Using QuickSEO MCP, list all my websites and check what changed on each one over the last 30 days. Rank them by the change in clicks, and call out any website whose Search Console data could not be read instead of treating it as zero.
Top opportunities
Using QuickSEO MCP, show me the open opportunities on my site. For the five with the biggest estimate, give me the page, the query, why it was flagged, the one change to make, and about how many extra clicks per 28 days it could add as a range. Then tell me which one to do first and why.
Growing and decaying keywords
Using QuickSEO MCP, get my keywords for the last 30 days with their period-over-period deltas. Show the ten that gained the most clicks and the ten that lost the most, with their average position, and tell me which of the losers are worth a content refresh first.
Branded vs non-branded
Using QuickSEO MCP, compare my branded and non-branded keywords for the last 90 days. What share of clicks comes from people already searching for my brand, and which non-branded keywords are closest to page one?
Page groups report
Using QuickSEO MCP, pull my page groups for the last 30 days. Which section of my site is growing fastest and which is declining? Give me one concrete next step for the weakest group.
What changed this week
Using QuickSEO MCP, tell me what changed on my site over the last 7 days compared with the 7 days before. Walk me through what moved, call out anything that came back unavailable and why rather than treating it as zero, and end with the one thing I should act on.
Fix my technical SEO
Using QuickSEO MCP, get my latest technical SEO audit. List the critical issues first with the affected URLs and the fix for each, then tell me which single fix will help the most pages.
Pages that left the index
Using QuickSEO MCP, check my site's index status. Which pages dropped out of Google's index in the last 30 days, and which pages aren't indexed at all? For each, show Google's coverage state and when it last crawled the page, and tell me what to check first.
After the fixes I made
Using QuickSEO MCP, list the opportunities I marked done and, for each, compare the clicks in the 28 days after I marked it with the days before, net of the site's overall change. Treat it as what happened after the change, not proof the change did it, and for any still waiting on a result, say when it is due.
Weekly progress report
Using QuickSEO MCP, compare this week vs last week in Google Search Console for my site (clicks, impressions, CTR, position) and list the keywords and pages that moved most. 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.