{"_id":"@boxlab/yandex-webmaster-mcp","_rev":"2-0917b31155277b8834ba67b20734eaa4","name":"@boxlab/yandex-webmaster-mcp","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@boxlab/yandex-webmaster-mcp","version":"0.1.0","keywords":["mcp","model-context-protocol","yandex","webmaster","seo","search-console","indexing"],"license":"MIT","_id":"@boxlab/yandex-webmaster-mcp@0.1.0","maintainers":[{"name":"dearonski","email":"abromovich546@gmail.com"}],"homepage":"https://github.com/BoxLab-Ltd/yandex-webmaster-mcp#readme","bugs":{"url":"https://github.com/BoxLab-Ltd/yandex-webmaster-mcp/issues"},"bin":{"yandex-webmaster-mcp":"dist/index.js"},"dist":{"shasum":"f45903d2eb5b48d767e52e4e08c878dbba9c06c6","tarball":"https://registry.npmjs.org/@boxlab/yandex-webmaster-mcp/-/yandex-webmaster-mcp-0.1.0.tgz","fileCount":95,"integrity":"sha512-qmPxmcs/YRyldt3E3u6PoalPhO2x9kaYiy5e5xvvz/yGJyU6bslqufyZ3nz6Ts+007EC61LgvYCY9bVZ3JDRog==","signatures":[{"sig":"MEUCIQC72FOj2/Dvgf6KUmrLL9OowlngS94VPAZDqdMlw7Y68QIgF5FxopsTtX63JMlbUYfmwVMoNM1LzunRsQcsEpiZ8rQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186766},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"f0310c9629cf03db5a1293fb60441f065589ab0c","mcpName":"io.github.BoxLab-Ltd/yandex-webmaster-mcp","scripts":{"dev":"bun --watch src/index.ts","auth":"bun src/index.ts auth","lint":"eslint .","mcpb":"bash scripts/pack-mcpb.sh","test":"bun test","build":"tsc -p tsconfig.build.json","start":"node dist/index.js","format":"prettier --write .","typecheck":"tsc -p tsconfig.json","test:watch":"bun test --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"dearonski","email":"abromovich546@gmail.com"},"repository":{"url":"git+https://github.com/BoxLab-Ltd/yandex-webmaster-mcp.git","type":"git"},"_npmVersion":"10.9.8","description":"Model Context Protocol (MCP) server for Yandex Webmaster — query indexing, search queries, diagnostics and backlinks, and submit URLs for recrawl through an AI agent.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","@boxlab/yandex-mcp-core":"^0.1.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.5.0","prettier":"^3.9.6","@eslint/js":"^10.0.1","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^26.1.1","typescript-eslint":"^8.65.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/yandex-webmaster-mcp_0.1.0_1784638085384_0.07995083586221097","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@boxlab/yandex-webmaster-mcp","version":"0.1.1","description":"Model Context Protocol (MCP) server for Yandex Webmaster — query indexing, search queries, diagnostics and backlinks, and submit URLs for recrawl through an AI agent.","keywords":["mcp","model-context-protocol","yandex","webmaster","seo","search-console","indexing"],"license":"MIT","mcpName":"io.github.BoxLab-Ltd/yandex-webmaster-mcp","publishConfig":{"access":"public"},"homepage":"https://github.com/BoxLab-Ltd/yandex-webmaster-mcp#readme","repository":{"type":"git","url":"git+https://github.com/BoxLab-Ltd/yandex-webmaster-mcp.git"},"bugs":{"url":"https://github.com/BoxLab-Ltd/yandex-webmaster-mcp/issues"},"type":"module","engines":{"node":">=18"},"bin":{"yandex-webmaster-mcp":"dist/index.js"},"main":"dist/index.js","scripts":{"build":"tsc -p tsconfig.build.json","mcpb":"bash scripts/pack-mcpb.sh","dev":"bun --watch src/index.ts","start":"node dist/index.js","auth":"bun src/index.ts auth","typecheck":"tsc -p tsconfig.json","lint":"eslint .","format":"prettier --write .","test":"bun test","test:watch":"bun test --watch","prepublishOnly":"npm run build"},"dependencies":{"@boxlab/yandex-mcp-core":"^0.1.1","@modelcontextprotocol/sdk":"^1.29.0","zod":"^4.4.3"},"devDependencies":{"@eslint/js":"^10.0.1","@types/bun":"^1.3.14","@types/node":"^26.1.1","eslint":"^10.5.0","eslint-config-prettier":"^10.1.8","prettier":"^3.9.6","typescript":"^6.0.3","typescript-eslint":"^8.65.0"},"gitHead":"c6fce1a61b1a3aee23cf32f62e5c961027c8ef24","types":"./dist/index.d.ts","_id":"@boxlab/yandex-webmaster-mcp@0.1.1","_nodeVersion":"22.23.1","_npmVersion":"11.18.0","dist":{"integrity":"sha512-BBwPHKm8Xjrgg24WouJuDNvC+rBO35kCjSB0kjc78kzWuig4edEpTZxuVV3oQy/0qnd+clWMz1xexVt4oymc7g==","shasum":"a898ca75891f9160d06b38c15706654414f7e2e4","tarball":"https://registry.npmjs.org/@boxlab/yandex-webmaster-mcp/-/yandex-webmaster-mcp-0.1.1.tgz","fileCount":71,"unpackedSize":150562,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@boxlab%2fyandex-webmaster-mcp@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDD7qT6gLxjj0qjs5hyAUaOIjVhPxtXCD+9Bjex8WjMAAiArB5zR6FlR090/fbGCenJeObta8gAAy8nLUbaX2SNO6A=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c2d7fd52-e865-4c51-b59f-44d140bc6399"}},"directories":{},"maintainers":[{"name":"dearonski","email":"abromovich546@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/yandex-webmaster-mcp_0.1.1_1784642464350_0.3103213617795193"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-21T12:48:05.274Z","modified":"2026-07-21T14:01:04.954Z","0.1.0":"2026-07-21T12:48:05.505Z","0.1.1":"2026-07-21T14:01:04.538Z"},"bugs":{"url":"https://github.com/BoxLab-Ltd/yandex-webmaster-mcp/issues"},"license":"MIT","homepage":"https://github.com/BoxLab-Ltd/yandex-webmaster-mcp#readme","keywords":["mcp","model-context-protocol","yandex","webmaster","seo","search-console","indexing"],"repository":{"type":"git","url":"git+https://github.com/BoxLab-Ltd/yandex-webmaster-mcp.git"},"description":"Model Context Protocol (MCP) server for Yandex Webmaster — query indexing, search queries, diagnostics and backlinks, and submit URLs for recrawl through an AI agent.","maintainers":[{"name":"dearonski","email":"abromovich546@gmail.com"}],"readme":"# 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","readmeFilename":"README.md"}