Skip to main content

License: MIT Python 3.10+

TubeMCP

MCP server that lets AI agents search YouTube and fetch transcripts. Zero config — just install and go.

What is MCP? Model Context Protocol lets AI assistants like Claude call external tools. TubeMCP gives your AI agent the ability to search YouTube and read any video's transcript — useful for summarization, Q&A, research, and content analysis.

Prerequisites

Installation

pip install tubemcp

or

uv tool install tubemcp

Then add it to your client:

Claude Code:

claude mcp add tubemcp -- tubemcp

Claude Desktop — add to your claude_desktop_config.json:

{
  "mcpServers": {
    "tubemcp": {
      "command": "tubemcp"
    }
  }
}

Cursor — add to .cursor/mcp.json:

{
  "mcpServers": {
    "tubemcp": {
      "command": "tubemcp"
    }
  }
}

Windsurf — add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "tubemcp": {
      "command": "tubemcp"
    }
  }
}

What you get

youtube_get_transcript

Fetch the English transcript and metadata for any YouTube video.

Input: A YouTube URL or video ID in any of these formats:

  • https://www.youtube.com/watch?v=VIDEO_ID
  • https://youtu.be/VIDEO_ID
  • https://www.youtube.com/embed/VIDEO_ID
  • https://www.youtube.com/v/VIDEO_ID
  • VIDEO_ID (bare 11-character ID)

Returns:

  • video_id — the video ID
  • title — video title
  • channel_name — channel name
  • thumbnail_url — thumbnail URL
  • duration_seconds — video duration
  • publish_date — publish date
  • transcript — full transcript text
  • from_cache — whether the result was served from cache

Search YouTube with multiple queries for broader coverage. Results are deduplicated by video ID. Returns metadata only — no transcripts.

Input:

  • queries (list[str]) — search queries to run. Use 2–3 from different angles for best results.
  • max_results_per_query (int, default 3) — max results returned per query.

Returns a list of results, each containing:

  • video_id — the video ID
  • title — video title
  • channel_name — channel name
  • url — video URL
  • duration_seconds — video duration

Caching

Transcripts are cached locally in ~/.tubemcp/cache.db (SQLite). Subsequent requests for the same video are served instantly from cache.

Troubleshooting

spawn uvx ENOENT

This means your MCP client can't find the uvx command. Three fixes:

  1. uv not installed — Install it: https://docs.astral.sh/uv/getting-started/installation/
  2. uv not on PATH — Use the full path to uvx in your config (find yours with which uvx):
    "command": "/Users/you/.local/bin/uvx"
    
  3. Switch to pip — Skip uv entirely. Install with pip install tubemcp and use "command": "tubemcp" in your config (see pip installation above).

Verify uv is working:

uvx --version

Development

git clone https://github.com/BlockBenny/tubemcp.git
cd tubemcp
pip install -e ".[dev]"
pytest

Contributing

See CONTRIBUTING.md for development setup and guidelines.

License

MIT

Metadata

Release files for tubemcp 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tubemcp 0.1.3
File Size Uploaded Provenance
tubemcp-0.1.3.tar.gz 14.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for tubemcp 0.1.3
File Interpreter ABI Platform
tubemcp-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 24.0 kB

Release files / tubemcp-0.1.3.tar.gz

Download URL tubemcp-0.1.3.tar.gz
Size 14.8 kB
Tags Source
SHA-256 checksum
How to use checksums
ef4f0c58b2ca5baf6f72147c47369a4df1e72446f29113cf7fd159832f7eb8ae
BLAKE2b-256 checksum
How to use checksums
f5ca186a34e44bbb21f7d083eea3d9b7aa457b60358dbf0d6f1f5c3d8137458c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.9

Release files / tubemcp-0.1.3-py3-none-any.whl

Download URL tubemcp-0.1.3-py3-none-any.whl
Size 9.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
344cefaf7bce2ee335687064f0e5fa6f441d6ce7620d5dd6420b79a905d1998f
BLAKE2b-256 checksum
How to use checksums
793fbe02fcf02dffd4e4ffc0e3d8a482a9c7b663eccac5736ab429078ef92820
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.9

Security for tubemcp 0.1.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page