{
  "markdown": "# Yandex Webmaster MCP\n\n[![CI](https://github.com/BoxLab-Ltd/yandex-webmaster-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/BoxLab-Ltd/yandex-webmaster-mcp/actions/workflows/ci.yml)\n[![npm](https://badgen.net/npm/v/@boxlab/yandex-webmaster-mcp)](https://www.npmjs.com/package/@boxlab/yandex-webmaster-mcp)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE)\n\nAsk your Yandex Webmaster data in plain language — from Claude, Cursor, or any MCP client.\n\n> **Read-only by design** (plus URL recrawl), **no secrets stored**. Sign in with a\n> built-in public OAuth client over PKCE — no app registration, no client secret.\n>\n> **Early development (v0.1).** The tool surface is still growing.\n\nA Model Context Protocol server that exposes Yandex Webmaster as a small set of\nflexible, well-described tools instead of one-thin-wrapper-per-endpoint. Pairs\nwith [`yandex-metrica-mcp`](https://github.com/BoxLab-Ltd/yandex-metrica-mcp):\nrun both and an agent can cross-reference search queries from Webmaster with\non-site behavior and conversions from Metrica in a single conversation.\n\n## Quickstart\n\n**1. Add the server to your MCP client** (Claude Desktop, Cursor, …):\n\n```json\n{\n    \"mcpServers\": {\n        \"yandex-webmaster\": {\n            \"command\": \"npx\",\n            \"args\": [\"-y\", \"@boxlab/yandex-webmaster-mcp\"]\n        }\n    }\n}\n```\n\n**2. Sign in** — interactive, no secret needed:\n\n```bash\nnpx @boxlab/yandex-webmaster-mcp auth\n```\n\nApprove access in the browser, paste the code Yandex shows you. The token is\ncached at `~/.config/yandex-webmaster-mcp/token.json` (mode `0600`).\n\n**3. Ask your agent** — e.g. _\"List my Webmaster hosts and show the SQI for\nexample.com.\"_\n\n### Or install as a Claude Code plugin\n\n```\n/plugin marketplace add BoxLab-Ltd/yandex-webmaster-mcp\n/plugin install yandex-webmaster-mcp@boxlab\n```\n\n## Why\n\nExisting community servers tend to be thin wrappers — one tool per API endpoint,\ndumping raw JSON into the model's context. This server aims to be well-engineered:\nfewer, smarter tools; compact, structured output; read-only by default so an\nagent can explore your Webmaster data safely.\n\n## Tools (v0.1)\n\n- **`get_hosts`** — list the sites available to your token with their `host_id`,\n  URL and verification state; optionally a host summary (SQI, indexed/excluded\n  pages, site problems). Read-only. Call this first.\n- **`search_queries`** — search-query analytics from Yandex Search: impressions,\n  clicks, average show/click position. `report=\"top\"` ranks the queries bringing\n  the most traffic; `report=\"trend\"` returns a time series (per query or the\n  site aggregate). Filter by device and date range. Read-only.\n- **`get_indexing`** — how Yandex crawls and indexes the host. `report=\"history\"`\n  gives crawled pages by HTTP status class over time; `report=\"crawled\"` lists\n  example crawled URLs with their codes; `report=\"in_search\"` lists example pages\n  currently in search. Read-only.\n- **`get_diagnostics`** — problems detected on the site (DNS, slow response,\n  robots.txt, 4xx, …) with severity, active problems first. Read-only.\n- **`list_sitemaps`** — the Sitemap files Yandex knows, with URL counts, error\n  counts and where each was discovered. Read-only.\n- **`get_external_links`** — inbound links (backlinks): `report=\"samples\"` for\n  example links with source/target, `report=\"history\"` for the count over time.\n  Read-only.\n- **`recrawl_status`** — remaining daily recrawl quota plus recent recrawl tasks\n  and their state; pass `taskId` to check one task. Read-only.\n- **`recrawl_submit`** — ask Yandex to recrawl a specific URL sooner. The one\n  write tool; consumes one unit of the daily quota. Returns the task id.\n\n_Planned:_ write tools for sitemaps, original texts and feeds, deferred to a\nlater, opt-in release.\n\n## Requirements\n\n- Node.js >= 18\n- A Yandex account with at least one site added in\n  [Yandex Webmaster](https://webmaster.yandex.ru)\n\n## Authentication\n\nThree ways, in priority order:\n\n1. **Interactive login (recommended)** — `npx @boxlab/yandex-webmaster-mcp auth`.\n   Uses the built-in public OAuth client over PKCE; the token is valid ~6 months.\n2. **Static token** — set `YANDEX_WEBMASTER_TOKEN` (e.g. for CI) to an OAuth\n   token for an app with the `webmaster:hostinfo` scope.\n3. **Your own OAuth app** — set `YANDEX_OAUTH_CLIENT_ID` (and\n   `YANDEX_OAUTH_CLIENT_SECRET` to enable automatic token refresh). The app needs\n   the `webmaster:hostinfo` and `webmaster:verify` scopes.\n\nSee [`.env.example`](.env.example) for all configuration.\n\n## Development\n\nBun-first:\n\n```bash\nbun install\nbun run dev          # watch mode\nbun run typecheck\nbun run lint\nbun test\nbun run build        # emits dist/ (Node-compatible)\nbun run try          # smoke against the real API after `bun run auth`\n```\n\nThe published package runs on Node; local development uses Bun.\n\n## License\n\nMIT\n",
  "bytes": 4894,
  "sha": "3b6fc8837702a707274ced1af1964fcd380cfb128435d34e131aa299737f6e13",
  "repo_slug": "boxlab-ltd/yandex-webmaster-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_boxlab_ltd_yandex_webmaster_mc_2644ffe9/readme"
}