From c8fcdcda20e29d43c220a4e614842007fddf2464 Mon Sep 17 00:00:00 2001
From: Ben Senescu <44480372+bensenescu@users.noreply.github.com>
Date: Thu, 4 Jun 2026 18:07:00 -0400
Subject: [PATCH] website: google search console mcp landing page (#237)
---
.../marketing/google-search-console-mcp.mdx | 72 +++++++
web/scripts/generate-sitemap.js | 1 +
web/src/components/comparison-table.tsx | 196 ++++++++++++++++++
web/src/components/site-footer.tsx | 56 +++--
web/src/routeTree.gen.ts | 22 ++
web/src/routes/_marketing.tsx | 17 +-
web/src/routes/_marketing/features/index.tsx | 62 ++++--
web/src/routes/_marketing/features/mcp.tsx | 48 ++++-
.../_marketing/google-search-console-mcp.tsx | 133 ++++++++++++
9 files changed, 567 insertions(+), 40 deletions(-)
create mode 100644 web/content/marketing/google-search-console-mcp.mdx
create mode 100644 web/src/components/comparison-table.tsx
create mode 100644 web/src/routes/_marketing/google-search-console-mcp.tsx
diff --git a/web/content/marketing/google-search-console-mcp.mdx b/web/content/marketing/google-search-console-mcp.mdx
new file mode 100644
index 0000000..3483a5c
--- /dev/null
+++ b/web/content/marketing/google-search-console-mcp.mdx
@@ -0,0 +1,72 @@
+---
+title: Free Google Search Console MCP
+description: Connect Google Search Console to your AI agent for free. Read clicks, impressions, CTR, position, and indexing through the OpenSEO MCP, with no Google Cloud setup.
+---
+
+Many Google Search Console (GSC) MCP servers are open source and free, but they take a lot of effort to set up. You need to create a Google Cloud project, enable an API, build an OAuth client, download a `credentials.json`, then keep a local server running. OpenSEO handles the Google connection for you. You sign up, connect your property, and start asking.
+
+## Setup: Simple, zero-config
+
+### With OpenSEO
+
+1. Sign up for OpenSEO.
+2. Go through the onboarding.
+2. When prompted, click **Connect Search Console** and pick your property.
+3. Add the [OpenSEO MCP endpoint](/docs/mcp) to Claude, Cursor, or ChatGPT.
+
+### The DIY way (every other GSC MCP)
+
+1. Create a Google Cloud project
+2. Enable the Search Console API
+3. Configure the OAuth consent screen
+4. Create OAuth client credentials
+5. Download `credentials.json`
+6. Install and run a local MCP server
+
+## Things to actually ask it
+
+- "Which queries am I ranking on page two for that I'm close to pushing onto page one?"
+- "Show me pages where impressions went up but clicks stayed flat — probably a title or meta problem."
+- "Are any of my blog posts competing with each other for the same query?"
+- "Is `/pricing` indexed? If not, what's blocking it?"
+- "Which queries lost the most clicks over the last 28 days?"
+
+## What your agent can read
+
+Two read-only tools over the property you connect. Both pull Google's own numbers, and neither uses credits.
+
+**Search performance.** Clicks, impressions, CTR, and average position for your site, sliced by query, page, country, device, and date. Pull up to 16 months of history in a single question.
+
+**URL inspection.** Whether a page is indexed and, if not, why: coverage status, last crawl, the canonical Google chose versus the one you declared, plus mobile and rich-result checks. Up to 10 URLs at a time.
+
+The agent can read and inspect. It cannot change anything in your account.
+
+## Why it's free (and what isn't)
+
+Google doesn't charge you to read your own Search Console data, so neither do we. The Search Console tools use zero credits. When you want more, like keyword research, rank tracking, or backlink data, those tools run through the same MCP and use credits. Connect Search Console first, and reach for the rest when you need it.
+
+## OpenSEO vs. the alternatives
+
+
+
+## FAQ
+
+### Is it really free?
+
+Yes, all you need is an OpenSEO account. OpenSEO's other features do use usage credits, but aren't necessary to use the Google Search Console MCP.
+
+### Is it open source?
+
+Yes. OpenSEO is open source, so you can self-host the whole thing, including the Search Console MCP. The one-click connection here uses OpenSEO's hosted Google app. If you self-host, you bring your own Google OAuth client, the same Cloud-console step the hosted version saves you. Hosted means no setup; self-hosted means full control.
+
+### Is it read-only?
+
+Yes. OpenSEO requests read-only access (`webmasters.readonly`). Your agent can read performance data and inspect URLs, but it can't change your account.
+
+### Which AI clients work?
+
+Any MCP client, including Claude Code, Cursor, Codex, and OpenClaw. Add the OpenSEO MCP endpoint and sign in.
+
+### How fresh is the data?
+
+It's Google's own data, so the most recent few days can be incomplete. History runs back 16 months, the same as the Search Console interface.
diff --git a/web/scripts/generate-sitemap.js b/web/scripts/generate-sitemap.js
index c6dc264..8ecc146 100644
--- a/web/scripts/generate-sitemap.js
+++ b/web/scripts/generate-sitemap.js
@@ -25,6 +25,7 @@ const STATIC_PATHS = [
"/features",
"/features/mcp",
"/open-source-seo",
+ "/google-search-console-mcp",
...Object.values(FEATURE_PAGE_SLUGS).map((slug) => `/features/${slug}`),
];
diff --git a/web/src/components/comparison-table.tsx b/web/src/components/comparison-table.tsx
new file mode 100644
index 0000000..dca7304
--- /dev/null
+++ b/web/src/components/comparison-table.tsx
@@ -0,0 +1,196 @@
+type Tone = "positive" | "negative" | "neutral";
+
+type Cell = {
+ text: string;
+ tone?: Tone;
+ code?: boolean;
+};
+
+type Column = {
+ name: string;
+ highlight?: boolean;
+};
+
+const COLUMNS: Column[] = [
+ { name: "OpenSEO", highlight: true },
+ { name: "DIY open-source repos" },
+ { name: "Data-pipeline tools" },
+];
+
+const ROWS: { label: string; cells: Cell[] }[] = [
+ {
+ label: "Setup",
+ cells: [
+ { text: "Simple, guided onboarding", tone: "positive" },
+ { text: "~30 min in the Google Cloud console" },
+ { text: "Account + connector setup" },
+ ],
+ },
+ {
+ label: "Google Cloud project",
+ cells: [
+ { text: "Not needed", tone: "positive" },
+ { text: "Required", tone: "negative" },
+ { text: "Usually not needed", tone: "positive" },
+ ],
+ },
+ {
+ label: "Price",
+ cells: [
+ { text: "Free, no credits", tone: "positive" },
+ { text: "Free (your time + your own quota)" },
+ { text: "Paid or limited free tier", tone: "negative" },
+ ],
+ },
+ {
+ label: "Read-only and safe",
+ cells: [
+ { text: "webmasters.readonly", tone: "positive", code: true },
+ { text: "Depends on the scopes you grant" },
+ { text: "Varies" },
+ ],
+ },
+ {
+ label: "Built for SEO",
+ cells: [
+ {
+ text: "Also does keyword, rank, and backlink research",
+ tone: "positive",
+ },
+ { text: "Search Console only", tone: "negative" },
+ { text: "Reporting and analytics focus" },
+ ],
+ },
+ {
+ label: "Self-host option",
+ cells: [
+ { text: "Yes", tone: "positive" },
+ { text: "Yes", tone: "positive" },
+ { text: "No", tone: "negative" },
+ ],
+ },
+];
+
+export function ComparisonTable() {
+ return (
+
{featureGroups.map((group) => (
diff --git a/web/src/routes/_marketing/features/mcp.tsx b/web/src/routes/_marketing/features/mcp.tsx
index 0999c12..80a7af9 100644
--- a/web/src/routes/_marketing/features/mcp.tsx
+++ b/web/src/routes/_marketing/features/mcp.tsx
@@ -2,7 +2,7 @@ import { createFileRoute } from "@tanstack/react-router";
import { buildPageSeo } from "@/lib/seo";
const mcpDescription =
- "Connect OpenSEO MCP so compatible AI clients can call keyword, SERP, domain, backlink, saved keyword, and rank-tracking tools.";
+ "Connect OpenSEO MCP so compatible AI clients can call keyword, SERP, domain, backlink, saved keyword, rank-tracking, and Google Search Console tools.";
const toolCategories = [
{
@@ -39,13 +39,33 @@ const toolCategories = [
},
],
},
+ {
+ label: "Search Console",
+ tools: [
+ {
+ title: "Get GSC performance",
+ description:
+ "Read clicks, impressions, CTR, and position from the connected property.",
+ },
+ {
+ title: "Inspect URLs",
+ description:
+ "Check index coverage, crawl, canonical, mobile, and rich-result signals.",
+ },
+ {
+ title: "Use first-party data",
+ description:
+ "Run read-only Search Console calls for free with no OpenSEO credits.",
+ },
+ ],
+ },
] as const;
const workflows = [
{
title: "Research with live SEO data",
description:
- "Give Codex, Claude, and other MCP clients access to OpenSEO keyword, SERP, domain, backlink, saved keyword, and rank-tracking data.",
+ "Give Codex, Claude, and other MCP clients access to OpenSEO keyword, SERP, domain, backlink, saved keyword, rank-tracking, and Search Console data.",
},
{
title: "Keep the agent focused",
@@ -80,7 +100,8 @@ function McpPage() {
Connect OpenSEO to your AI agent so it can research keywords, inspect
SERPs, compare competitors, summarize backlink context, save keyword
- opportunities, and review rank-tracking data with live SEO context.
+ opportunities, review rank-tracking data, and read first-party Search
+ Console signals with live SEO context.
@@ -134,7 +155,7 @@ function McpPage() {
Available tool groups
-
+
{toolCategories.map((category) => (
@@ -157,6 +178,25 @@ function McpPage() {
+
+
+ New: free Google Search Console MCP
+
+
+ OpenSEO MCP can read Search Console performance and URL inspection
+ data from a connected hosted project. These tools are read-only and do
+ not use OpenSEO credits.
+