In-depth architectural comparison of the Seo Stack MCP and Seo Tools MCP MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.
At a Glance & Executive Verdict
Seo Stack MCP
Marketing · Local stdio
Quality: 49/100 (Fair) | Auth: No auth required
Seo Tools MCP
Marketing · Local stdio
Quality: 65/100 (Great) | Auth: API Key required
Verdict Summary: Choose Seo Stack MCP if you need specialized Marketing tools running via a local process. Choose Seo Tools MCP if your workspace requires Marketing integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
Choose Seo Stack MCP when:
You need dedicated capabilities in the Marketing domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: No auth required (Free / Open Source).
GSC, GA4, Bing Webmaster and Microsoft Clarity in one MCP server, with built-in SEO analyst tools
Five read-only SEO servers for the Google/Yandex (RU/CIS) market: SERP (XMLStock), Yandex Wordstat, Google Search Console (Search Analytics + URL Inspection), Yandex.Webmaster, and Yandex.Metrica. 38 tools, multi-account, OAuth with auto-refresh. Install: npx -y seo-tools-mcp-.
Seo Stack MCP is categorized under Marketing and uses a local stdio subprocess. In contrast, Seo Tools MCP belongs to Marketing using local stdio subprocess. Select Seo Stack MCP when you need capabilities focused on marketing and Seo Tools MCP when you require tools for marketing.
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_sitemap
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.
+68 more tools listed on main page
Seo Tools MCP Tools (11)
xmlstock_auth_status
Статус авторизации xmlstock: какие ключи заданы (маскированно), каких не хватает, как их получить. ВЫЗЫВАТЬ ПЕРВЫМ в начале работы с xmlstock. Если чего-то нет — запросить значения у пользователя и сохранить через xmlstock_set_credentials.
xmlstock_set_credentials
Сохранить ключи xmlstock в /home/user/.config/seo-tools-mcp/.env (права 600) и применить сразу, без перезапуска сервера. Передавать только обновляемые поля. account — сохранить в именованный профиль (мультиаккаунт). Значения даёт пользователь; в ответе они маскируются.
xmlstock_serp
Слепок выдачи Google/Yandex через XMLStock (ПЛАТНО за запрос). Возвращает { found, truncated (true = выдача кончилась раньше запрошенного depth), count, results: [{ position, url, title, snippet, text_bolds (подсветки hlword) }], serp_features: { featured_snippet, paa (только Google), related, sitelinks_top1, packs } }. Пустая выдача (код 15) ТАРИФИЦИРУЕТСЯ и помечается { results: [], empty: true, note }. depth>10 добирается пагинацией (каждая страница — отдельный платный запрос; у yandex_xml — до 100/страница). region: ОДИН регион (название или числовой id Яндекса) — работает для ВСЕХ движков. ОГРАНИЧЕНИЕ ИСТОЧНИКА: device=mobile отдаёт только позиции и сниппеты — без hlword/PAA/related; подсветки и SERP-фичи снимать с desktop. engine=yandex_xml — ОФИЦИАЛЬНЫЙ Яндекс XML (легальный API, тариф дороже: от 24 ₽/1000): groupby до 100 работает — до 100 результатов за ОДИН платный запрос (depth до 1000), hlword-подсветки на любых устройствах, статистика «найдено»: found (по запросу), found_docs (документов), found_human (строкой); в results доп. поля id/modtime/saved_copy_url/is_local. Отличие от yandex (live): SERP-фичей/packs нет — чистая органика; device/searchDomain/lang/l10n/period/exactQuery/includeAds/includeSimilar не применимы; safeSearch маппится в filter (strict/moderate/none).
xmlstock_images
Поиск по картинкам Google через XMLStock (ПЛАТНО за запрос). Возвращает { position, url (страница-источник), imageUrl (сама картинка), title }. truncated: true = выдача кончилась раньше запрошенного depth.
xmlstock_news
Поиск по новостям Google через XMLStock (ПЛАТНО за запрос). Возвращает { position, url, title, source (издание), date (часто относительная), snippet }. truncated: true = выдача кончилась раньше запрошенного depth.
xmlstock_video
Поиск по видео Google через XMLStock (ПЛАТНО за запрос). Возвращает { position, url, title, thumbnail, host (YouTube...), channel, duration, snippet }. truncated: true = выдача кончилась раньше запрошенного depth.
xmlstock_balance
Баланс и дневной расход аккаунта XMLStock (бесплатный сервисный вызов). Заодно проверка ключей.
xmlstock_wordstat
Частотность и топ запросов Яндекс Wordstat через XMLStock (ПЛАТНО за запрос, ~19₽/1K). Возвращает { totalCount, results: [{ phrase, count }] (топ по фразе), associations: [{ phrase, count }] (похожие) }. Операторы Wordstat в query: "…" (точная), ! (форма слова), + (стоп-слово), - (минус), [ ] (порядок), | (или).
xmlstock_wordstat_dynamics
Динамика частотности фразы по времени (Яндекс Wordstat через XMLStock, ПЛАТНО за запрос). period: day/week/month. from/to — YYYY-MM-DD (для month период автоматически растягивается на целые месяцы). Возвращает [{ date, count, share }].
xmlstock_wordstat_regions
Распределение спроса по регионам для фразы (Яндекс Wordstat через XMLStock, ПЛАТНО — дороже топа/динамики). Возвращает [{ regionId, name, count, share, affinityIndex }]; имена регионов подставляются из дерева (кэш 24ч). ВНИМАНИЕ: при холодном кэше дерева (первый вызов за 24ч) делается дополнительный ПЛАТНЫЙ запрос regionsTree.
xmlstock_wordstat_regions_tree
Дерево регионов Яндекс Wordstat через XMLStock (id + имя + путь) — id для параметра region в других запросах. ПЛАТНО за запрос.