Seo Stack Mcp

io.github.Raffaele86由 GitHub 帳號 Raffaele86 發布v0.2.0更新於 Oct 24, 2026

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

概覽

AI 產生的概覽

自架式的 SEO 資料 MCP 伺服器,讓助理統一存取 Search Console、GA4、Bing、Clarity、AdSense、關鍵字規劃工具和 PageRank,並內建分析工具。

可以做什麼
查詢 Google Search Console 的搜尋成效、檢查網址、管理網站地圖並要求建立索引,含關鍵字蠶食、內容缺口與週報分析。讀取 Google Analytics 4 總覽、到達頁、流量來源、事件、受眾與即時資料。取得 Bing 網站管理員工具的流量、檢索、關鍵字與反向連結資料,並提交網址或網站地圖。檢視 Microsoft Clarity 的使用體驗訊號,如暴怒點擊、無效點擊、捲動深度與指令碼錯誤。查看 AdSense 收益、付款、廣告單元與警示,並取得關鍵字規劃工具的關鍵字建議與指標。透過 Open PageRank 查詢網域權重分數。
適用情境
適合同時使用多個免費 SEO 與數據分析來源、希望以一套助理設定取代多個伺服器的人,也適合需要下降查詢、易提升關鍵字、期間比較等伺服器端分析而非原始資料的人。
執行需求
以 Python 套件形式透過 uvx 或 pip 在本機執行,需要 Python 工具鏈。各資料來源皆為選用,由各自憑證啟用:Search Console 與 GA4 需 Google 服務帳戶 JSON 路徑或 OAuth 用戶端 JSON,以及 GA4 資源 ID 和網站網址;Bing 與 Clarity 需 API 金鑰;AdSense 需帳戶 ID 加 Google 憑證;關鍵字規劃工具需 Google Ads 開發人員權杖與 OAuth 參數並安裝 google-ads 附加套件;Open PageRank 需 API 金鑰。需能連線各服務商 API。
安裝前請注意
需保存多項密鑰,包括 Google Ads 用戶端密鑰、開發人員權杖與更新權杖、Bing 與 Clarity 金鑰及 Open PageRank 金鑰;服務帳戶金鑰檔可存取你的 Google 資源。部分工具會寫入外部服務:提交或刪除網站地圖、要求建立索引會改變 Search Console 與 Bing 的實際狀態,且需要寫入權限。AdSense 工具會揭露收益與付款資料。OAuth 權杖會快取在本機。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Seo Stack Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

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 claude_desktop_config.json, Cursor mcp.json, or claude mcp add):

