How Do I Set Up a Claude MCP Stack for SEO Work?

If you're still pulling Google Search Console and Ahrefs data into Claude by copy-pasting CSVs, you're doing the 2024 version of the job. The MCP (Model Context Protocol) version looks like this: "Claude, compare last week's GSC impressions for my 20 tracked keywords to Ahrefs' current rank, flag anything that's getting impressions but sitting page 2, and write five title tag variations for each." One prompt. Real data. Here's the stack.
Why this matters
SEO work is 80% data gathering and 20% decisions. Every hour you spend exporting CSVs, pivoting spreadsheets, and reconciling column headers is an hour Claude could do in 30 seconds — if it had direct access to the data source.
MCP (Model Context Protocol) is the standard Anthropic built for that access. Each data source gets an MCP server. Claude connects to the server, queries it live, and operates on real current data instead of whatever stale export you pasted in.
For SEO, the stack that changes your week is: Google Search Console MCP + Ahrefs MCP + a writer project with your voice guide and offer docs in the knowledge base. Three connections, and you've replaced most of what a junior SEO analyst does manually.
Before you start
You need:
- Claude Pro, Team, or Enterprise. MCP connectors require it.
- Admin access to your Google Search Console property.
- An Ahrefs paid account with API access (API is on standard plans and above — check your plan; no separate API key purchase required if you're already paying).
- Claude Desktop or Claude.ai with connectors enabled. Both work — desktop is smoother for MCP.
Step 1: Connect Google Search Console via MCP
Anthropic maintains a GSC connector in the MCP Directory. Open Claude settings → Connectors → browse the directory → find Google Search Console → click Connect.
You'll go through Google's OAuth flow:
- Click Sign in with Google.
- Pick the Google account that owns your GSC property.
- Approve the scopes Claude is requesting —
webmasters.readonlyis what you want. Do not approve broader scopes than that. - Pick which properties Claude can see (you can limit to specific sites).
Back in Claude, test with: "List my verified Search Console properties." If you get a list of your domains, you're wired up.
Step 2: Connect Ahrefs via MCP
Ahrefs publishes an MCP server. In Claude's Connectors panel, add Ahrefs (or paste the MCP server URL from Ahrefs' docs if it's not in the directory yet).
Authentication: Ahrefs uses an API token. Get yours from Ahrefs → Account Settings → API Access → generate token. Paste into Claude's connector config.
Be careful with scopes. Ahrefs' API is credit-metered — a chatty Claude can burn credits fast. Look for a read-only or rate-limited token option if you have one, and check your Ahrefs dashboard after the first few queries to calibrate usage.
Test: "What's the current organic keyword count for [your-domain.com] in Ahrefs?" If you get a number, you're connected.
Step 3: Set up a "SEO Ops" Project with your context
Open Claude → Projects → New Project → name it "SEO Ops" (or your brand's SEO workspace).
Drop into the knowledge base:
- Your current tracked keyword list (CSV or Google Sheet link).
- Your brand voice guide (for title tag and meta description rewrites).
- A short "rules of engagement" doc: what you don't optimize for (e.g., "don't chase keywords that compete with our paid offer"), what counts as a win (e.g., "impressions lift + CTR lift on money pages").
Project custom instructions:
"You have access to Google Search Console and Ahrefs via MCP. When asked about SEO performance, always pull live data — don't estimate. Before writing title tags or metas, pull current ranking and CTR for the target page first. Use U.S. English. Never suggest keyword-stuffed titles."
Projects are described in detail in How Do I Build My First Claude Project.
Step 4: Run your first real query
In the SEO Ops project, try something meaningful:
"For the 10 keywords in my tracked list, pull last 7 days of impressions and average position from GSC. Then pull current position from Ahrefs for the same keywords. Flag any keyword where GSC says we're page 2 (positions 11–20) and we're getting over 100 impressions — those are the quick wins."
Watch Claude work. It'll make MCP calls (you'll see tool-use indicators), reconcile the two data sources, and come back with a prioritized list. The first run will take 20–40 seconds.
Compare the output to what you'd get by exporting both CSVs and VLOOKUPing. Faster, and the prioritization is already done.
Step 5: Build repeatable workflows as saved prompts
The power of the stack is repetition. Save the useful queries as prompt templates inside the Project (or as a Skill if you're on Claude Code too — see the Skills guide).
Templates I use weekly:
- Monday SEO pulse — the page-2 opportunity query above, plus any ranking drops of 3+ positions.
- Title tag sprint — "For these 5 page URLs, pull GSC CTR, pull Ahrefs top-ranking competitors' titles, write 3 title variants per page that align with our voice guide."
- Content gap — "Cross-reference our top-performing GSC queries with keywords Ahrefs shows competitors ranking for but we don't. Output the top 10 gaps."
Each one is a single prompt that used to be two hours of spreadsheet work.
Verify it worked
1. Both MCPs answer live queries. Ask Claude to pull today's data from each. Check the numbers against the respective dashboards.
2. Cross-source queries reconcile. Ask a question that requires both sources ("impressions from GSC AND ranking from Ahrefs for keyword X"). If Claude pulls both and joins them, the stack is working.
3. Tool-use is visible. In the chat, you should see Claude invoking google_search_console.* and ahrefs.* tools. If it's not, it's guessing, not querying.
Where this breaks
- Ahrefs credit burn. Claude will happily run 30 API calls to answer one vague question. Be specific in your prompt ("pull these 10 keywords," not "look at our keywords"). Check your Ahrefs credit usage weekly until you've calibrated.
- GSC data latency. Search Console data is 2–3 days behind real-time. Don't schedule a Monday 8am pull that's trying to report Sunday's numbers — it won't be there yet. Run Monday pulls against "last full 7 days" or "last 28 days."
- Property mismatches. If your GSC and Ahrefs use different domain formats (www vs. non-www, http vs. https), the join will silently miss. Standardize on one canonical form.
- Token use. Big keyword lists + full data pulls can blow past conversation limits. Use
/clearbetween major queries, or scope your tracked list to the 20–50 keywords that actually matter. - Ahrefs TOS. Running automated queries through an MCP is allowed, but aggressive scraping or reselling Ahrefs data via the API is not. Personal/agency use within your account's own domains is fine; check their TOS if you're doing client work at scale.
What to try next
- How Do I Build My First Claude Project That Actually Knows My Business? — the Project setup this guide assumes you have.
- How Do I Connect Postgres to Claude via MCP? — same MCP pattern, different data source; great if your SEO data lives in a BI warehouse.
- How Do I Automate a Weekly SEO Audit in Claude? — the next rung up: a fully scheduled audit that runs every Monday and drops a report in your inbox.
Let's talk about your AI + SEO stack
If you'd rather skip the how-to and have it shipped for you, that's what I do. Start a conversation and we'll figure out the fastest path to results.
Let's Talk