MCP.Market

tubekit MCP server

by santiriera626·io.github.santiriera626/tubekit-mcp·v0.3.0

Compliance-aware MCP server for YouTube publishing, analytics and creator insights.

A88/100grade A
What users say
No reviews yet
Be the first
Safety scan
A88/100

full report

Adoption
New

0 stars

Reviews

Write one

Nobody 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 posts

Read from the package source without running it. The installed server may list more.

  • add_to_playlist

    Add a video to a playlist. Charges 50 Data-v3 units.

  • check_oauth

    Validate a channel's OAuth grant without spending YouTube quota.

  • create_playlistwrite action

    Create a playlist on the channel. Charges 50 Data-v3 units.

  • get_analytics

    Pull 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_report

    Single-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_thread

    One thread in full: untruncated text + all replies (live fetch). Charges 2 Data-v3 units.

  • get_comments_digest

    Portfolio-wide comment counts (unread/unanswered/held/spam, per video). channels omitted = all. Charges 4 Data-v3 units per channel.

  • get_portfolio_report

    Portfolio-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_report

    Per-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_status

    Read upload/processing/privacy status of a video. Read-only (span only, no audit row). Charges 1 Data-v3 unit.

  • list_comments

    Compact comment listing from the local mirror (only: unread|unanswered|held|spam|flagged|all). Charges 1 Data-v3 unit.

  • list_my_videos

    Paginated list of channel uploads. Charges 1 Data-v3 unit.

  • list_playlist_items

    List one playlist's videos in order.

  • list_playlists

    List the channel's own playlists (id, title, privacy, item count).

  • mark_comments_reviewed

    Close 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 action

    Remove one entry from a playlist. Charges 50 Data-v3 units.

  • reorder_playlist_item

    Move an entry to ``position`` within its playlist (0 = first).

  • request_ingest_uploadwrite action

    Issue a one-time URL to PUT a video file the server then ingests.

  • set_thumbnail

    Set a thumbnail on an existing video. Inherently idempotent (PUT-like); no idempotency ledger row. Charges 50 Data-v3 units.

  • tubekit.health

    Health payload (ADR D9). Same shape as HTTP GET /healthz.

  • update_metadatawrite action

    Partially 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 action

    Patch a playlist's title, description or privacy. 50 Data-v3 units.

  • upload_videowrite action

    Upload a video after a compliance gate.

  • validate_compliancewrite action

    Run 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

no findings
  • 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
Overall 88/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

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
Add to Cursor

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 .-> audit

Why 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.

  1. A Google Cloud project with the YouTube Data API v3 (and *YouTube
  1. An OAuth client of type Desktop app, downloaded as client_secret.json.
  2. 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.

  • Openshorts
    Turn long videos into viral vertical shorts and publish them to TikTok, Instagram and YouTube.
    A
  • Youtube Transcript
    This is an MCP server that allows you to directly download transcripts of YouTube videos.
    B
  • YouTube Data
    YouTube MCP server for token-optimized, structured data using the YouTube Data API v3.
    B
  • Youtube Transcript
    An MCP server retrieving transcripts of YouTube videos
    A
  • TokPortal
    Managed TikTok/Instagram/YouTube accounts + video posting at scale, operated by human managers.
    A