{"name":"io.github.mcp-dir/youtube-mcp","slug":"mcp-dir-youtube-mcp","title":"YouTube","description":"Search, video, channel, playlist, comments, trending and related items from YouTube. Hosted by the p","url":"https://mcp.market/server/mcp-dir-youtube-mcp","rating":null,"grade":"B","score":75,"certified":false,"status":"active","category":"search","tags":["search","media"],"presence":{"score":15,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-08-30T19:50:32.000Z","license":"MIT"},"uptime":{"percent":93,"checks":28,"ok":26,"last_checked_at":"2026-11-04T08:10:34.744Z","last_ok_at":"2026-11-04T08:10:34.744Z","latency_ms":84},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/mcp-dir/youtube-mcp","website":null,"version":"0.1.0","remotes":[{"type":"streamable-http","url":"https://api.mcp.ai/p_youtube"}],"packages":[],"tools":[{"name":"authenticate","description":"MCP.AI for IDE agents (Cursor, etc.): log in in the browser, copy the access token. Best: add it to this server's config as a header `Authorization: Bearer <token>` for a permanent, non-expiring connection. Or paste it here for a session-only login: call with { token: \"<jwt>\" } after the user pastes, or with no args to get the link.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"token":{"type":"string"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"connect","description":"Returns connection status and URLs. When all providers are connected, returns authenticated:true and empty pending[]. When credentials are missing, returns connect_url for the toolkit and per-install URLs.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"marketplace","description":"The official mcp.ai marketplace — the in-platform catalog of every MCP/tool, AND the way to run them. Covers capability requests like \"find an MCP that does X\", \"consulta um CPF\", \"is there a tool for Y\". Core flow: action=search discovers MCPs by intent → describe returns one MCP's full profile (every tool with its id + params, pricing, auth) so you pick the right tool_id → invoke RUNS that tool. KEY: invoke works even when the MCP is NOT installed — it runs the tool pontualmente (one-off), without adding the MCP to the toolkit and without bloating the tool list. If the MCP needs a credential/login, invoke returns a connect link; if it is paid and the wallet is empty, invoke returns a checkout/top-up link (the user opens it, then you retry). Use install only to make an MCP PERMANENT in the active toolkit (its tools then show up natively in future sessions); prefer invoke for a single/occasional use. list_tools lists what is callable right now. subscribe/cancel handle per-MCP billing; report_bug sends feedback; request_mcp asks us to build a NEW MCP when nothing fits. Search/describe flag installed_in_toolkit vs installed_in_workspace. Writes (install/uninstall/subscribe/cancel and the one-off install behind invoke) require workspace owner/admin. It also carries the mcp.ai PROMPT LIBRARY, which is about ready-made prompt TEXT rather than MCPs: search_prompts finds one, get_prompt returns its full text with {{variables}} filled, and publish_prompt saves a prompt and returns a shareable mcp.ai/p/<slug> link that opens without login.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"action":{"default":"search","type":"string","enum":["search","describe","install","uninstall","subscribe","cancel","resume","report_bug","request_mcp","list_tools","invoke","search_prompts","get_prompt","publish_prompt"]},"query":{"default":"","type":"string"},"mcp_id":{"default":"","type":"string"},"limit":{"default":10,"type":"number"},"tier_slug":{"default":"","type":"string"},"immediate":{"default":false,"type":"boolean"},"cancel_reason":{"type":"string","enum":["too_expensive","missing_features","switched_service","unused","customer_service","too_complex","low_quality","other"]},"cancel_comment":{"default":"","type":"string"},"message":{"default":"","type":"string"},"report_context":{"default":"","type":"string"},"conversation":{"default":"[]","type":"string"},"request_name":{"default":"","type":"string"},"request_details":{"default":"","type":"string"},"tool_id":{"default":"","type":"string"},"arguments":{"default":"{}","type":"string"},"prompt_slug":{"default":"","type":"string"},"prompt_vars":{"default":"{}","type":"string"},"prompt_category":{"default":"","type":"string"},"prompt_tool":{"default":"","type":"string"},"prompt_title":{"default":"","type":"string"},"prompt_description":{"default":"","type":"string"},"prompt_body":{"default":"","type":"string"},"prompt_targets":{"default":[],"type":"array","items":{"type":"string","enum":["claude","chatgpt","cursor","lovable"]}}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"report_bug","description":"Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"message":{"type":"string"},"context":{"default":"","type":"string"},"conversation":{"default":"[]","type":"string"}},"required":["message"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"show_version","description":"Show the current MCP platform and adapter versions.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"toolkit_info","description":"Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_api","description":"Escape hatch: call any path on the YouTube backend. Pass path (e.g. /search), optional method (default GET), query map, and JSON body for POST. Prefer the named youtube_* tools when available; this is for routes not in the manifest.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"path":{"type":"string"},"method":{"type":"string","enum":["GET","HEAD","POST","PUT","PATCH","DELETE"]},"query":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]}},"body":{}},"required":["path"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_channel_about","description":"Channel description, links, country, subscriber count, banner.\n\nBulk support: accepts ids for batched execution.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string"},"forUsername":{"type":"string"},"ids":{"type":"array","items":{"type":"string"}}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_channel_community","description":"Community posts tab for a channel.\n\nBulk support: accepts ids for batched execution.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string"},"forUsername":{"type":"string"},"token":{"type":"string"},"ids":{"type":"array","items":{"type":"string"}}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_channel_featured","description":"Featured channels listed on a channel. Note: YouTube deprecated the featured-channels tab; this route exists upstream but typically returns an empty/error envelope.\n\nBulk support: accepts ids for batched execution.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string"},"forUsername":{"type":"string"},"token":{"type":"string"},"ids":{"type":"array","items":{"type":"string"}}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_channel_home","description":"Channel home page payload (featured shelves + meta).\n\nBulk support: accepts ids for batched execution.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string"},"forUsername":{"type":"string"},"token":{"type":"string"},"ids":{"type":"array","items":{"type":"string"}}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_channel_playlists","description":"Channel playlists tab.\n\nBulk support: accepts ids for batched execution.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string"},"forUsername":{"type":"string"},"sort_by":{"type":"string"},"token":{"type":"string"},"ids":{"type":"array","items":{"type":"string"}}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_channel_search","description":"Search a channel's own videos and playlists.\n\nBulk support: accepts ids for batched execution.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string"},"forUsername":{"type":"string"},"query":{"type":"string"},"token":{"type":"string"},"ids":{"type":"array","items":{"type":"string"}}},"required":["query"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_channel_shorts","description":"Channel shorts tab.\n\nBulk support: accepts ids for batched execution.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string"},"forUsername":{"type":"string"},"token":{"type":"string"},"ids":{"type":"array","items":{"type":"string"}}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_channel_shorts_post","description":"POST variant of channel shorts. Requires a `params` continuation token from a prior GET response. Skip in daily smoke (no synthetic params).\n\nBulk support: accepts ids for batched execution.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string"},"forUsername":{"type":"string"},"params":{"type":"string"},"token":{"type":"string"},"ids":{"type":"array","items":{"type":"string"}}},"required":["params"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_channel_store","description":"Store / merch shelf for a channel.\n\nBulk support: accepts ids for batched execution.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string"},"forUsername":{"type":"string"},"ids":{"type":"array","items":{"type":"string"}}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_channel_videos","description":"Channel videos tab.\n\nBulk support: accepts ids for batched execution.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string"},"forUsername":{"type":"string"},"sort_by":{"type":"string"},"token":{"type":"string"},"ids":{"type":"array","items":{"type":"string"}}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_channel_videos_post","description":"POST variant of channel videos. Requires a `params` continuation token captured from a prior GET response — used to fetch deeper pages or filtered shelves that the GET surface can't address. Skip in daily smoke (no synthetic params).\n\nBulk support: accepts ids for batched execution.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string"},"forUsername":{"type":"string"},"params":{"type":"string"},"token":{"type":"string"},"ids":{"type":"array","items":{"type":"string"}}},"required":["params"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_comment_delete","description":"Apaga DEFINITIVAMENTE um comentário (não tem desfazer). Só funciona em comentário do próprio canal ou em vídeo do canal conectado. Para esconder sem apagar, prefira youtube_comment_moderate com `rejected`. Custa 50 unidades da cota.\n\nBulk support: accepts comment_ids for batched execution.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"comment_id":{"type":"string"},"account":{"type":"string"},"comment_ids":{"type":"array","items":{"type":"string"}}},"required":["comment_id"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_comment_moderate","description":"Modera comentários no canal conectado: publica (`published`), segura para revisão (`heldForReview`) ou rejeita (`rejected`). `ban_author` só é aceito junto de `rejected`. Vale apenas para comentários em vídeos do próprio canal. Custa 50 unidades por comentário.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"comment_ids":{"type":"array","items":{"type":"string"}},"status":{"type":"string","enum":["published","heldForReview","rejected"]},"ban_author":{"type":"boolean"},"account":{"type":"string"}},"required":["comment_ids","status"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_comment_post","description":"Publica um comentário NOVO de topo em um vídeo, como o canal conectado. Para responder alguém, use youtube_comment_reply. Custa 50 unidades da cota.\n\nBulk support: accepts video_ids for batched execution.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"video_id":{"type":"string"},"text":{"type":"string"},"account":{"type":"string"},"video_ids":{"type":"array","items":{"type":"string"}}},"required":["video_id","text"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_comment_reply","description":"Responde comentários como o canal conectado. Aceita VÁRIAS respostas numa chamada (`replies`), e um item que falha não derruba os outros. `parent_id` tem que ser o id de um comentário de TOPO (campo `id` do thread devolvido por youtube_comment_threads), nunca o id de uma resposta. Cada resposta consome 50 unidades da cota da API do YouTube, então responda o que importa em vez de varrer o canal.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"replies":{"type":"array","items":{"type":"object","properties":{"parent_id":{"type":"string"},"text":{"type":"string"}},"required":["parent_id","text"]}},"account":{"type":"string"}},"required":["replies"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_comment_threads","description":"Comentários de TOPO pela API oficial, com as respostas já existentes. É daqui que sai o `parent_id` usado em youtube_comment_reply (o id do thread), então prefira esta tool a youtube_comments quando a intenção for responder. Sem `video_id`, traz os comentários do canal conectado inteiro (bom para 'o que ainda não respondi'). Custa 1 unidade da cota.\n\nBulk support: accepts video_ids, channel_ids for batched execution.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"video_id":{"type":"string"},"channel_id":{"type":"string"},"order":{"type":"string","enum":["time","relevance"]},"moderation_status":{"type":"string","enum":["heldForReview","likelySpam","published"]},"search_terms":{"type":"string"},"max_results":{"type":"number"},"page_token":{"type":"string"},"account":{"type":"string"},"video_ids":{"type":"array","items":{"type":"string"}},"channel_ids":{"type":"array","items":{"type":"string"}}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_comment_update","description":"Edita o texto de um comentário ou resposta PUBLICADO pelo canal conectado (corrigir um erro sem apagar e repostar, o que perderia as curtidas e o encadeamento). Só funciona em comentário de autoria do próprio canal. Custa 50 unidades da cota.\n\nBulk support: accepts comment_ids for batched execution.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"comment_id":{"type":"string"},"text":{"type":"string"},"account":{"type":"string"},"comment_ids":{"type":"array","items":{"type":"string"}}},"required":["comment_id","text"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_comments","description":"Top-level comments thread for a video.\n\nBulk support: accepts ids for batched execution.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string"},"sort_by":{"type":"string"},"token":{"type":"string"},"ids":{"type":"array","items":{"type":"string"}}},"required":["id"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_download","description":"Stream/download metadata for a video (formats, audio/video URLs, status).\n\nBulk support: accepts ids for batched execution.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string"},"cgeo":{"type":"string"},"ids":{"type":"array","items":{"type":"string"}}},"required":["id"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_hashtag","description":"Posts under a hashtag (without leading #).","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"tag":{"type":"string"},"type":{"type":"string"},"token":{"type":"string"}},"required":["tag"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_home_feed","description":"YouTube home feed (anonymous, geo/lang aware).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"geo":{"type":"string"},"lang":{"type":"string"},"token":{"type":"string"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_hype","description":"YouTube Hype: viral / hyped videos feed.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"geo":{"type":"string"},"lang":{"type":"string"},"token":{"type":"string"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_my_channels","description":"Lista os canais do YouTube conectados (os que podem responder e moderar comentários), com id, nome e estatísticas. Use antes de responder para confirmar de qual canal a resposta vai sair. Custa 1 unidade da cota.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"account":{"type":"string"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_playlist","description":"Playlist items by playlist id.\n\nBulk support: accepts ids for batched execution.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string"},"token":{"type":"string"},"ids":{"type":"array","items":{"type":"string"}}},"required":["id"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_resolve_url","description":"Resolve a YouTube URL or share link to its videoId / pageType.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_search","description":"Search videos, channels, playlists.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string"},"type":{"type":"string"},"sort_by":{"type":"string"},"duration":{"type":"string"},"upload_date":{"type":"string"},"geo":{"type":"string"},"lang":{"type":"string"},"token":{"type":"string"}},"required":["query"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_trending","description":"Trending videos by region.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"geo":{"type":"string"},"type":{"type":"string"},"lang":{"type":"string"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"youtube_video_related","description":"Related videos for a given video id.\n\nBulk support: accepts ids for batched execution.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string"},"token":{"type":"string"},"ids":{"type":"array","items":{"type":"string"}}},"required":["id"],"$schema":"http://json-schema.org/draft-07/schema#"}}],"scan":{"score":75,"grade":"B","scanned_at":"2026-11-01T18:06:53.869Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-11-01T18:06:53.824Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":17,"max":20,"notes":["remote reachable in 2926ms"]},"poisoning":{"score":15,"max":15,"notes":["35 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 6 write-action tools with no auth"]},"maintenance":{"score":12,"max":15,"notes":["last push 63 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://api.mcp.ai/p_youtube","reachable":true,"authRequired":false,"latencyMs":2926,"serverInfo":{"name":"mcp-ai","version":"0.9.398"}}],"packages":[],"repo":{"found":true,"owner":"mcp-dir","repo":"youtube-mcp","archived":false,"pushedAt":"2026-08-30T19:50:32Z","stars":0,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/207912538?v=4","ownerCreatedAt":"2025-04-16T18:01:51Z","license":"MIT"},"icon":{"url":null,"source":"none"},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-08-30T19:50:32.000Z","score":15}}}},"grade_history":[],"reviews":[]}