About tubekit
tubekit is an MCP server in the Social category: compliance-aware MCP server for YouTube publishing, analytics and creator insights.
Install
uvx tubekit-mcppip install tubekit-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (23)
add_to_playlist(channel, playlist_id, video_id, position=None)Add a video (append, or insert at `position`). Not idempotent — YouTube allows duplicates.
Parameters not published.
check_oauth(channel)Zero-quota OAuth liveness pre-flight: refresh the stored grant against Google's token endpoint and report `oauth_ok` + expiry. Run before a quota-spending tool.
Parameters not published.
create_playlist(channel, title, description="", privacy_status="private")Create a playlist. **Defaults to private**; going public is an explicit act. Not idempotent.
Parameters not published.
get_analytics(channel, metrics, start_date, end_date, dimensions=None)Channel-level metrics over a window. Uses the **separate** Analytics quota bucket.
Parameters not published.
get_channel_report(channel, period="28d", start_date=None, end_date=None, granularity="auto")Single-channel health report: totals, trend series, top videos, traffic sources, Shorts/long-form split, revenue or YPP progress, lifetime snapshot.
Parameters not published.
get_comment_thread(channel, comment_id)One thread in full: untruncated text + all replies.
Parameters not published.
get_comments_digest(channels=None, force_sync=False)Portfolio-wide comment counts (unread/unanswered/held/spam, per video).
Parameters not published.
get_portfolio_report(channels=None, period="28d", start_date=None, end_date=None)One row per channel: period totals + vs-prior deltas (views, revenue), YPP progress for non-monetized channels. Per-channel failures are isolated.
Parameters not published.
get_video_report(channel, video_id, period="lifetime", start_date=None, end_date=None, granularity="auto")Per-video deep dive: retention proxy, traffic sources, revenue when monetized; window starts at publication by default.
Parameters not published.
get_video_status(channel, video_id)Read processing/privacy status of a video.
Parameters not published.
Show all 23 tools
list_comments(channel, video_id=None, only="unread", search=None, order="time", page_size=20, page=1)Compact comment listing from the local mirror.
Parameters not published.
list_my_videos(channel, page_size=50, page_token=None)Paginated list of channel uploads.
Parameters not published.
list_playlist_items(channel, playlist_id, page_size=50, page_token=None)One playlist's videos in order. Returns each `playlist_item_id` — the handle remove/reorder need.
Parameters not published.
list_playlists(channel, page_size=50, page_token=None)The channel's own playlists: id, title, privacy, item count.
Parameters not published.
mark_comments_reviewed(channel, ids=None, video_id=None, all_unread=False, state="read")Local triage state; never mutates YouTube.
Parameters not published.
remove_from_playlist(channel, playlist_item_id)Remove one entry. The video itself is untouched.
Parameters not published.
reorder_playlist_item(channel, playlist_id, playlist_item_id, video_id, position)Move an entry to `position` (0 = first).
Parameters not published.
request_ingest_upload(channel, filename, size_bytes, sha256)Issue a one-time brokered upload URL so a remote client can `PUT` a multi-GB video the server then ingests — no ssh. See [media ingest](#media-ingest-remote-upload_video).
Parameters not published.
set_thumbnail(channel, video_id, thumbnail_path)Set a thumbnail on an existing video.
Parameters not published.
update_metadata(channel, video_id, patch)Partially update title/description/tags/privacy. Compliance-gated on the post-patch metadata.
Parameters not published.
update_playlist(channel, playlist_id, title=None, description=None, privacy_status=None)Patch title/description/privacy. Omitted fields are read and merged, never blanked.
Parameters not published.
upload_video(channel, video_path, metadata, idempotency_key, privacy_status="private", notify_subscribers=False)Upload a video after an internal compliance gate. Idempotent via `idempotency_key`.
Parameters not published.
validate_compliance(channel, metadata, thumbnail_present=False)Run the rule registry against metadata; returns a `ComplianceReport`. Pure-local, no YouTube call.
Parameters not published.
Ask AI
Ask AI about tubekit
Powered by Claude · Grounded in docs
Security checks
6 checks have not been run yet.