Repository navigation
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.