Skip to main content
Glama
skiddgoddamn

google-seo-mcp

by skiddgoddamn

๐Ÿ” 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


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

Related MCP server: Google Analytics MCP Server

๐Ÿ“ฆ 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": "" }
    }
  }
}
{
  "mcpServers": {
    "google-seo": {
      "command": "node",
      "args": ["F:/projects/google-seo-mcp/build/index.js"]
    }
  }
}

โ˜๏ธ 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

F
license - not found
-
quality - not tested
A
maintenance

Maintenance

โ€“Maintainers
โ€“Response time
โ€“Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/skiddgoddamn/google-seo-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server