google-seo-mcp

google-seo-mcp

Provides AI agents with hands-on control of Google SEO and analytics tools including Search Console, GA4, Tag Manager, Indexing API, and PageSpeed Insights, with self-configuring OAuth2.

Category
Visit Server

README

<div align="center">

๐Ÿ” google-seo-mcp

Full Google SEO & analytics stack for AI agents โ€” over one MCP server.

Search Console ยท Indexing API ยท GA4 (Admin + Data) ยท Tag Manager ยท PageSpeed Insights

npm version npm downloads node license MCP

</div>


A Model Context Protocol server that gives Claude (and any MCP client) hands-on control of the Google SEO and analytics stack โ€” list and claim properties, query search performance, submit URLs for indexing, spin up GA4 properties and data streams (i.e. install the measurement tag), wire up Tag Manager, and run PageSpeed audits. Ships with self-configuring OAuth2: no tokens at launch โ€” the agent walks through authorization with built-in tools.

โœจ Highlights

  • ๐Ÿ”Ž Search Console โ€” properties, sitemaps, search analytics, URL inspection
  • โšก Indexing API โ€” push URL_UPDATED / URL_DELETED notifications
  • ๐Ÿ“Š GA4 โ€” create properties & web data streams (get the Measurement ID), run reports & realtime
  • ๐Ÿท๏ธ Tag Manager โ€” accounts, containers, workspaces, tags
  • ๐Ÿšฆ PageSpeed Insights โ€” Core Web Vitals + Lighthouse, no OAuth needed
  • ๐Ÿ” Self-configuring OAuth2 โ€” loopback code capture + auto-refresh, stored locally
  • ๐Ÿ›ก๏ธ Safety rails โ€” read-only mode and per-call confirm guards

๐Ÿ“ฆ Installation

Run straight from npm with npx (no install needed), or build from source:

# from source
git clone https://github.com/skiddgoddamn/google-seo-mcp
cd google-seo-mcp
npm install && npm run build

๐Ÿ”Œ Connect to your MCP client

Add to your MCP config (e.g. ~/.claude.json or claude_desktop_config.json):

{
  "mcpServers": {
    "google-seo": {
      "command": "npx",
      "args": ["-y", "google-seo-mcp"],
      "env": { "GOOGLE_PSI_API_KEY": "" }
    }
  }
}

<details> <summary>Or point at a local build</summary>

{
  "mcpServers": {
    "google-seo": {
      "command": "node",
      "args": ["F:/projects/google-seo-mcp/build/index.js"]
    }
  }
}

</details>

โ˜๏ธ Google Cloud setup

  1. Open Google Cloud Console โ†’ APIs & Credentials
  2. Create an OAuth 2.0 Client ID โ†’ application type Desktop app
  3. Enable these APIs for the project:
    • Google Search Console API ยท Indexing API ยท Analytics Admin API ยท Analytics Data API ยท Tag Manager API
  4. On the OAuth consent screen, add your Google account as a test user (while the app is in "Testing")
  5. Keep the Client ID and Client Secret handy

๐Ÿ”‘ Authorize (self-setup)

No tokens needed at startup โ€” run these tools from your agent, in order:

Step Tool What happens
1 g_set_credentials Save your OAuth Client ID + Client Secret
2 g_authorize Opens Google's consent screen and captures the code via a local loopback server
โ†ณ g_set_code Headless fallback โ€” paste the code + redirect URI manually
โœ“ g_auth_status Check what's configured and whether the token is valid

The refresh token is saved to ~/.google-seo-mcp/config.json and reused (and auto-refreshed) on every run.

โš™๏ธ Environment variables

Variable Default Description
G_READONLY false Block every mutating tool (_add _create _update _delete _submit _set)
G_CONFIRM false Require a confirm=true argument on mutating calls
G_LOG_LEVEL INFO DEBUG ยท INFO ยท WARNING ยท ERROR
G_LOG_BODIES false Log request/response bodies to stderr (verbose)
G_LOG_FILE โ€” Append log lines to a file (default: stderr only)
GOOGLE_MCP_CONFIG_DIR ~/.google-seo-mcp Override the config directory
GOOGLE_PSI_API_KEY โ€” PageSpeed Insights key; anonymous (rate-limited) if unset

See .env.example for a ready-to-copy template.

๐Ÿงฐ Tool reference

๐Ÿ” Auth โ€” g_

Tool Description
g_auth_status Show OAuth configuration status and token validity
g_set_credentials Save OAuth client_id and client_secret
g_authorize Open the consent screen via loopback and store the refresh token
g_set_code Manually exchange an authorization code for a refresh token

๐Ÿ”Ž Search Console โ€” gsc_

Tool Description
gsc_sites_get List all Search Console properties
gsc_site_get Get a single property and your permission level
gsc_site_add Add (claim) a property
gsc_site_delete Remove a property
gsc_sitemaps_get List submitted sitemaps
gsc_sitemap_get Get a sitemap's status
gsc_sitemap_submit Submit a sitemap
gsc_sitemap_delete Delete a sitemap
gsc_search_analytics Clicks / impressions / CTR / position by query, page, country, device, date
gsc_url_inspect Index status, coverage, mobile usability, rich results

โšก Indexing API โ€” idx_

Tool Description
idx_url_submit Notify Google a URL was added/updated (URL_UPDATED)
idx_url_delete Notify Google a URL was removed (URL_DELETED)
idx_metadata Latest indexing-notification metadata for a URL

โ„น๏ธ The Indexing API is officially eligible only for pages with JobPosting or BroadcastEvent structured data. Other URLs may be ignored.

๐Ÿ“Š GA4 โ€” ga4_

Tool Description
ga4_accounts_get List Analytics accounts
ga4_properties_get List properties under an account
ga4_property_get Get a property
ga4_property_create Create a GA4 property
ga4_datastreams_get List a property's data streams
ga4_datastream_create Create a web data stream โ†’ returns the Measurement ID
ga4_datastream_get Get a data stream
ga4_run_report Run a report (metrics + dimensions over a date range)
ga4_realtime Run a realtime report

๐Ÿท๏ธ Tag Manager โ€” gtm_

Tool Description
gtm_accounts_get List GTM accounts
gtm_containers_get List containers under an account
gtm_container_create Create a container โ†’ returns its GTM-ID
gtm_workspaces_get List workspaces of a container
gtm_tags_get List tags in a workspace
gtm_tag_create Create a tag in a workspace

๐Ÿšฆ PageSpeed Insights โ€” psi_

Tool Description
psi_run Analyze a URL โ€” Core Web Vitals + Lighthouse (no OAuth required)

๐Ÿ›ก๏ธ Safety rails

  • G_READONLY=true โ€” blocks every tool whose name contains _add _create _update _delete _submit _set. Reads still work.
  • G_CONFIRM=true โ€” mutating tools return a preview and require a follow-up call with confirm: true.

๐Ÿ“„ License

MIT ยฉ skiddgoddamn

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured