Part of the DigestSEO suite of open-source SEO tools.
- Product: digestseo.com/gsc-mcp
- Support: digestseo.com/support
- Privacy: digestseo.com/privacy
The self-hosting launcher is available as @digestseo/mcp-gsc:
npx -y @digestseo/mcp-gscFor Google OAuth and Cloudflare deployment configuration, follow SETUP.md.
Every deployed instance exposes the same endpoint shape:
https://<your-worker>.workers.dev/mcp
The DigestSEO-hosted instance is available at:
https://mcp-gsc.digestseo.com/mcp
Claude Code
claude mcp add --transport http gsc https://<your-worker>.workers.dev/mcpCursor
ChatGPT — add it as a custom connector; see Connect in your AI client below.
A self-hostable Model Context Protocol (MCP) server for Google Search Console. Connect it to Claude.ai, Cursor, ChatGPT, or any MCP-compatible client and ask your AI assistant about your site's organic search performance — impressions, clicks, top queries, index status, and sitemap health — straight from your own Google account.
It runs on Cloudflare Workers and ships with one-click Google OAuth onboarding: connect the server in your client, sign in with Google once, grant the requested Google Search Console permissions, and you're done. No API keys to copy around and no service-account JSON to manage.
Prefer zero setup? The hosted version — with automatic weekly email digests delivered to your inbox — is at digestseo.com. This repository is the open-source core you can run yourself.
This server exposes 17 tools. Read-only analytics and reporting tools are marked with MCP's readOnlyHint; the write tools below can change Search Console properties, sitemaps, or indexing state.
| Tool | Access | What it does |
|---|---|---|
server.capabilities |
Read | List every tool this server exposes and report whether your Google connection is currently authenticated (connected / not_connected). Takes no arguments — a good first call for discovery. |
sites.list |
Read | List the Search Console properties the connected Google account can access (siteUrl, permissionLevel). |
analytics.query |
Read | Impressions, clicks, CTR, and average position over a date range, with dimensions, filters, pagination, and selectable search type. |
urls.inspect |
Read | Google's URL Inspection report for a single page. |
sitemaps.list / sitemaps.get |
Read | List submitted sitemaps or retrieve one sitemap's details. |
insights.quick_wins / insights.cannibalization / insights.content_decay |
Read | Surface optimization opportunities, competing pages, and declining content. |
indexing.list_pages / analytics.compare |
Read | Analyze pages receiving impressions and compare two periods. |
reports.weekly_digest |
Read | Generate a plain-language seven-day performance report with movers, top pages, and one recommended action. |
sites.add / sites.delete |
Write | Add or remove a Search Console property. |
sitemaps.submit / sitemaps.delete |
Write | Submit or remove a sitemap. |
indexing.request |
Write | Request indexing for an eligible URL through the Google Indexing API. |
The server requests Google Search Console and Indexing API scopes. Use a Google account with only the property access you intend to delegate, and review write-tool calls before approving them.
Once connected, ask your assistant things like:
- "What are my top 20 queries by clicks in the last 28 days?"
- "Compare impressions for example.com this month vs last month — which pages dropped?"
- "Is
https://example.com/pricingindexed? When was it last crawled?" - "Which queries does my blog rank position 5–15 for? Those are my quick wins."
- "Give me a weekly digest for
sc-domain:example.comending today." - "Do any of my sitemaps have errors or warnings?"
- "Split my clicks into brand vs non-brand using a regex on the query."
- "How is my site doing in Google Discover vs regular web search?"
Once you've deployed the server (see SETUP.md), connect it by pasting your Worker's /mcp URL into your client:
https://<your-worker>.workers.dev/mcp
- Claude.ai — Settings → Connectors → Add custom connector → paste the
/mcpURL. Leave Client ID and Client Secret blank. On first use, Claude opens a Google sign-in flow; grant read access and the connector turns green. - Cursor — add it as a custom MCP server pointing at the same
/mcpURL. - ChatGPT (with connector/MCP support) — add a custom connector with the
/mcpURL.
Any MCP-compatible client works — they all point at the same /mcp endpoint and share the same OAuth flow.
Self-hosting means bringing your own Google OAuth credentials and Cloudflare account. The full, copy-pasteable walkthrough is in SETUP.md — including an important note about Google's OAuth verification and the 7-day refresh-token limit while your app is unverified.
Quick shape:
git clone https://github.com/<you>/mcp-gsc.git
cd mcp-gsc
npm install
cp wrangler.example.jsonc wrangler.jsonc # then paste in your KV ids
# set GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET / TOKEN_ENCRYPTION_KEY as secrets
npm run deploySee SETUP.md for every step in detail.
npm install
npm test # typecheck + offline unit tests (what CI runs)
npm run dev # wrangler dev (local)
npm run test:smoke # structural smoke tests against a deploymentContributions welcome — see CONTRIBUTING.md.
MIT © 2026 DigestSEO.
Built and maintained by Tomi Šeregi, the builder behind digestseo.com — weekly SEO digests for non-technical site owners.