Youtube Streamable
БесплатноНе проверенYoutube Streamable — Model Context Protocol server
Описание
Youtube Streamable — Model Context Protocol server
README
Fetch-native MCP server for YouTube search, channels, playlists, and video metadata. It runs on Bun and Cloudflare Workers.
Author: overment
[!WARNING] Tool output comes from an external API and may be incomplete or misleading. Review results before relying on them.
[!IMPORTANT] This branch targets the
2026-07-28release candidate with@modelcontextprotocol/[email protected],@modelcontextprotocol/[email protected], and Zod 4. It does not claim conformance to a final dated specification or stable SDK release. Re-run the final-release gate when those artifacts are published.
Runtime model
One fetch-native SDK handler is created per Bun process or Worker isolate. Its factory creates a fresh McpServer for every request. The SDK owns protocol parsing, modern negotiation, stateless legacy projection, cancellation, completion, cache metadata, and subscriptions.
POST /mcp accepts modern 2026-07-28 traffic and, by default, the SDK's stateless 2025-11-25 fallback. GET /mcp and DELETE /mcp return 405; there are no endpoint sessions, replay buffers, or custom JSON-RPC dispatchers.
The HTTP shell validates Host and every present Origin, applies strict CORS, and rejects MCP bodies above MCP_MAX_REQUEST_BYTES.
Install and run
Requirements: Bun and a YouTube Data API v3 key.
bun install
cp .env.example .env
bun dev
The default MCP URL is http://localhost:3000/mcp.
For local workerd:
bun run dev:worker
# http://127.0.0.1:8787/mcp
Deploy only after replacing local URLs and allowlists in wrangler.jsonc:
bun run deploy
YouTube credential resolution
The server resolves the provider credential in this order:
X-YouTube-Api-Keyon the current MCP HTTP request;- a separately verified provider access token in
AuthInfo.extra.providerAccessToken; - the configured
API_KEYor static provider credential.
The credential is sent to YouTube only as the key query parameter. The inbound MCP bearer (AuthInfo.token) is never forwarded upstream.
Client-header example:
{
"mcpServers": {
"youtube": {
"command": "bunx",
"args": [
"mcp-remote",
"http://localhost:3000/mcp",
"--header",
"X-YouTube-Api-Key: ${YOUTUBE_API_KEY}"
]
}
}
}
Server fallback:
AUTH_STRATEGY=api_key
API_KEY=your-youtube-api-key
API_KEY_HEADER=x-youtube-api-key
PROVIDER_API_URL defaults to https://www.googleapis.com/youtube/v3. Override it only for a trusted provider-compatible endpoint or local tests.
Exposed MCP contract
Tools
All tools are read-only, non-destructive, idempotent, and open-world.
| Tool | Input | Structured output |
|---|---|---|
find_channel |
query, optional maxResults (1–10, default 5) |
query, count, channel summaries |
scan_channel |
channelId, optional maxResults (1–50, default 10) |
channel ID, count, latest videos |
search_videos |
query, optional result count, order, and publication date |
query, count, video summaries |
get_playlist |
channelId or playlistId, optional maxResults (default 20) |
playlists or playlist videos |
video_details |
videoId |
metadata, duration, statistics, tags, thumbnail |
Successful calls return both text content and schema-valid structuredContent. Expected provider/input failures return isError: true. Every provider fetch receives the MCP request cancellation signal.
Prompts
greeting: personalized greeting inen,es,fr, orde; language completion is supported.analysis: structured analysis at basic, intermediate, or advanced depth.multimodal: optional image, audio, and embedded-resource prompt content.
Prompt request arguments are MCP strings. Boolean-like prompt options use "true" and "false".
Resources
Static resources:
config://server— redacted runtime configuration;docs://overview— inherited server documentation;logo://server— PNG blob;logo://server/svg— SVG text;status://server— dynamic process/isolate status.
Templated resource: example://items/{collection}/{id}. It supports listing, argument completion, public cache metadata, and reads. Modern clients can subscribe to list changes and status://server updates through subscriptions/listen.
Authorization boundaries
There are two independent boundaries:
- MCP Resource Server authorization controls access to
/mcp. SetAUTH_ENABLED=true.MCP_AUTH_MODE=jwtverifies signature, issuer, audience, algorithm, expiry, client ID, and required scopes against external AS/JWKS metadata. - Provider OAuth acquires and refreshes a Google/provider credential. The inherited proxy is disabled by default (
PROVIDER_OAUTH_ENABLED=false). Stored mode validates its opaque MCP token record and resolves the distinct provider token from protected storage.
The inherited provider OAuth code is not the default YouTube product path. It is dormant on Bun unless enabled. Workers retain the existing provider OAuth/discovery routes (/authorize, /oauth/callback, /token, /revoke, /register, and /.well-known/*) outside MCP dispatch for compatibility. These routes never parse MCP protocol messages.
Bun stores OAuth token mappings in RS_TOKENS_FILE; Workers preserve the TOKENS KV binding and key format. RS_TOKENS_ENC_KEY enables AES-256-GCM encryption. Provider refresh tokens stay in storage and never enter tool context.
Worker configuration
wrangler.jsonc is the source of truth. It preserves the deployed Worker name and TOKENS namespace ID. Set secrets without placing values in config:
bunx wrangler secret put API_KEY
bunx wrangler secret put RS_TOKENS_ENC_KEY
bunx wrangler secret put PROVIDER_CLIENT_ID
bunx wrangler secret put PROVIDER_CLIENT_SECRET
After binding/config changes:
bun run types:worker
bun run types:worker:check
Validation
bun run typecheck
bun run lint
bun run format:check
bun test
bun run build
bun run build:worker
bun run types:worker:check
bun run test:workerd
The protocol suite uses the official beta.5 client in modern and legacy modes. It covers exact discovery contracts, every advertised primitive, schema-valid mocked provider calls, cancellation, cache hints, completion, subscriptions, strict HTTP handling, JWT Resource Server behavior, concurrent principal isolation, preserved provider OAuth routes/storage, and MCP/provider token separation. test:workerd repeats modern and legacy discovery plus a mocked provider call against actual local workerd.
The pre-migration oracle and known baseline defects are recorded in docs/pre-migration-contract.md. Candidate adaptations, OAuth reachability, storage compatibility, and removed infrastructure are recorded in docs/wave-5-migration.md.
Установка Youtube Streamable
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/iceener/youtube-streamable-mcp-serverFAQ
Youtube Streamable MCP бесплатный?
Да, Youtube Streamable MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Youtube Streamable?
Нет, Youtube Streamable работает без API-ключей и переменных окружения.
Youtube Streamable — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Youtube Streamable в Claude Desktop, Claude Code или Cursor?
Открой Youtube Streamable на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
ARA
Generate images, video and audio from any AI agent — one connector.
автор: ARAOmni Video
An MCP server that transforms LLM-enabled IDEs into professional video editors by pre-processing footage into text proxies, generating motion graphics via HTML/
автор: buildwithtazaYouTube
Transcripts, channel stats, search
автор: YouTubeEverArt
AI image generation using various models.
автор: modelcontextprotocolCompare Youtube Streamable with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории media