json
{  "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

SourceWhat you needWhere to get it
GSC + GA4Service account JSON (recommended) → GOOGLE_APPLICATION_CREDENTIALSGoogle Cloud Console → create service account → enable Search Console API + Analytics Data API → add the SA email as a user in GSC / GA4
GSC + GA4 (alt)OAuth desktop client JSON → SEO_STACK_OAUTH_CLIENTFirst run opens a browser for consent; refresh token cached in ~/.config/seo-stack-mcp/
BingBING_WEBMASTER_API_KEYBing Webmaster Tools → Settings → API access
ClarityCLARITY_API_TOKENMicrosoft Clarity → project → Settings → Data Export API
AdSenseGoogle credentials above + ADSENSE_ACCOUNT_ID (accounts/pub-XXXX...)AdSense → Account → Settings → Account information. Enable the AdSense Management API in Google Cloud. If you use OAuth and enable AdSense later, delete the cached token in ~/.config/seo-stack-mcp/ to re-consent with the new scope
Keyword PlannerGOOGLE_ADS_DEVELOPER_TOKEN, GOOGLE_ADS_CLIENT_ID, GOOGLE_ADS_CLIENT_SECRET, GOOGLE_ADS_REFRESH_TOKEN, GOOGLE_ADS_CUSTOMER_ID (+ GOOGLE_ADS_LOGIN_CUSTOMER_ID under an MCC)Google Ads API Center → developer token (Basic access is enough; API calls are free). Also needs the google-ads extra: uvx --with google-ads seo-stack-mcp or pip install seo-stack-mcp[ads]
Open PageRankOPENPAGERANK_API_KEYOpen PageRank — free API key, 10,000 calls/hour

Optional defaults: GSC_SITE_URL, BING_SITE_URL (so you don't repeat the site on every question), ADSENSE_CURRENCY (default USD), GOOGLE_ADS_LOCATION_ID / GOOGLE_ADS_LANGUAGE_ID (Keyword Planner geo/language defaults, default US / English).

Tools

Google Search Console (29 tools)

ToolDescription
gsc_bulk_inspect_urlsInspect multiple URLs in batch via the URL Inspection API. Max 50 URLs per call.
gsc_bulk_request_indexingRequest indexing for multiple URLs via the Google Indexing API. Max 50 URLs.
gsc_cannibalization_checkFind queries where multiple pages compete (keyword cannibalization). Shows queries with 2+ ranking pages.
gsc_compare_periodsCompare two periods: shows deltas of clicks, impressions, CTR and position per item.
gsc_content_gap_analysisContent gap analysis: queries where the competitor ranks but you don't (or you are far behind).
gsc_country_performancePerformance by country: clicks, impressions, CTR and average position. Default: last 28 days.
gsc_daily_statsAggregated daily site statistics: clicks, impressions, CTR and average position per day.
gsc_declining_queriesQueries losing clicks/positions: compares last N days vs the equivalent previous period.
gsc_delete_sitemapRemove a sitemap from Google Search Console. Requires write scope on the credentials.
gsc_device_performanceCompare performance across MOBILE vs DESKTOP vs TABLET. Default: last 28 days.
gsc_indexing_status_summaryIndexing status summary for multiple URLs: how many indexed, not indexed, and errored.
gsc_inspect_urlInspect a URL via the Google Search Console URL Inspection API.
gsc_keyword_opportunitiesQueries with high impressions but low CTR in position 5-20: optimization opportunities.
gsc_list_sitemapsList all sitemaps of a site in Google Search Console.
gsc_list_sitesList all Google Search Console properties available to the configured credentials.
gsc_low_hanging_fruitQueries in position 3-10 with high impression volume: small optimizations can push them into the top 3.
gsc_page_trendDaily trend for a specific page over the last N days (default 90).
gsc_pages_for_queryWhich pages rank for a specific query? Shows all pages with performance data.
gsc_queries_for_pageWhich queries drive traffic to a specific page? Shows all keywords with performance data.
gsc_query_trendDaily trend for a specific query over the last N days (default 90).
gsc_request_indexingRequest indexing of a URL via the Google Indexing API.
gsc_rising_queriesRising queries: compares last N days vs the equivalent previous period.
gsc_search_analyticsQuery Search Analytics: clicks, impressions, CTR and position for the requested dimensions.
gsc_search_analytics_filteredSearch Analytics with advanced filters. Filters: query_contains, query_regex, page_contains, page_regex, country (e.g. 'ita'), device (MOBILE/DESKTOP/TABLET).
gsc_search_appearancePerformance by SERP result type (rich snippet, video, FAQ, etc.). Default: last 28 days.
gsc_submit_sitemapSubmit a sitemap to Google Search Console. Requires write scope on the credentials.
gsc_top_pagesTop pages by clicks or impressions. order_by: clicks, impressions, ctr, position. Default: last 28 days.
gsc_top_queriesTop queries by clicks or impressions. order_by: clicks, impressions, ctr, position. Default: last 28 days.
gsc_weekly_reportAutomatic weekly report: last 7 days vs previous 7 days metrics with deltas and top queries/pages.

Google Analytics 4 (10 tools)

ToolDescription
ga4_compare_periodsCompare two periods with percentage delta on key metrics.
ga4_conversion_pathsUser paths: acquisition source → landing page with sessions and users.
ga4_eventsTop GA4 events with count and number of users.
ga4_landing_pagesEntry pages (landing pages) with sessions, users and bounce rate.
ga4_overviewSite overview: users, sessions, pageviews, bounce rate, average session duration.
ga4_page_performanceDetailed performance of a single page with device and source breakdown.
ga4_realtimeRealtime report: pages currently being viewed and active users.
ga4_top_pagesTop pages by traffic with full metrics (pageviews, users, duration, bounce rate).
ga4_traffic_sourcesTraffic breakdown by source/medium (e.g. google/organic, direct/none).
ga4_user_demographicsUser demographics breakdown: country, device, browser, language.

Bing Webmaster Tools (22 tools)

ToolDescription
bing_crawl_issuesURLs with crawl problems (4xx/5xx errors, redirects, etc.).
bing_crawl_statsBing crawl statistics: crawled pages, errors, redirects, etc.
bing_keywordBing impression volume for an exact query (impressions + broad).
bing_keyword_statsHistorical statistics for a keyword on Bing: impressions and trend.
bing_link_countsPages with the highest number of backlinks according to Bing.
bing_pages_for_queryPages that rank for a specific query on Bing.
bing_queries_for_pageSearch queries that drive traffic to a specific page.
bing_query_page_detailDetailed statistics for a specific query + page combination.
bing_query_trafficDaily traffic trend for a specific query on Bing.
bing_related_keywordsKeywords related to a search term on Bing, with impression data.
bing_sitemapsList all sitemaps/feeds submitted to Bing.
bing_sitesList all sites verified in the Bing Webmaster Tools account.
bing_submission_quotaCheck the URL submission quota for Bing.
bing_submit_sitemapSubmit a new sitemap/feed to Bing.
bing_submit_urlSubmit a URL to Bing for indexing.
bing_submit_urls_batchSubmit a batch of URLs to Bing for indexing (max 500).
bing_top_pagesTop pages on Bing with clicks, impressions and average position.
bing_top_queriesTop Bing search queries with clicks, impressions and average position.
bing_traffic_statsDaily Bing traffic statistics: clicks and impressions over time.
bing_url_infoIndexing status of a specific URL on Bing.
bing_url_linksInbound backlinks to a specific URL according to Bing.
bing_url_trafficTraffic data for a specific URL on Bing.

Microsoft Clarity (10 tools)

ToolDescription
clarity_breakdownFree-form raw breakdown (1-3 dimensions). Power-user — costs 1 quota unit if not already cached.
clarity_dead_clicksTop URLs with dead clicks (clicks on non-interactive elements — a UX problem signal).
clarity_engagementEngagement Time + Scroll Depth per URL (or another dimension).
clarity_excessive_scrollTop URLs with excessive scrolling (users hunting for info they can't easily find).
clarity_popular_pagesTop URLs by visits over the last days (Popular Pages metric, dimension=URL).
clarity_quickback_clicksTop URLs with quickback clicks (user goes back immediately — page not relevant).
clarity_quota_statusDaily quota status (local counter, does not call the API).
clarity_rage_clicksTop URLs with rage clicks (fast repeated clicks — user frustration).
clarity_script_errorsTop URLs with JS errors + error clicks (technical problems on the page).
clarity_trafficTraffic breakdown from Microsoft Clarity (sessions, bot %, pages per session).

Google AdSense (10 tools)

ToolDescription
adsense_alertsActive alerts on the AdSense account (severity, type, message).
adsense_by_ad_unitPerformance per ad unit: earnings, impressions, clicks, CTR, eCPM.
adsense_by_countryRevenue breakdown by country, sorted by earnings.
adsense_by_platformRevenue breakdown by device platform (Desktop, Mobile, Tablet).
adsense_compare_periodsCompare two periods with percentage deltas on key metrics.
adsense_earnings_by_dateDaily earnings with total, average and trend.
adsense_earnings_overviewEarnings overview: estimated earnings, page views, impressions, clicks, RPM, CTR.
adsense_paymentsRecent payments on the AdSense account.
adsense_sitesSites linked to the AdSense account (domain, state, auto-ads).
adsense_top_pagesTop URL channels by revenue (requires URL channels configured in AdSense).

Google Keyword Planner (4 tools)

ToolDescription
kp_historical_metricsReal historical Keyword Planner metrics for a list of known keywords.
kp_keyword_ideasKeyword ideas with real metrics: volume, competition, top-of-page bids, 12-month volumes.
kp_statusSource status: library, credential completeness (masked) and live connection test.
kp_suggest_geo_targetResolve a location name to its geo target constant ID.

Open PageRank (1 tool)

ToolDescription
pagerank_scoreDomain authority score (0-10) for up to 100 domains per call, with a local 30-day cache.

Why not the official GA4 server or mcp-gsc?

Both are good and this project doesn't pretend otherwise. Google's official analytics-mcp covers GA4 only; mcp-gsc covers GSC only. If you live in one data source, use them. This project is for people who work across the whole free SEO stack and want the cross-source workflow (GSC + GA4 + Bing + Clarity) plus opinionated analysis tools in one place.

See also

local-leads-mcp — the prospecting counterpart: find local businesses with no website via OpenStreetMap and verify them, no API keys needed.

License

MIT.


Built and maintained by Raffaele Nocera — freelance web & SEO. Available for consulting.

來源:README.md,提交 3e18f79

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.2.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分