MCP YouTube Transcript
An MCP server retrieving transcripts of YouTube videos
Descripción del creador (original en inglés)
MCP server for Yandex Webmaster API — site analytics, indexing, search queries
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
YANDEX_WEBMASTER_TOKENLos valores marcados como secretos son llaves de tu cuenta. Nunca los compartas ni los pegues en un chat.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"yandex-webmaster": {
"command": "npx",
"args": [
"-y",
"@stufently/yandex-webmaster-mcp"
],
"env": {
"YANDEX_WEBMASTER_TOKEN": "your-value"
}
}
}
}Ejecuta esto en tu terminal
claude mcp add yandex-webmaster --env YANDEX_WEBMASTER_TOKEN=your-value -- npx -y @stufently/yandex-webmaster-mcpCompleta los valores vacíos antes de ejecutarlo.
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"yandex-webmaster": {
"command": "npx",
"args": [
"-y",
"@stufently/yandex-webmaster-mcp"
],
"env": {
"YANDEX_WEBMASTER_TOKEN": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"yandex-webmaster": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@stufently/yandex-webmaster-mcp"
],
"env": {
"YANDEX_WEBMASTER_TOKEN": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 8 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub stufently, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
Debes completar: YANDEX_WEBMASTER_TOKEN
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (2.2.1) llegó al registro hace 23 días.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.
En la misma categoría: MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:↓ Descargas por semanai★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
An MCP server retrieving transcripts of YouTube videos
GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.
AI video summarizer: summarize and transcribe YouTube, Bilibili, TikTok and podcast videos.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
MCP server for Yandex Webmaster API v4. Monitor site health, indexing status, search queries, backlinks, sitemaps, and more.
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
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" } } } }
| Variable | Required | Description |
|---|---|---|
YANDEX_WEBMASTER_TOKEN | Yes | OAuth token for Webmaster API |
YANDEX_CLIENT_ID | For auth flow | Yandex OAuth app client ID |
YANDEX_CLIENT_SECRET | For auth flow | Yandex OAuth app client secret |
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).
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 | Description | Parameters |
|---|---|---|
get-user | Get current Webmaster user info and user_id | -- |
list-hosts | List all hosts (sites) with their `host_id` — the identifier every other tool needs | -- |
get-host | Get details for a specific host | host_id |
| Tool | Description | Parameters |
|---|---|---|
get-summary | Get site summary: SQI, page counts, problems | host_id |
get-sqi-history | Get SQI (Site Quality Index) history | host_id, date_from?, date_to? |
| Tool | Description | Parameters |
|---|---|---|
get-diagnostics | Get site diagnostics and problems | host_id |
| Tool | Description | Parameters |
|---|---|---|
get-popular-queries | Get popular search queries for a site | host_id, order_by (TOTAL_SHOWS/TOTAL_CLICKS), device_type?, date_from?, date_to?, limit? (1-500, default: 100), offset? |
get-query-history | Get search query totals history | host_id, device_type?, date_from?, date_to? |
| Tool | Description | Parameters |
|---|---|---|
get-indexing-history | Get indexing history over time | host_id, date_from?, date_to? |
get-indexing-samples | Get sample indexed URLs | host_id, limit? (1-100), offset? |
get-insearch-history | Get in-search (appearing in results) history | host_id, date_from?, date_to? |
get-insearch-samples | Get sample URLs appearing in search | host_id, limit? (1-100), offset? |
| Tool | Description | Parameters |
|---|---|---|
get-search-events-history | Get search URL events history | host_id, date_from?, date_to? |
get-search-events-samples | Get 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 → reason | host_id, event_type? (APPEARED_IN_SEARCH/REMOVED_FROM_SEARCH — client-side filter, the API has none), limit? (1-100, default: 10), offset? |
get-excluded-pages | Pages 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-checking | host_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:
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.
| Tool | Description | Parameters |
|---|---|---|
get-external-links | Get external links pointing to the site | host_id, limit? (1-100), offset? |
get-external-links-history | Get external links count history | host_id, date_from?, date_to? |
get-broken-internal-links | List 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-history | Get broken internal links count history | host_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.
| Tool | Description | Parameters |
|---|---|---|
get-sitemaps | List all sitemaps for a host | host_id, limit? (1-100) |
get-sitemap | Get details for a specific sitemap | host_id, sitemap_id |
get-user-sitemaps | List user-added sitemaps | host_id, limit? (1-100) |
add-sitemap | Write. Add a user sitemap file; returns sitemap_id. Additive — the file is removable in the Webmaster panel | host_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.
| Tool | Description | Parameters |
|---|---|---|
get-important-urls | Get important URLs for a site | host_id, limit? (1-100), offset? |
get-important-url-history | Get history for a specific important URL | host_id, url, date_from?, date_to? |
| Tool | Description | Parameters |
|---|---|---|
get-recrawl-quota | Get recrawl quota (daily limit and remainder) | host_id |
add-recrawl-url | Write. Enqueue a URL for re-crawl; consumes daily quota | host_id, url |
get-recrawl-queue | List submitted recrawl tasks and their state | host_id, limit? (default: 10), offset? |
get-recrawl-task | Get the state of one recrawl task | host_id, task_id |
These change your Webmaster account, not just read from it.
| Tool | Description | Parameters |
|---|---|---|
add-host | Write. Add a site to Webmaster (needs verification afterwards). Additive — undone by delete-host | host_url (with protocol) |
verify-host | Get verification state and applicable verification methods | host_id |
start-verification | Write. Start the ownership check (POST …/verification, no body). The verification_uin must already be on the site; the check is asynchronous — poll verify-host. Additive | host_id, verification_type (HTML_FILE / META_TAG / DNS) |
delete-host | Write. Remove a site from Webmaster. Irreversible — see Deleting a host. Needs `confirm: true` | host_id, confirm |
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
Solo se muestra el principio; lee el resto en el repo