tubekit MCP server
io.github.santiriera626/tubekit-mcp·v0.3.0Compliance-aware MCP server for YouTube publishing, analytics and creator insights.
0 stars
Reviews
Write oneNobody has reviewed tubekit yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
tubekit tools (24, 7 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
add_to_playlistAdd a video to a playlist. Charges 50 Data-v3 units.
check_oauthValidate a channel's OAuth grant without spending YouTube quota.
create_playlistwrite actionCreate a playlist on the channel. Charges 50 Data-v3 units.
get_analyticsPull channel-level analytics over a window. Charges 1 unit against the SEPARATE #analytics bucket (not Data v3). The service takes ISO date strings (Plan 00 Seam 9), so the `date` inputs are serialised here.
get_channel_reportSingle-channel health report: growth, engagement, top videos, traffic mix, Shorts/long-form split, and revenue (estimated ad+Premium) or YPP progress when not monetized. Read-only. Charges 7 Analytics units.
get_comment_threadOne thread in full: untruncated text + all replies (live fetch). Charges 2 Data-v3 units.
get_comments_digestPortfolio-wide comment counts (unread/unanswered/held/spam, per video). channels omitted = all. Charges 4 Data-v3 units per channel.
get_portfolio_reportPortfolio-wide weekly view: one row per channel with totals and vs-prior-period deltas; YPP progress for non-monetized channels. Read-only. Charges 3 Analytics units per channel, against each channel's own #analytics bucket.
get_video_reportPer-video performance deep dive with retention proxy and revenue (estimated ad+Premium) when monetized; lifetime window by default. Read-only. Charges 5 Analytics units.
get_video_statusRead upload/processing/privacy status of a video. Read-only (span only, no audit row). Charges 1 Data-v3 unit.
list_commentsCompact comment listing from the local mirror (only: unread|unanswered|held|spam|flagged|all). Charges 1 Data-v3 unit.
list_my_videosPaginated list of channel uploads. Charges 1 Data-v3 unit.
list_playlist_itemsList one playlist's videos in order.
list_playlistsList the channel's own playlists (id, title, privacy, item count).
mark_comments_reviewedClose the triage: set local state (read|flagged_for_reply|unread) on explicit ids OR all_unread=true (optionally per video). 0 quota units. Listing never auto-marks — this call is the only way to mark.
remove_from_playlistwrite actionRemove one entry from a playlist. Charges 50 Data-v3 units.
reorder_playlist_itemMove an entry to ``position`` within its playlist (0 = first).
request_ingest_uploadwrite actionIssue a one-time URL to PUT a video file the server then ingests.
set_thumbnailSet a thumbnail on an existing video. Inherently idempotent (PUT-like); no idempotency ledger row. Charges 50 Data-v3 units.
tubekit.healthHealth payload (ADR D9). Same shape as HTTP GET /healthz.
update_metadatawrite actionPartially update a video's metadata. Only the fields you set in ``patch`` change; the service fetches the current snippet/status and resends the merged result, so omitted fields are preserved (a true partial update, not a destructive replace). Runs compliance against the post-patch metadata and aborts with compliance_violation on failure. Idempotent. Charges 50 Data-v3 units. Appends a video.metad
update_playlistwrite actionPatch a playlist's title, description or privacy. 50 Data-v3 units.
upload_videowrite actionUpload a video after a compliance gate.
validate_compliancewrite actionRun the rule registry against VideoMetadata; return a ComplianceReport.
Public scan report
scanner v0.1.9 · 2026-09-23 · same rubric, same numbers if you re-run it
- Code scan128 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 45 days ago12/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How tubekit compares
Against every graded Media MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 88/100
- higher than 78% of 1,337 Media servers
- Tools
- 24
- the typical Media server has 7
- Tools that change things
- 29%
- typical: 4%. Fewer write tools means less an agent can break
What its tools let an agent do: 14 read · 3 create · 6 change · 1 delete
Install tubekit in Claude Code, Cursor or VS Code
claude mcp add tubekit-mcp -- uvx tubekit-mcp
What the publisher says
From the tubekit repository's README, as published. We do not edit it. Read it on GitHub
<!-- mcp-name: io.github.santiriera626/tubekit-mcp --> <!-- ^ Proof of ownership for the MCP Registry, which reads it from the PyPI description (this file). Do not remove, reword or glue it to other text: the token must be followed by a boundary. Guarded by tests/unit/testregistrymetadata.py. -->
tubekit-mcp
Compliance-aware Model Context Protocol server for YouTube publishing, analytics, and creator insights — every action gated, metered, and audited before it touches a channel.
tubekit-mcp is an MCP server: you connect it to an MCP client (Claude Desktop, Claude Code, …) and the assistant can then publish and manage videos on a YouTube channel on your behalf, with compliance checks, quota accounting, idempotent uploads and a tamper-evident audit log on every state-changing call. Licensed under FSL-1.1-MIT — run and self-host it freely, commercially or not; each release becomes plain MIT two years after publication.
Architecture
A single tool call (e.g. uploadvideo) flows through a compliance gate, a quota / idempotency ledger, an OAuth refresh, the YouTube API, and a tamper-evident audit row — with the pure core kept free of protocol concerns, a boundary enforced in CI by an AST fitness test (tests/unit/services/testnofastmcpimports.py).
flowchart LR
client["MCP client<br/>(Claude Desktop / Code)"]
subgraph edge["Protocol edge"]
transport["Transport<br/>stdio · HTTP + Bearer"]
tool["Tool wrapper"]
end
subgraph core["Pure core — no protocol imports (CI-enforced)"]
compliance{"Compliance<br/>gate"}
ledger["Quota +<br/>idempotency<br/>ledger"]
oauth["OAuth refresh<br/>(Fernet at rest)"]
end
upstream["YouTube<br/>Data / Analytics API"]
audit[("Tamper-evident<br/>hash-chained<br/>audit log")]
client --> transport --> tool --> compliance
compliance -->|pass| ledger --> oauth --> upstream
compliance -->|fail| suggestion["Suggestion →<br/>agent retries"]
tool -. audited .-> audit
ledger -. audited .-> audit
oauth -. audited .-> auditWhy this exists. Agents are starting to operate real YouTube channels —
and a channel is an asset you can lose. One bad call can publish a video
that violates policy, burn the day's API quota (an upload costs 1600 of the
default 10,000 daily units), or double-publish on a retry. Generic YouTube
wrappers hand the agent the raw API; tubekit wraps every call in the
guardrails an unattended operator needs: a compliance gate before anything
goes live, quota accounted before it is spent, idempotent retries, OAuth
tokens encrypted at rest (fingerprint-only logging), and a tamper-evident
audit chain of everything the agent did. Full design rationale in
ADR 0001.
Usage
Prerequisites
Before an assistant can act on a channel you need, once per channel:
Analytics API if you use getanalytics) enabled.
- A Google Cloud project with the YouTube Data API v3 (and *YouTube
- An OAuth client of type Desktop app, downloaded as client_secret.json.
- The channel whose Google account will grant the consent.
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
tubekit: common questions
- Is tubekit MCP server safe?
- Yes, by our scan: it is graded A (88/100). Read the tubekit safety report
- How do I install tubekit?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does tubekit need an API key?
- No secret keys are declared. It reads 3 settings from the environment.
- Is tubekit maintained?
- The last commit was 86 days ago (2026-08-10). The latest release is v0.3.0.
- What can I use instead of tubekit?
- Servers from other publishers that do the same job: Openshorts MCP server, Youtube Transcript MCP server and YouTube Data MCP server.
- How does tubekit compare with other Media MCP servers?
- safety score 88/100 (higher than 78% of 1,337 Media servers); tools 24 (the typical Media server has 7); tools that change things 29% (typical: 4%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to tubekit
Same job from other publishers: the closest match first, then the best rated.
OpenshortsTurn long videos into viral vertical shorts and publish them to TikTok, Instagram and YouTube.not reviewedEstablishedA- Youtube TranscriptThis is an MCP server that allows you to directly download transcripts of YouTube videos.not reviewedEstablishedB
- YouTube DataYouTube MCP server for token-optimized, structured data using the YouTube Data API v3.not reviewedGrowingB
- Youtube TranscriptAn MCP server retrieving transcripts of YouTube videosnot reviewedGrowingA
TokPortalManaged TikTok/Instagram/YouTube accounts + video posting at scale, operated by human managers.not reviewedGrowingA