MCP server that fetches YouTube transcripts for AI agents
Project description
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
- Python 3.10+ — download
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_IDhttps://youtu.be/VIDEO_IDhttps://www.youtube.com/embed/VIDEO_IDhttps://www.youtube.com/v/VIDEO_IDVIDEO_ID(bare 11-character ID)
Returns:
video_id— the video IDtitle— video titlechannel_name— channel namethumbnail_url— thumbnail URLduration_seconds— video durationpublish_date— publish datetranscript— full transcript textfrom_cache— whether the result was served from cache
youtube_search
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, default3) — max results returned per query.
Returns a list of results, each containing:
video_id— the video IDtitle— video titlechannel_name— channel nameurl— video URLduration_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:
- uv not installed — Install it: https://docs.astral.sh/uv/getting-started/installation/
- uv not on PATH — Use the full path to
uvxin your config (find yours withwhich uvx):"command": "/Users/you/.local/bin/uvx"
- Switch to pip — Skip uv entirely. Install with
pip install tubemcpand 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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tubemcp-0.1.3.tar.gz.
File metadata
- Download URL: tubemcp-0.1.3.tar.gz
- Upload date:
- Size: 14.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef4f0c58b2ca5baf6f72147c47369a4df1e72446f29113cf7fd159832f7eb8ae
|
|
| MD5 |
d56094a3a20cf7a94d8af40eecdb5d2d
|
|
| BLAKE2b-256 |
f5ca186a34e44bbb21f7d083eea3d9b7aa457b60358dbf0d6f1f5c3d8137458c
|
File details
Details for the file tubemcp-0.1.3-py3-none-any.whl.
File metadata
- Download URL: tubemcp-0.1.3-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
344cefaf7bce2ee335687064f0e5fa6f441d6ce7620d5dd6420b79a905d1998f
|
|
| MD5 |
ea35d956055f5f79f3de5bd420971cca
|
|
| BLAKE2b-256 |
793fbe02fcf02dffd4e4ffc0e3d8a482a9c7b663eccac5736ab429078ef92820
|