{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_skm2d2qmpvwd","handle":"dreadster3-youtube-mcp","url":"https://wellknown.network/agents/dreadster3-youtube-mcp","links":{"self":"https://wellknown.network/agents/dreadster3-youtube-mcp/record.json","html":"https://wellknown.network/agents/dreadster3-youtube-mcp","markdown":"https://wellknown.network/agents/dreadster3-youtube-mcp/record.md","api":"https://wellknown.network/api/v1/agents/dreadster3-youtube-mcp","status":"https://wellknown.network/api/v1/agents/dreadster3-youtube-mcp/status","claim":"https://wellknown.network/agents/dreadster3-youtube-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/dreadster3-youtube-mcp/claim.json","badge":"https://wellknown.network/agents/dreadster3-youtube-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/dreadster3-youtube-mcp/history","tools":"https://wellknown.network/api/v1/agents/dreadster3-youtube-mcp/tools"},"ard":{"identifier":"urn:air::server:dreadster3-youtube-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"dreadster3-youtube-mcp","summary":"Self-hosted MCP server exposing YouTube transcripts, search, comments and stats.","description":"# YouTube MCP Server\n\nA single-process [MCP](https://modelcontextprotocol.io) server that exposes public YouTube data —\ntranscripts, search, video metadata and statistics, comments, channels, categories — as tools an LLM\ncan call. It speaks **stdio**: any local agent (Claude Desktop, an editor plugin, a script) launches\n`youtube-mcp` as a subprocess and gets the tools over stdin/stdout. **No network exposure, no auth,\nno account** — just a YouTube Data API key.\n\nOne Python process: FastMCP server, YouTube Data API client, transcript fetching and cache all live\nin the same application. No sidecar, no second service, no Redis.\n\n- **15 tools**, all namespaced `youtube_*`, read-only public data.\n- **stdio by default.** HTTP is available for a shared/deployed instance — see\n  [Optional: HTTP mode / container](#optional-http-mode--container).\n- **API-key only.** No OAuth, no uploads, no channel management.\n- **Dislike counts do not exist.** YouTube made them private in December 2021; no endpoint returns\n  them, and this server will not estimate them.\n\n---\n\n## Quick start\n\n```bash\ngit clone <this repo> && cd youtube-mcp\nuv sync                       # creates .venv from uv.lock\nexport YOUTUBE_API_KEY=...    # required — the server fails fast without it\nuv run youtube-mcp            # speaks MCP on stdin/stdout\n```\n\nPoint an MCP client at the published package — `uvx` fetches it from PyPI, so no local\ncheckout is needed:\n\n```json\n{\n  \"mcpServers\": {\n    \"youtube\": {\n      \"command\": \"uvx\",\n      \"args\": [\"--from\", \"dreadster3-youtube-mcp\", \"youtube-mcp\"],\n      \"env\": { \"YOUTUBE_API_KEY\": \"your-key-here\" }\n    }\n  }\n}\n```\n\nThe console script dispatches on `MCP_TRANSPORT`, which defaults to `stdio`:\n\n```bash\nuv run youtube-mcp                          # stdio (default)\nMCP_TRANSPORT=http uv run youtube-mcp       # streamable HTTP on 0.0.0.0:8088\n```\n\nThe cache is a local SQLite file (`DATABASE_PATH`, default `cache.db` in the working directory).\nIt is **ephemeral by design*…","publisher":null,"homepage":null,"repository":null,"version":"0.5.0","license":null,"protocols":["mcp"],"tags":["mcp"],"pricing":null,"endpoints":[{"url":"pypi:dreadster3-youtube-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","summary":"pypi","version":"pypi","description":"pypi"}},"derived":{"capabilities":[{"slug":"data.database","name":"Databases","confidence":0.802,"provenance":"derived"},{"slug":"dev.package-management","name":"Packages & Dependencies","confidence":0.768,"provenance":"derived"},{"slug":"security.identity","name":"Identity & Access","confidence":0.745,"provenance":"derived"}],"categories":["data","dev","security"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"dreadster3-youtube-mcp","registry":"pypi","observedAt":"2026-11-05T21:26:37.349Z","publishedAt":"2026-10-24T17:51:05.485654Z","latestVersion":"0.5.0"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"dreadster3-youtube-mcp","url":"https://pypi.org/project/dreadster3-youtube-mcp/","firstSeenAt":"2026-10-06T13:22:45.432Z","fetchedAt":"2026-11-05T21:25:11.406Z","normalizedAt":"2026-11-05T21:25:11.406Z"}]},"firstSeenAt":"2026-10-06T13:22:45.432Z","updatedAt":"2026-11-05T21:26:37.349Z"}