# tube-bridge (pypi · tube-bridge)

YouTube MCP server for search, transcripts, frames, comments, channels, and local semantic corpora.

- Trust score: 70/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-17

## Components

- pypi · `tube-bridge`: 70/100 (this document), [markdown](https://verifymcp.io/servers/thewhitewater-tube-bridge/tube-bridge.md), [page](https://verifymcp.io/servers/thewhitewater-tube-bridge/tube-bridge)

## Channel facts

- Registry: `pypi`
- Package: `tube-bridge`
- Version: `1.1.6`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-17.

- **Supply Chain Security**: 99/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - Runs setuptools.build_meta at install time, a recognised native-build step with no shell scripting around it.
  - 9 of 66 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 35/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - License check failed: no license is declared.
  - Actively maintained (last published 0 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 81/100
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 1257 tokens (~73/item across 17 items; 17 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 13/100
  - Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add thewhitewater-tube-bridge -- uvx tube-bridge
```

### Codex

```bash
codex mcp add thewhitewater-tube-bridge -- uvx tube-bridge
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "thewhitewater-tube-bridge": {
      "type": "local",
      "command": [
        "uvx",
        "tube-bridge"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add thewhitewater-tube-bridge --command uvx --arg tube-bridge
```

### Hermes

```yaml
mcp_servers:
  thewhitewater-tube-bridge:
    command: "uvx"
    args: ["tube-bridge"]
```

### Other

```json
{
  "mcpServers": {
    "thewhitewater-tube-bridge": {
      "command": "uvx",
      "args": [
        "tube-bridge"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-17 (score 70, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-16 (score 69, 0)

- [security regression] Stability: 0.07 → unverified
- [functional regression] Schema quality: 59 → 73
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional] First check of Schema quality: unverified
- [functional] Package version: 1.1.4 → 1.1.6
- [functional] Package version: 1.1.4 → 1.1.5

### 2026-08-15 (score 69, +1)

- [security] Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Stability: unverified → 0.07
- [functional] First check of Schema quality: unverified
- [functional] Package version: 1.1.3 → 1.1.4

### 2026-08-13 (score 68)

First indexed and scored.

## MCP tools (17)

### `youtube_search` (~158 tokens)

Search YouTube videos. Uses Data API v3 when YOUTUBE_API_KEY is set, falls back to yt-dlp. Filters: date range, channel, duration, order.

Input parameters:

- `channel_id` (string): Restrict to channel ID (API only)
- `limit` (integer): Max results (default 10, max 50)
- `order` (string): Sort: date, rating, relevance, viewCount, title (API only)
- `published_after` (string): ISO 8601 date filter (API only)
- `published_before` (string): ISO 8601 date filter (API only)
- `query` (string, required): Search query
- `video_duration` (string): short, medium, long (API only)

### `youtube_search_channels` (~90 tokens)

Search YouTube channels by name/topic. Returns subscriber counts, video counts, country. Requires YOUTUBE_API_KEY.

Input parameters:

- `limit` (integer): Max results (default 10)
- `max_subscribers` (integer): Maximum subscriber filter
- `min_subscribers` (integer): Minimum subscriber filter
- `order` (string): relevance, date
- `query` (string, required): Channel name or topic

### `youtube_get_channel_info` (~46 tokens)

Detailed channel metadata: subscribers, views, videos, country, keywords. Requires YOUTUBE_API_KEY.

Input parameters:

- `channel_id` (string, required): YouTube channel ID (starts with UC...)

### `youtube_get_video_info` (~43 tokens)

Detailed metadata for a YouTube video: title, duration, views, channel, description, tags.

Input parameters:

- `url` (string, required): YouTube video URL or ID

### `youtube_get_trending` (~90 tokens)

List up to `limit` currently trending YouTube videos. Use this for broad discovery, not keyword search. Read-only; uses Data API v3 when `YOUTUBE_API_KEY` is set and otherwise a keyless yt-dlp fallback. Returns source metadata and video records; results can change over time and depend on upstream availability.

Input parameters:

- `limit` (integer): Max results (default 10)

### `youtube_get_channel_videos` (~98 tokens)

List up to `limit` recent uploads from a known YouTube channel URL or @handle. Use this for channel browsing, not keyword search or channel metadata. Read-only and keyless; returns normalized channel metadata plus video records. Empty results include a warning when the channel is missing or has no uploads.

Input parameters:

- `channel_url` (string, required): Channel URL or @handle
- `limit` (integer): Max videos (default 10)

### `youtube_get_playlist` (~95 tokens)

List up to `limit` videos from a known YouTube playlist URL in upstream order. Use this for playlist contents, not channel uploads or keyword search. Read-only and keyless; returns playlist metadata plus ordered video records. Results are bounded and may fail when the playlist is private, unavailable, or blocked upstream.

Input parameters:

- `limit` (integer): Max videos (default 20)
- `playlist_url` (string, required): Playlist URL

### `youtube_get_transcript` (~89 tokens)

Transcript/subtitles of a YouTube video. Uses the original/default language; manual > ASR within that language.

Input parameters:

- `lang` (string): Language code (e.g. en, ru). Auto-detect if not specified.
- `url` (string, required): YouTube video URL or ID
- `with_timestamps` (boolean): Include [MM:SS] timestamps (default: false)

### `youtube_get_frame` (~81 tokens)

Extract one ephemeral JPEG near an integer-millisecond timestamp. Returns metadata plus MCP ImageContent; accuracy is best-effort at a decoded frame boundary.

Input parameters:

- `max_width` (integer): Maximum JPEG width in pixels (default 640)
- `timestamp_ms` (integer, required): Frame timestamp in integer milliseconds
- `url` (string, required): YouTube video URL or ID

### `youtube_get_available_languages` (~36 tokens)

Available subtitle languages for a video. Shows manual vs auto-generated.

Input parameters:

- `url` (string, required): YouTube video URL or ID

### `youtube_get_comments` (~100 tokens)

Retrieve up to `max_results` top-level comments for a known YouTube video. Use this for audience reactions, not video metadata or transcripts. Read-only and requires `YOUTUBE_API_KEY`; returns structured comment records. Calls may fail when comments are disabled, the video is unavailable, or Data API quota is exhausted.

Input parameters:

- `max_results` (integer): Max comments (default 20)
- `url` (string, required): YouTube video URL or ID

### `corpus_create` (~61 tokens)

Create a named corpus for semantic search over transcripts. Each corpus uses a fixed embedding model.

Input parameters:

- `corpus_id` (string, required): Unique corpus ID (e.g. 'iran-hormuz-2026')
- `label` (string): Human-readable label (optional)

### `corpus_add` (~120 tokens)

Fetch a video's transcript, chunk it, and store local embeddings in an existing corpus. Use this after `corpus_create`; it skips an already-indexed video by default. `force_reembed=true` deletes and replaces that video's existing local chunks and vectors. This modifies local corpus data and may contact YouTube; returns indexing status and chunk count.

Input parameters:

- `corpus_id` (string, required): Corpus ID to add to
- `force_reembed` (boolean): Re-embed even if already indexed
- `url` (string, required): YouTube video URL or ID

### `corpus_search` (~73 tokens)

Semantic search within a corpus. Deduplicates overlapping windows, limits source domination, and returns titles plus timestamp URLs.

Input parameters:

- `corpus_id` (string, required): Corpus ID to search in
- `query` (string, required): Natural language search query
- `top_k` (integer): Max results (default 10, max 50)

### `corpus_list` (~19 tokens)

List all available corpora with chunk and video counts.

### `corpus_delete` (~31 tokens)

Delete a corpus and all its chunks/vectors permanently.

Input parameters:

- `corpus_id` (string, required): Corpus ID to delete

### `tube_bridge_help` (~27 tokens)

Get tube-bridge documentation: available tools, architecture, known limitations, API key setup.

## Diagnostics

Captured diagnostic sections: Provenance, Install scripts, Dependencies. The full working is on the page: https://verifymcp.io/servers/thewhitewater-tube-bridge/tube-bridge#diagnostics

## Score history

- 2026-08-17: 70
- 2026-08-16: 69
- 2026-08-15: 69
- 2026-08-14: 68
- 2026-08-13: 68

## Links

- PyPI project: https://pypi.org/project/tube-bridge/
- Socket report: https://socket.dev/pypi/package/tube-bridge
- Repository: https://github.com/TheWhiteWater/tube-bridge
- Changelog RSS feed: https://verifymcp.io/servers/thewhitewater-tube-bridge/tube-bridge.xml
- Changelog JSON feed: https://verifymcp.io/servers/thewhitewater-tube-bridge/tube-bridge.json
- HTML version of this page: https://verifymcp.io/servers/thewhitewater-tube-bridge/tube-bridge
