MCP.Market

SEO Stack MCP server

by Raffaele86·io.github.Raffaele86/seo-stack-mcp·v0.2.0·1 stars

The complete open-source SEO data stack for AI agents: 7 sources, 86 tools, one MCP server

B78/100grade B
What users say
No reviews yet
Be the first
Safety scan
B78/100

full report

Adoption
New

1 stars46 downloads/wk

Reviews

Write one

Nobody has reviewed SEO Stack yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

SEO Stack tools (86, 5 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • adsense_alerts

    Active alerts on the AdSense account (severity, type, message).

  • adsense_by_ad_unit

    Performance per ad unit: earnings, impressions, clicks, CTR, eCPM.

  • adsense_by_country

    Revenue breakdown by country, sorted by earnings.

  • adsense_by_platform

    Revenue breakdown by device platform (Desktop, Mobile, Tablet).

  • adsense_compare_periods

    Compare two periods with percentage deltas on key metrics. Period 1 = current, period 2 = baseline. Dates in YYYY-MM-DD.

  • adsense_earnings_by_date

    Daily AdSense earnings with total, average and trend. Pass start_date/end_date (YYYY-MM-DD) or days (default 28).

  • adsense_earnings_overview

    AdSense earnings overview: estimated earnings, page views, impressions, clicks, RPM and CTR, aggregated over the last N days (default 28).

  • adsense_payments

    Recent payments on the AdSense account (date, amount, id).

  • adsense_sites

    Sites linked to the AdSense account (domain, state, auto-ads).

  • adsense_top_pages

    Top URL channels by revenue (dimension: URL_CHANNEL_NAME). Requires URL channels configured in AdSense.

  • bing_crawl_issues

    URLs with crawl problems (4xx/5xx errors, redirects, etc.). site_url: site URL. limit: max results.

  • bing_crawl_stats

    Bing crawl statistics: crawled pages, errors, redirects, etc. site_url: site URL (default: BING_SITE_URL env var).

  • bing_keyword

    Bing impression volume for an exact query (impressions + broad). query: exact term. days: lookback period in days. Note: country must be lowercase (e.g. "us", not "US"); language is a locale code (e.g. "en-US").

  • bing_keyword_stats

    Historical statistics for a keyword on Bing: impressions and trend. keyword: term to analyze. country: lowercase country code (e.g. "us"). language: locale code (e.g. "en-US").

  • bing_link_counts

    Pages with the highest number of backlinks according to Bing. site_url: site URL (default: BING_SITE_URL env var).

  • bing_pages_for_query

    Pages that rank for a specific query on Bing. query: search term to analyze.

  • bing_queries_for_page

    Search queries that drive traffic to a specific page. page: full page URL (e.g. https://example.com/some-page).

  • bing_query_page_detail

    Detailed statistics for a specific query + page combination. query: search term. page: full page URL.

  • bing_query_traffic

    Daily traffic trend for a specific query on Bing. query: search term to analyze.

  • bing_related_keywords

    Keywords related to a search term on Bing, with impression data. keyword: seed term. days: lookback period in days.

  • bing_sitemaps

    List all sitemaps/feeds submitted to Bing. site_url: site URL (default: BING_SITE_URL env var).

  • bing_sites

    List all sites verified in the Bing Webmaster Tools account.

  • bing_submission_quota

    Check the URL submission quota for Bing. Shows the daily and monthly quotas (limits).

  • bing_submit_sitemapwrite action

    Submit a new sitemap/feed to Bing. feed_url: sitemap URL (e.g. https://example.com/sitemap.xml).

  • bing_submit_urlwrite action

    Submit a URL to Bing for indexing. url: full URL to submit.

  • bing_submit_urls_batchwrite action

    Submit a batch of URLs to Bing for indexing (max 500). urls: list of full URLs to submit.

  • bing_top_pages

    Top pages on Bing with clicks, impressions and average position. site_url: site URL (default: BING_SITE_URL env var). limit: max results.

  • bing_top_queries

    Top Bing search queries with clicks, impressions and average position. site_url: site URL (default: BING_SITE_URL env var). limit: max results.

  • bing_traffic_stats

    Daily Bing traffic statistics: clicks and impressions over time. site_url: site URL. days: last N days to show.

  • bing_url_info

    Indexing status of a specific URL on Bing. url: full URL to check.

  • bing_url_links

    Inbound backlinks to a specific URL according to Bing. url: full URL to find backlinks for.

  • bing_url_traffic

    Traffic data for a specific URL on Bing. url: full URL to analyze.

  • clarity_breakdown

    Free-form raw breakdown (1-3 dimensions). Power-user — costs 1 quota unit if not already cached.

  • clarity_dead_clicks

    Top URLs with dead clicks (clicks on non-interactive elements — a UX problem signal).

  • clarity_engagement

    Engagement Time + Scroll Depth per URL (or another dimension).

  • clarity_excessive_scroll

    Top URLs with excessive scrolling (users hunting for info they can't easily find).

  • clarity_popular_pages

    Top URLs by visits over the last days (Popular Pages metric, dimension=URL).

  • clarity_quickback_clicks

    Top URLs with quickback clicks (user goes back immediately — page not relevant).

  • clarity_quota_status

    Daily quota status (local counter, does not call the API).

  • clarity_rage_clicks

    Top URLs with rage clicks (fast repeated clicks — user frustration).

  • clarity_script_errors

    Top URLs with JS errors + error clicks (technical problems on the page).

  • clarity_traffic

    Traffic breakdown from Microsoft Clarity (sessions, bot %, pages per session).

  • ga4_compare_periods

    Compare two periods with percentage delta on key metrics. Period 1 is the current period, Period 2 is the comparison (previous) one. Dates in YYYY-MM-DD format. property_id: GA4 property ID (e.g. '123456789'); defaults to GA4_PROPERTY_ID env var.

  • ga4_conversion_paths

    User paths: acquisition source → landing page with sessions and users. Dates in YYYY-MM-DD format or 'NdaysAgo', 'yesterday', 'today'. property_id: GA4 property ID (e.g. '123456789'); defaults to GA4_PROPERTY_ID env var.

  • ga4_events

    Top GA4 events with count and number of users. Dates in YYYY-MM-DD format or 'NdaysAgo', 'yesterday', 'today'. property_id: GA4 property ID (e.g. '123456789'); defaults to GA4_PROPERTY_ID env var.

  • ga4_landing_pages

    Entry pages (landing pages) with sessions, users and bounce rate. Dates in YYYY-MM-DD format or 'NdaysAgo', 'yesterday', 'today'. property_id: GA4 property ID (e.g. '123456789'); defaults to GA4_PROPERTY_ID env var.

  • ga4_overview

    Site overview: users, sessions, pageviews, bounce rate, average session duration. Dates in YYYY-MM-DD format or 'NdaysAgo', 'yesterday', 'today'. property_id: GA4 property ID (e.g. '123456789'); defaults to GA4_PROPERTY_ID env var.

  • ga4_page_performance

    Detailed performance of a single page with device and source breakdown. page_path: page path (e.g. '/pricing'). Dates in YYYY-MM-DD format or 'NdaysAgo', 'yesterday', 'today'. property_id: GA4 property ID (e.g. '123456789'); defaults to GA4_PROPERTY_ID env var.

  • ga4_realtime

    Realtime report: pages currently being viewed and active users. No date parameters required. property_id: GA4 property ID (e.g. '123456789'); defaults to GA4_PROPERTY_ID env var.

  • ga4_top_pages

    Top pages by traffic with full metrics (pageviews, users, duration, bounce rate). Dates in YYYY-MM-DD format or 'NdaysAgo', 'yesterday', 'today'. property_id: GA4 property ID (e.g. '123456789'); defaults to GA4_PROPERTY_ID env var.

  • ga4_traffic_sources

    Traffic breakdown by source/medium (e.g. google/organic, direct/none). Dates in YYYY-MM-DD format or 'NdaysAgo', 'yesterday', 'today'. property_id: GA4 property ID (e.g. '123456789'); defaults to GA4_PROPERTY_ID env var.

  • ga4_user_demographics

    User demographics breakdown: country, device, browser, language. Dates in YYYY-MM-DD format or 'NdaysAgo', 'yesterday', 'today'. property_id: GA4 property ID (e.g. '123456789'); defaults to GA4_PROPERTY_ID env var.

  • gsc_bulk_inspect_urls

    Inspect multiple URLs in batch via the URL Inspection API. Max 50 URLs per call.

  • gsc_bulk_request_indexing

    Request indexing for multiple URLs via the Google Indexing API. Max 50 URLs. WARNING: Google enforces a daily limit of ~200 requests. Requires the indexing scope.

  • gsc_cannibalization_check

    Find queries where multiple pages compete (keyword cannibalization). Shows queries with 2+ ranking pages.

  • gsc_compare_periods

    Compare two periods: shows deltas of clicks, impressions, CTR and position per item. Useful for month-over-month or week-over-week comparisons.

  • gsc_content_gap_analysis

    Content gap analysis: queries where the competitor ranks but you don't (or you are far behind). Requires the competitor property to be verified in your GSC account (e.g. another of your properties).

  • gsc_country_performance

    Performance by country: clicks, impressions, CTR and average position. Default: last 28 days.

  • gsc_daily_stats

    Aggregated daily site statistics: clicks, impressions, CTR and average position per day.

  • gsc_declining_queries

    Queries losing clicks/positions: compares last N days vs the equivalent previous period.

  • gsc_delete_sitemapwrite action

    Remove a sitemap from Google Search Console. Requires write scope on the credentials.

  • gsc_device_performance

    Compare performance across MOBILE vs DESKTOP vs TABLET. Default: last 28 days.

  • gsc_indexing_status_summary

    Indexing status summary for multiple URLs: how many indexed, not indexed, and errored.

  • gsc_inspect_url

    Inspect a URL via the Google Search Console URL Inspection API.

  • gsc_keyword_opportunities

    Queries with high impressions but low CTR in position 5-20: optimization opportunities. These keywords have visibility but don't get clicked — improve title/meta description.

  • gsc_list_sitemaps

    List all sitemaps of a site in Google Search Console.

  • gsc_list_sites

    List all Google Search Console properties available to the configured credentials.

  • gsc_low_hanging_fruit

    Queries in position 3-10 with high impression volume: small optimizations can push them into the top 3. Sorted by potential extra clicks.

  • gsc_page_trend

    Daily trend for a specific page over the last N days (default 90).

  • gsc_pages_for_query

    Which pages rank for a specific query? Shows all pages with performance data.

  • gsc_queries_for_page

    Which queries drive traffic to a specific page? Shows all keywords with performance data.

  • gsc_query_trend

    Daily trend for a specific query over the last N days (default 90).

  • gsc_request_indexing

    Request indexing of a URL via the Google Indexing API. Requires the indexing scope on the credentials.

  • gsc_rising_queries

    Rising queries: compares last N days vs the equivalent previous period.

  • gsc_search_analytics

    Query Search Analytics: clicks, impressions, CTR and position for the requested dimensions. Available dimensions: query, page, country, device, searchAppearance, date.

  • gsc_search_analytics_filtered

    Search Analytics with advanced filters. Filters: query_contains, query_regex, page_contains, page_regex, country (e.g. 'ita'), device (MOBILE/DESKTOP/TABLET).

  • gsc_search_appearance

    Performance by SERP result type (rich snippet, video, FAQ, etc.). Default: last 28 days.

  • gsc_submit_sitemapwrite action

    Submit a sitemap to Google Search Console. Requires write scope on the credentials.

  • gsc_top_pages

    Top pages by clicks or impressions. order_by: clicks, impressions, ctr, position. Default: last 28 days.

  • gsc_top_queries

    Top queries by clicks or impressions. order_by: clicks, impressions, ctr, position. Default: last 28 days.

  • gsc_weekly_report

    Automatic weekly report: last 7 days vs previous 7 days metrics with deltas and top queries/pages.

  • kp_historical_metrics

    REAL historical Keyword Planner metrics for a list of known keywords.

  • kp_keyword_ideas

    Keyword ideas with REAL Google Keyword Planner metrics.

  • kp_status

    Keyword Planner source status: google-ads library, credential completeness (masked) and a live connection test. Never fakes data: it states explicitly what is configured and what is not.

  • kp_suggest_geo_target

    Resolve a location name to its geo target constant ID (use the ID as location_id in the other kp_* tools).

  • pagerank_score

    Domain authority score (0-10) via Open PageRank.

Public scan report

scanner v0.1.9 · 2026-09-25 · same rubric, same numbers if you re-run it

no findings
  • Code scan27 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancelast push 68 days ago12/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 78/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How SEO Stack compares

Against every graded SEO MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
78/100
higher than 57% of 769 SEO servers
Tools
86
the typical SEO server has 6
Tools that change things
6%
typical: 0%. Fewer write tools means less an agent can break
GitHub stars
1
more than 65% of 405 SEO servers
Downloads a week
46
more than 38% of 170 SEO servers with a package

What its tools let an agent do: 81 read · 5 change

Install SEO Stack in Claude Code, Cursor or VS Code

claude mcp add seo-stack-mcp -- uvx seo-stack-mcp
Add to Cursor

What the publisher says

From the SEO Stack repository's README, as published. We do not edit it. Read it on GitHub

seo-stack-mcp

<!-- mcp-name: io.github.Raffaele86/seo-stack-mcp -->

The complete open-source SEO data stack for AI agents. Google Search Console, Google Analytics 4, Bing Webmaster Tools, Microsoft Clarity, Google AdSense, Google Keyword Planner and Open PageRank in a single MCP server — with built-in analyst tools (cannibalization check, low-hanging fruit, content gap, weekly report), not just raw API wrappers.

Self-hosted, free, MIT. Works with Claude Desktop, Claude Code, Cursor, and any MCP client.

Why this instead of N separate servers?

  • One install, one config — instead of wiring up 7 different MCP servers with 7 auth setups.
  • Analyst tools included — ask "which queries are declining this month?" or "find my low-hanging-fruit keywords" and get an answer computed server-side, not a raw data dump your agent has to crunch.
  • Sources are optional — configure only what you use; tools appear only for configured sources.
  • Self-hosted — your tokens stay on your machine. No third-party hosted gateway reading your Search Console.

Quickstart (60 seconds)

Add to your MCP client config (Claude Desktop claudedesktopconfig.json, Cursor mcp.json, or claude mcp add):

{
  "mcpServers": {
    "seo-stack": {
      "command": "uvx",
      "args": ["seo-stack-mcp"],
      "env": {
        "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/service-account.json",
        "GA4_PROPERTY_ID": "123456789",
        "BING_WEBMASTER_API_KEY": "your-key",
        "CLARITY_API_TOKEN": "your-token"
      }
    }
  }
}

Every env var is optional — set only the sources you want. That's it: restart your client and ask "what are my top queries this week?".

To run the latest development version straight from GitHub, use "args": ["--from", "git+https://github.com/Raffaele86/seo-stack-mcp", "seo-stack-mcp"] instead.

Credentials

Optional defaults: GSCSITEURL, BINGSITEURL (so you don't repeat the site on every question), ADSENSECURRENCY (default USD), GOOGLEADSLOCATIONID / GOOGLEADSLANGUAGE_ID (Keyword Planner geo/language defaults, default US / English).

Tools

Google Search Console (29 tools)

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

SEO Stack: common questions

Is SEO Stack MCP server safe?
Mostly: it is graded B (78/100). Read the SEO Stack safety report
How do I install SEO Stack?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does SEO Stack need an API key?
Yes. The registry entry asks for BING_WEBMASTER_API_KEY, CLARITY_API_TOKEN, GOOGLE_ADS_DEVELOPER_TOKEN, GOOGLE_ADS_CLIENT_SECRET and 2 more.
Is SEO Stack maintained?
The last commit was 108 days ago (2026-07-19). The latest release is v0.2.0.
What can I use instead of SEO Stack?
Servers from other publishers that do the same job: SEO Skill MCP server, Google Ads + Meta Ads + SEO/GEO MCP server and SEO Monster MCP server.
How does SEO Stack compare with other SEO MCP servers?
safety score 78/100 (higher than 57% of 769 SEO servers); tools 86 (the typical SEO server has 6); tools that change things 6% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.

Alternatives to SEO Stack

Same job from other publishers: the closest match first, then the best rated.

  • SEO Skill
    Free Google Search Console MCP: your real GSC, Google Analytics and keyword data for AI agents.
    A
  • Google Ads + Meta Ads + SEO/GEO MCP
    Google Ads, Meta Ads, Google Analytics (GA4) & Search Console MCP server by Ryze AI
    A
  • SEO Monster
    Local-first SEO MCP: track AI citations, Search Console, GA4, PageSpeed, Cloudflare, IndexNow, CrUX.
    A
  • Search Console MCP
    Google Search Console + Bing + GA4 + AdSense — unified SEO intelligence for AI agents.
    C
  • SEO Audit Console
    Technical SEO in Claude: GSC + crawl + DataForSEO - audit, portfolio, market sizing, content recon.
    A