プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Yandex Webmaster MCP

作者:stufentlyバージョン 2.2.1i★ –iパソコンで動く
レジストリ名io.github.stufently/yandex-webmaster-mcp

インストール

概要

作者による説明(英語の原文)

MCP server for Yandex Webmaster API — site analytics, indexing, search queries

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: マーケティング・SNS
  • 入力が必要なもの:YANDEX_WEBMASTER_TOKEN

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • 自分で入力するもの: YANDEX_WEBMASTER_TOKEN

「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。

必要なもの

  • npmNode.jsのインストール(npxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "yandex-webmaster": {
      "command": "npx",
      "args": [
        "-y",
        "@stufently/yandex-webmaster-mcp"
      ],
      "env": {
        "YANDEX_WEBMASTER_TOKEN": "your-value"
      }
    }
  }
}

ターミナルでこれを実行します

claude mcp add yandex-webmaster --env YANDEX_WEBMASTER_TOKEN=your-value -- npx -y @stufently/yandex-webmaster-mcp

動かす前に、空欄の値を入力してください。

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "yandex-webmaster": {
      "command": "npx",
      "args": [
        "-y",
        "@stufently/yandex-webmaster-mcp"
      ],
      "env": {
        "YANDEX_WEBMASTER_TOKEN": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "yandex-webmaster": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@stufently/yandex-webmaster-mcp"
      ],
      "env": {
        "YANDEX_WEBMASTER_TOKEN": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

自分で入力する値

  • YANDEX_WEBMASTER_TOKEN 秘密 必須 env
    OAuth token for Yandex Webmaster

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント stufently で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

マーケティング・SNSのほかのサーバーとの比較i

  • このカテゴリのほかの3603件のうち0%よりスターが多い
  • このカテゴリのほかの3603件のうち57%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの3603件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Yandex Webmaster MCPは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

入力が必要なもの:YANDEX_WEBMASTER_TOKEN

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(2.2.1)がレジストリに届いたのは23 日前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。

代わりに使えるものは?

同じカテゴリには:MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Google Analytics MCP

GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.

作者:surendranb成長中↓ 1088/週★ 24411 日前更新

パソコンで動く

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

yandex-webmaster-mcp

MCP server for Yandex Webmaster API v4. Monitor site health, indexing status, search queries, backlinks, sitemaps, and more.

Installation

This package is published as `@stufently/yandex-webmaster-mcp`; the unscoped name yandex-webmaster-mcp belongs to an unrelated publisher (see the note in the root README). Nothing is on the scope yet, so run it from source:

git clone https://github.com/stufently/yandex-mcp.git

cd yandex-mcp && bun install node packages/yandex-webmaster-mcp/src/index.mjs

Configuration

Add to your MCP client config:

{

"mcpServers": { "yandex-webmaster": { "command": "node", "args": ["/path/to/yandex-mcp/packages/yandex-webmaster-mcp/src/index.mjs"], "env": { "YANDEX_WEBMASTER_TOKEN": "your-oauth-token" } } } }

Environment Variables

VariableRequiredDescription
YANDEX_WEBMASTER_TOKENYesOAuth token for Webmaster API
YANDEX_CLIENT_IDFor auth flowYandex OAuth app client ID
YANDEX_CLIENT_SECRETFor auth flowYandex OAuth app client secret

Authentication

To obtain an OAuth token interactively:

node packages/yandex-webmaster-mcp/src/index.mjs auth

This opens a browser for Yandex OAuth authorization and returns a token. Set the token as YANDEX_WEBMASTER_TOKEN.

Note: The Webmaster API uses Authorization: OAuth {token} (not Bearer).

Agent playbook

SKILL.md next to this file is the task-level guide for agents: the new-site flow, the regular-audit order, the recrawl rules, how the three different time-series shapes are read, and — importantly — what API v4 does not have (IndexNow, robots.txt, site region, favicon, mobile status, Metrika binding), so nothing gets invented.

Tool Reference (33 tools)

Core (3)
ToolDescriptionParameters
get-userGet current Webmaster user info and user_id--
list-hostsList all hosts (sites) with their `host_id` — the identifier every other tool needs--
get-hostGet details for a specific hosthost_id
Statistics (2)
ToolDescriptionParameters
get-summaryGet site summary: SQI, page counts, problemshost_id
get-sqi-historyGet SQI (Site Quality Index) historyhost_id, date_from?, date_to?
Diagnostics (1)
ToolDescriptionParameters
get-diagnosticsGet site diagnostics and problemshost_id
Search Queries (2)
ToolDescriptionParameters
get-popular-queriesGet popular search queries for a sitehost_id, order_by (TOTAL_SHOWS/TOTAL_CLICKS), device_type?, date_from?, date_to?, limit? (1-500, default: 100), offset?
get-query-historyGet search query totals historyhost_id, device_type?, date_from?, date_to?
Indexing (4)
ToolDescriptionParameters
get-indexing-historyGet indexing history over timehost_id, date_from?, date_to?
get-indexing-samplesGet sample indexed URLshost_id, limit? (1-100), offset?
get-insearch-historyGet in-search (appearing in results) historyhost_id, date_from?, date_to?
get-insearch-samplesGet sample URLs appearing in searchhost_id, limit? (1-100), offset?
Search Events (3)
ToolDescriptionParameters
get-search-events-historyGet search URL events historyhost_id, date_from?, date_to?
get-search-events-samplesGet sample URLs for search events, with per-URL exclusion reasons (excluded_url_status): an exclusion_reasons tally of the fetched page plus an excluded_pages list of URL → reasonhost_id, event_type? (APPEARED_IN_SEARCH/REMOVED_FROM_SEARCH — client-side filter, the API has none), limit? (1-100, default: 10), offset?
get-excluded-pagesPages dropped from search inside a time window, with `excluded_url_status` for each one. Built from REMOVED_FROM_SEARCH events, deduplicated per URL (latest event wins), so a page that came back is reported under returned_to_search instead. Walks the mixed event stream page by page until limit excluded pages are collected, then reports next_offset (first unread event) / exhausted so the walk can continue. Also returns summary_excluded_pages_count for cross-checkinghost_id, limit? (1-100 excluded pages, default: 20), offset?, max_requests? (1-50 page fetches, retries not counted, default: 10), returned_urls? (pass the previous returned_to_search when continuing a walk)

There is no dedicated "excluded pages" resource in API v4: get-summary carries only the aggregate excluded_pages_count, and the reason a given URL was dropped lives on REMOVED_FROM_SEARCH records of /search-urls/events/samples. Since the API has no server-side event filter, count still counts events of both types and limit/offset page the mixed stream. get-search-events-samples reports what one such page contains; get-excluded-pages does the walking, so its limit counts excluded pages rather than events. Per-URL detail beyond the status code: bad_http_status for HTTP_ERROR, and target_url for the redirect target, canonical address or duplicate.

These are events in time, not a snapshot of the index. The same URL appears as REMOVED_FROM_SEARCH and later as APPEARED_IN_SEARCH — it dropped out and came back, and right now it is in search. get-excluded-pages therefore deduplicates by URL and keeps the latest event: a URL whose latest event is an appearance goes to returned_to_search, not to pages. Two consequences worth stating out loud:

  • an exclusion older than the scanned window is invisible, no matter how current it is;
  • deduplication spans one call. Continuing from next_offset starts with an empty state, so a page whose return fell into the previous window would be reported as excluded again — pass the previous returned_to_search in returned_urls to keep the walk honest;
  • excluded_pages_count from get-summary and the length of pages are different kinds of number and are not expected to match. The tool returns the aggregate as summary_excluded_pages_count and says so in its text, instead of leaving the reader to discover a 25x gap on their own.

The per-URL status field is named excluded_url_status everywhere — in the tool descriptions, in excluded_pages from get-search-events-samples and in pages from get-excluded-pages. It is the name from the Yandex reference (ApiExcludedUrlStatus), so it can be grepped against the docs.

Links (4)
ToolDescriptionParameters
get-external-linksGet external links pointing to the sitehost_id, limit? (1-100), offset?
get-external-links-historyGet external links count historyhost_id, date_from?, date_to?
get-broken-internal-linksList broken internal links: destination URL, the source page linking to it, and when Yandex last checked the link. Records carry days_since_last_check, never_rechecked and stale (last check older than 90 days)host_id, limit? (1-100), offset?
get-broken-internal-links-historyGet broken internal links count historyhost_id, date_from?, date_to?

A broken-link record is a snapshot of the last time Yandex checked that link, and that moment can be months old: when source_last_access_date equals discovery_date, nothing has been re-verified since the problem was found, so the link may have been fixed long ago. Each record therefore carries days_since_last_check, never_rechecked and stale (last check older than 90 days — never_rechecked on its own does not set it), and the text block puts the warning above the list. A live check of 258 links reported broken across these sites (2026-09-02) found 10 real 404s; about 80% were 301 redirects. The API is not lying — the old one-line output just made the count read like an outage.

⚠️ In the Yandex reference the name and the description of source_last_access_date disagree: the name says *source*, the description says "the date the robot last visited the link's destination page". The wording here stays neutral ("last checked") because the conclusion about the record's age holds under either reading, while a conclusion about a specific page does not.

Sitemaps (4)
ToolDescriptionParameters
get-sitemapsList all sitemaps for a hosthost_id, limit? (1-100)
get-sitemapGet details for a specific sitemaphost_id, sitemap_id
get-user-sitemapsList user-added sitemapshost_id, limit? (1-100)
add-sitemapWrite. Add a user sitemap file; returns sitemap_id. Additive — the file is removable in the Webmaster panelhost_id, url

add-sitemap needs the host verified (404 HOST_NOT_VERIFIED otherwise). Adding a file that is already there answers 409 SITEMAP_ALREADY_ADDED; like every other non-2xx here it surfaces as an error, and its payload names the existing sitemap_id — read it as "already present" rather than retrying. Removing a sitemap (DELETE /user-added-sitemaps/{id}) exists in the API but is deliberately not wrapped here.

Important URLs (2)
ToolDescriptionParameters
get-important-urlsGet important URLs for a sitehost_id, limit? (1-100), offset?
get-important-url-historyGet history for a specific important URLhost_id, url, date_from?, date_to?
Recrawl (4)
ToolDescriptionParameters
get-recrawl-quotaGet recrawl quota (daily limit and remainder)host_id
add-recrawl-urlWrite. Enqueue a URL for re-crawl; consumes daily quotahost_id, url
get-recrawl-queueList submitted recrawl tasks and their statehost_id, limit? (default: 10), offset?
get-recrawl-taskGet the state of one recrawl taskhost_id, task_id
Host Management (4)

These change your Webmaster account, not just read from it.

ToolDescriptionParameters
add-hostWrite. Add a site to Webmaster (needs verification afterwards). Additive — undone by delete-hosthost_url (with protocol)
verify-hostGet verification state and applicable verification methodshost_id
start-verificationWrite. Start the ownership check (POST …/verification, no body). The verification_uin must already be on the site; the check is asynchronous — poll verify-host. Additivehost_id, verification_type (HTML_FILE / META_TAG / DNS)
delete-hostWrite. Remove a site from Webmaster. Irreversible — see Deleting a host. Needs `confirm: true`host_id, confirm
Deleting a host

delete-host is the only irreversible tool here, and it refuses to run unless the call carries confirm: true:

{ "host_id": "https:example.com:443", "confirm": true }

Called without it, the tool returns an error result and sends nothing to the Webmaster API:

Refused: `delete-host` requires explicit confirmation.

Removing host https:example.com:443 from Yandex Webmaster is irreversible — the site's verification, its accumulated indexing and search-query history, and its sitemap and important-URL settings go with it. Adding the same site back creates a fresh host that must be verified again and starts with no history.

Nothing was sent to the Webmaster API — no host was touched.

To go ahead, call `delete

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く