SC-MCP 2026: Claude Reads Your X Post SEO
In the first week of July 2026, two Google announcements landed within five days of each other, and together they quietly redrew the SEO map for X and Bluesky creators. On July 2, the Show HN feed surfaced search-console-mcp, an open-source Model Context Protocol server that lets Claude, Codex, and other MCP-aware agents pull live Google Search Console data without a copy-paste round trip. Five days later, on July 7, Google shipped the new social/video platform panel inside Search Console itself, exposing YouTube, TikTok, LinkedIn, and X impression data as a first-class filter alongside traditional web search.
The two releases are not related by any official Google post, but they line up. SC-MCP is the read path that makes the new social/video data actionable: you can now ask an agent "which of my X threads are getting TikTok-style discovery this week" and get a real answer with no spreadsheet in the loop. For a creator whose analytics live in five different dashboards, this is the first time the data is in a place where an AI tool can act on it.
The 30-second version: Search Console MCP (SC-MCP) is an MCP server that wraps Google's Search Console API. Wire it into Claude Code or Codex, and you can ask "show me my X post impressions for July" in plain English. Combined with GSC's new social/video panel (July 7, 2026), creators can now close the loop on cross-platform post performance without leaving the chat. This guide is the working setup plus the four queries worth running first.
What Search Console MCP Actually Does
Search Console MCP is a small Python server that exposes the Google Search Console API as a set of MCP tools. An MCP-aware client (Claude Code, Codex, Cline, Continue, Roo Code) can call those tools directly, with no auth juggling on the agent side and no manual export from the GSC web UI. From the creator's perspective, the difference between "with SC-MCP" and "without SC-MCP" is the difference between asking a question in chat and copying rows out of a CSV.
The repository is github.com/sudomichael/search-console-mcp, MIT-licensed, ~600 lines of Python. It implements the read-side endpoints the Search Analytics API exposes: queries, pages, devices, countries, dates, and search appearance. It does not implement write-side endpoints (no sitemaps submit, no URL removal), and it does not expose the new social/video data directly — that data lives behind a different filter that SC-MCP added on July 7, the same day Google shipped the panel.
What you get, end to end, is a chat-accessible Google Search Console. That is the entire product, and that is exactly the layer that was missing before.
Why the July 7 GSC Update Changes the Math
Before July 7, 2026, GSC only showed web search performance. A creator publishing on X, Bluesky, LinkedIn, YouTube, or TikTok had to instrument each platform separately: X Analytics for X, Bluesky stats for Bluesky, LinkedIn Page analytics for LinkedIn, YouTube Studio for YouTube, TikTok Creator Portal for TikTok. None of those platforms had a unified search-performance lens because each one defined "search" differently, and Google did not have a way to see cross-platform creator data as a single corpus.
The July 7 update changes that. The new social/video platform panel inside GSC exposes impressions, clicks, CTR, and position for:
- YouTube search — impressions, clicks, and average position in YouTube's internal search.
- TikTok search — same shape, scoped to TikTok's search layer.
- LinkedIn search — post and article discovery inside LinkedIn's search.
- X search — x.com's internal search, including topic and people search.
That is the first time a creator can sit in a single Google UI and see "my X thread on AT Protocol federation" next to "my LinkedIn post on the same topic" with the same metric shape. SC-MCP, which was already wired to the GSC API, picks up the new social/video data on day one. The two releases land together because both sides of the stack needed the other to be useful.
The 4 Queries Worth Running First
Once SC-MCP is wired into Claude Code (setup below), the productive part is the queries you run against it. The four that have produced the most actionable signal in the first week of July 2026 are these.
Query 1: Cross-Platform Impressions for a Topic
The most basic SC-MCP query is also the most powerful: ask for total impressions across all platforms for a topic cluster over the last 28 days. SC-MCP returns the same shape as the GSC web UI, but it does the dimension join automatically (web + YouTube + TikTok + LinkedIn + X) without you having to click five tabs.
gsc_query(
site_url="https://yourdomain.com",
start_date="2026-06-10",
end_date="2026-07-08",
dimensions=["date"],
filters={"query_contains": "at protocol"}
)
The response gives you a date-bucketed impression series. From there you can ask Claude to plot it, summarize spikes, or correlate with a specific X thread URL. That last move — "now correlate this with my X post from June 14" — is the killer workflow because it ties the GSC side to the platform side without any manual bookkeeping.
Query 2: X Thread Discovery vs Web Discovery
The second query separates X search impressions from web search impressions for the same query. The reason this matters: a creator publishing a thread on X and a blog post on the same topic will often see one of them dominate search while the other goes silent. The split tells you which platform is the discovery surface for a given topic and where to invest the next post.
gsc_query(
site_url="https://yourdomain.com",
start_date="2026-06-10",
end_date="2026-07-08",
dimensions=["query", "searchAppearance"],
filters={"searchAppearance": ["X_SEARCH", "WEB"}]
)
For a creator who treats X as the broadcast layer and the blog as the durable record, this query is the closest thing to a publishing dashboard. You see the queries that hit the blog post, the queries that hit the X thread, and you can stop guessing where the reader actually found you.
Query 3: Drift Detection Across Platforms
Drift detection is the workflow that turned SC-MCP from a curiosity into a daily tool. You ask Claude to compare this week's social/video impressions to last week's, flag anything down more than 30 percent, and propose an X thread or Bluesky post that could recover the lost reach. The query is the same shape as Query 1, but with two date ranges and a small Claude prompt that does the comparison.
last_week = gsc_query(site_url, "2026-07-01", "2026-07-07", dimensions=["date"])
this_week = gsc_query(site_url, "2026-06-24", "2026-06-30", dimensions=["date"])
# Claude compares: which platform, which date, which query dropped the most?
# Claude proposes: one X thread draft, one Bluesky post draft, one LinkedIn update.
That is the production-grade creator loop in 2026: a 7-day read, a one-line comparison prompt, and three draft posts in the output. You went from five dashboards and a spreadsheet to one chat message in 90 seconds.
Query 4: Cross-Link Audit Between X and Blog
The fourth query is the SEO discipline move: ask Claude to enumerate every X post URL that you referenced in a blog post in the last 90 days, then check the GSC page dimension for each. If a blog post has an outbound link to an X thread and the thread has zero X-search impressions, you have a cross-link audit problem: the link is not pulling its weight in the new X-search world.
# Step 1: list all outbound x.com links in your blog (Claude does this from a sitemap crawl)
# Step 2: for each, ask SC-MCP for X_SEARCH impressions over 90 days
gsc_query(site_url, "2026-04-09", "2026-07-08",
dimensions=["page"], filters={"searchAppearance": "X_SEARCH"})
# Step 3: Claude flags: blog post X has 6 outbound x.com links, 4 of them have 0 X impressions.
# Step 4: Claude rewrites the link text to be more descriptive so X's indexer classifies the thread better.
The audit is the kind of thing a creator would never do by hand, and a marketing agency would charge $5,000 for. With SC-MCP it is a 10-minute chat session, repeatable weekly.
The 5-Minute Setup
Wiring SC-MCP into Claude Code takes about five minutes if you already have a Google Search Console verified property and a working Claude Code install. The shape is the same as any MCP server: a one-line config in ~/.config/claude/mcp_servers.json and a service-account key on disk.
Step 1: Install the Package
Clone or pip-install the SC-MCP server. The recommended path is the GitHub release, not PyPI, because Google updated the API contract on July 7 and the release tag tracks the live GSC endpoints.
git clone https://github.com/sudomichael/search-console-mcp.git
cd search-console-mcp
uv sync
# This pulls the MCP SDK + google-api-python-client + auth libs
If you do not have uv installed, the repo falls back to pip install -e . on Python 3.11+. The full env is ~80 MB.
Step 2: Service Account + GSC Property Access
SC-MCP authenticates with a Google service account, not OAuth. Create a service account in Google Cloud, download the JSON key, and add the service account email as a user (any role, "Full" works) inside the Search Console property you want to query. This is the same flow that any GSC automation uses; no special scope needed beyond webmasters.readonly.
# 1. Service account JSON at: ~/keys/gsc-service-account.json
# 2. In GSC UI: Settings → Users and permissions → Add user
# Paste the service account email: [email protected]
# Permission level: Full (read-only is enough for SC-MCP, but Full is harmless)
The service account flow is the difference between SC-MCP and other GSC tools: there is no browser OAuth dance, no token refresh in the middle of a session. The MCP server reads the key on disk and is ready.
Step 3: Wire It Into Claude Code
Add the SC-MCP server to Claude Code's MCP config. The config file is at ~/.config/claude/mcp_servers.json on Linux and macOS, and the same path under %APPDATA% on Windows.
{
"mcpServers": {
"gsc": {
"command": "uv",
"args": ["run", "--directory", "/path/to/search-console-mcp", "python", "-m", "search_console_mcp"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/home/you/keys/gsc-service-account.json",
"GSC_DEFAULT_SITE": "https://yourdomain.com"
}
}
}
}
Restart Claude Code. The first time you start a session, type /mcp and confirm that the GSC server is listed and shows the available tools. If you see gsc_query in the tool list, the setup is done.
Step 4: First Sanity Query
Ask Claude to do a 7-day pull and confirm the numbers match the GSC web UI. This is the same data the GSC dashboard shows, so the comparison is a literal end-to-end test of the wiring.
Use gsc_query to fetch the last 7 days of search analytics for https://yourdomain.com,
grouped by date. Show me the total impressions and clicks for each day.
Then compare it to what I see in the GSC Performance tab.
They should match exactly.
If the numbers match, the setup is verified. If they do not, the most common culprit is the site URL format: GSC accepts https://yourdomain.com (domain property) or sc-domain:yourdomain.com (URL-prefix property), and SC-MCP needs the exact string the property was registered with. The repo's README has a gsc_list_sites tool that lists every property your service account can see; use that to copy the right URL.
Where ThreadGrab Fits in This Picture
ThreadGrab is a read-side social archiving tool: paste any public X URL and you get a stable, structured Markdown page that crawlers and AI agents can fetch. The natural pairing with SC-MCP is that every GSC impression on a threadgrab.com mirror page is a confirmed AI-citation candidate. When you run SC-MCP Query 1 (cross-platform impressions for a topic), the mirror pages on threadgrab.com will show up in the page dimension. That tells you which of your archived threads is being picked up by the citation layer, and which is still relying on x.com directly.
For a creator who already runs ThreadGrab, SC-MCP is the missing read-side answer to the question ThreadGrab answers on the write side: where is my content actually being discovered? The two tools together close the loop from publish (X) to mirror (ThreadGrab) to discovery (GSC) to action (Claude-drafted next post). That is the production-grade creator stack for the second half of 2026.
Frequently Asked Questions
Yes, with the July 7 release tag. The previous version only exposed web search data; the current release adds the social/video platform filter as a first-class dimension, which means you can ask for X_SEARCH, YOUTUBE_SEARCH, TIKTOK_SEARCH, and LINKEDIN_SEARCH impressions alongside traditional web search in the same query. If you cloned the repo before July 7, pull the latest release tag and restart the MCP server.
No. SC-MCP runs against the MCP protocol, which Claude Code, Codex, Cline, Continue, and Roo Code all speak. The free Claude Code plan works for ad-hoc queries; a paid plan is only needed if you want to run long cross-platform audit sessions that exceed the rate limit on the free tier (about 50 GSC API calls per day, which is enough for a weekly creator workflow).
No. SC-MCP runs locally on your machine. The flow is: your MCP client (Claude Code, etc.) calls a tool on the local SC-MCP server, the server calls the Google Search Console API directly using your service account key, and the response goes back to your local chat. Google sees the request come from your service account, not from any third-party service. There is no relay, no log shipping, no analytics middleware. The repo has no telemetry code, and the MIT license lets you audit every line.
The Search Analytics API allows about 1,200 queries per minute per service account, with a 5-queries-per-second practical ceiling for a single property. SC-MCP has built-in rate limiting that throttles to 4 queries per second by default, which stays comfortably under the API ceiling. If you are running 90-day cross-platform audits with the new social/video panel, expect the rate limit to be the bottleneck, not the MCP layer. The README documents a GSC_RATE_LIMIT_QPS env var you can lower if your service account shares a project with other GSC consumers.
Read-only. The server implements the Search Analytics query endpoint and the site list endpoint, and nothing else. It cannot submit sitemaps, request indexing, remove URLs, or change any GSC setting. That is a feature, not a limitation: it keeps the security surface tiny, makes the service account permission "Restricted" safe (the minimum read scope), and means a compromised agent cannot accidentally break your GSC property.
SC-MCP closes the read-side loop that X-Hosted MCP (distribution), OpenRouter MCP (model routing), and ThreadGrab itself (mirroring) leave open. The 3-layer stack now reads: ThreadGrab mirrors the publish, X-Hosted MCP distributes it, OpenRouter MCP routes the model that drafts the next post, and SC-MCP reads the discovery data back. Each layer is a separate MCP server; together they are the working creator stack for the second half of 2026.
Want the citation-ready mirror on your own domain?
Try ThreadGrab