Skip to content

v1.0.0

Latest

Choose a tag to compare

@Yuuzulight Yuuzulight released this 16 Aug 17:33
· 3 commits to main since this release

First stable release. An MCP server exposing YouTube transcripts and public statistics as four tools, for any MCP client.

Install

Download rozetta.plugin below and drag it into Claude Desktop's extensions settings screen. The only prerequisite is uv — it fetches the server and its dependencies itself, so there is no clone, no virtualenv, and no Python version to match.

Any other MCP client works too, with the same block:

{
  "mcpServers": {
    "rozetta": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/Yuuzulight/Rozetta@v1.0.0", "rozetta"],
      "env": { "YOUTUBE_API_KEY": "your-key" }
    }
  }
}

Tools

Tool Cost
get_video_info — title, channel, duration, description preview 1 unit
watch_video — the full transcript, uncapped, optionally translated none
get_video_stats — views, likes, comments, tags 1 unit
get_channel_stats — subscribers, counts, upload cadence 2 units

Transcripts need no API key. Statistics use the YouTube Data API v3; set YOUTUBE_API_KEY as an environment variable. See the setup guide.

Since v0.1.1

  • CI across Python 3.11–3.14 on Linux and Windows, with a coverage floor and a check that the released bundle carries no machine-specific paths.
  • A refused translation now names the caption tracks that would work instead of only suggesting a retry.

Verified against live YouTube

Batching (100 real IDs in 2 calls), duration parsing (100 videos, none unparsed), all four channel URL formats cross-checked against the official API, six error paths, quota gating, and every tool over real MCP stdio with each response validated against its declared output schema.

Known limits

YouTube throttles translated captions far harder than ordinary ones, so requesting a language a video has no real caption track in fails a fair amount of the time. This is YouTube's gate, not the server's — plain fetches succeed from the same address seconds apart. The error lists the languages with real tracks.

Datacenter IPs are widely blocked by YouTube, so transcripts are unreliable if you host this on a VPS. It is designed to run locally.

No search tool, by design: search.list costs 100 quota units against a 10,000/day budget and is the easiest way to exhaust it by accident. No caching, no video download, no OAuth.

161 tests, 98% coverage.