MCP server for YouTube transcript extraction and insight analysis
Project description
youtube-insights-mcp
An MCP server that fetches YouTube transcripts and extracts structured insights using Claude. Provides 4 MCP tools and a full CLI, with 6 focus area presets across 24 insight categories.
Features
- Transcript extraction with intelligent language fallback
- Structured insight analysis across 24 categories (business, investment, technical, YouTube growth, AI learning)
- 6 focus area presets: general, entrepreneurial, investment, technical, youtube-channel, ai-learning
- Multiple URL formats: youtube.com, youtu.be, embed links, or just a video ID
- Dual mode: MCP server for Claude Desktop + standalone CLI
- Smart chunking for long transcripts with overlap for context continuity
- Proxy support for environments with IP restrictions
Installation
pip install youtube-insights-mcp
Or with development dependencies:
pip install youtube-insights-mcp[dev]
Quick Start
Claude Desktop Configuration
Add to your Claude Desktop MCP configuration (claude_desktop_config.json):
Using pip install (recommended):
{
"mcpServers": {
"youtube-insights-mcp": {
"command": "youtube-insights-mcp",
"env": {
"LOG_LEVEL": "INFO"
}
}
}
}
Using a local clone:
{
"mcpServers": {
"youtube-insights-mcp": {
"command": "/absolute/path/to/.venv/bin/python",
"args": ["-m", "youtube_insights_mcp"],
"cwd": "/absolute/path/to/project",
"env": {
"PYTHONPATH": "/absolute/path/to/project",
"LOG_LEVEL": "INFO"
}
}
}
}
Note: MCP configuration requires absolute paths. Relative paths will cause startup failures.
CLI Usage
# Health check
youtube-insights-mcp cli ping
# Fetch a transcript
youtube-insights-mcp cli get-transcript "https://www.youtube.com/watch?v=VIDEO_ID"
# List available transcript languages
youtube-insights-mcp cli list-transcripts "https://www.youtube.com/watch?v=VIDEO_ID"
# Extract insights (pipe transcript from stdin)
youtube-insights-mcp cli get-transcript VIDEO_ID --no-segments | \
jq -r '.full_text' | \
youtube-insights-mcp cli extract-insights - --focus "entrepreneurial,investment"
# List all focus areas and categories
youtube-insights-mcp cli list-focus-areas
MCP Tools
get_transcript
Fetch transcript for a YouTube video with intelligent language fallback.
| Parameter | Type | Default | Description |
|---|---|---|---|
video_url |
string | required | YouTube URL or video ID |
language |
string | "en" |
Preferred language code |
Fallback order: requested language > auto-generated version > any English variant > first available.
list_available_transcripts
List all available transcript languages for a video. Useful for checking what's available before fetching.
| Parameter | Type | Default | Description |
|---|---|---|---|
video_url |
string | required | YouTube URL or video ID |
extract_insights
Prepare a transcript for structured insight extraction by Claude. Returns an extraction prompt, categories, and chunked transcript data.
| Parameter | Type | Default | Description |
|---|---|---|---|
transcript |
string | required | Full transcript text (min 100 chars) |
focus_areas |
string | "general" |
Comma-separated focus areas |
video_id |
string | "" |
Optional video ID for tracking |
max_insights |
string | "10" |
Maximum insights to extract |
list_focus_areas
List all available focus area presets and their category definitions.
Focus Areas
| Preset | Categories |
|---|---|
| general | Key points, action items, notable quotes, context |
| entrepreneurial | Business strategies, growth tactics, lessons learned, mistakes to avoid |
| investment | Market trends, opportunities, risks, recommendations |
| technical | Technologies, tools, best practices, pitfalls |
| youtube-channel | Channel strategy, content ideas, audience growth, production tips |
| ai-learning | AI concepts, AI tools, mental models, practical applications |
Use "all" to extract across every category, or combine presets: "entrepreneurial,investment".
Configuration
Proxy Support
If YouTube blocks your IP, configure a proxy via environment variables:
{
"env": {
"PROXY_URL": "http://user:pass@proxy:8080",
"WEBSHARE_USERNAME": "",
"WEBSHARE_PASSWORD": ""
}
}
Priority: Webshare credentials > PROXY_URL > no proxy.
Requirements
- Python >= 3.10
- Dependencies:
mcp,pydantic,youtube-transcript-api,yt-dlp
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 youtube_insights_mcp-0.1.1.tar.gz.
File metadata
- Download URL: youtube_insights_mcp-0.1.1.tar.gz
- Upload date:
- Size: 813.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1d5ceaa9a78c6f35f54c1a46b3b5c4a6c1cddddeaf9f983bea21782b1edd9db
|
|
| MD5 |
e6f4233bf22b2c0bcae214b39ccbffdc
|
|
| BLAKE2b-256 |
016f02536eb552b66fc77fc9286f9c551d461983f3e29455f8b1bff64acd64fd
|
Provenance
The following attestation bundles were made for youtube_insights_mcp-0.1.1.tar.gz:
Publisher:
publish.yml on guardkit/youtube-transcript-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
youtube_insights_mcp-0.1.1.tar.gz -
Subject digest:
e1d5ceaa9a78c6f35f54c1a46b3b5c4a6c1cddddeaf9f983bea21782b1edd9db - Sigstore transparency entry: 1085789699
- Sigstore integration time:
-
Permalink:
guardkit/youtube-transcript-mcp@81303ac0040146d71d8ff673db5636561e3ce93b -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/guardkit
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@81303ac0040146d71d8ff673db5636561e3ce93b -
Trigger Event:
release
-
Statement type:
File details
Details for the file youtube_insights_mcp-0.1.1-py3-none-any.whl.
File metadata
- Download URL: youtube_insights_mcp-0.1.1-py3-none-any.whl
- Upload date:
- Size: 22.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f30baae67f65e1cd1a03dc275efc740593c77d76bfec6f14a2a04833273398ec
|
|
| MD5 |
99ff70aeb641dd2e3ef181f3e24e410a
|
|
| BLAKE2b-256 |
6bf06fa9cf7b13dee9b1c4130ce2e79280e84d31b178a64c033624e606eac96a
|
Provenance
The following attestation bundles were made for youtube_insights_mcp-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on guardkit/youtube-transcript-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
youtube_insights_mcp-0.1.1-py3-none-any.whl -
Subject digest:
f30baae67f65e1cd1a03dc275efc740593c77d76bfec6f14a2a04833273398ec - Sigstore transparency entry: 1085789768
- Sigstore integration time:
-
Permalink:
guardkit/youtube-transcript-mcp@81303ac0040146d71d8ff673db5636561e3ce93b -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/guardkit
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@81303ac0040146d71d8ff673db5636561e3ce93b -
Trigger Event:
release
-
Statement type: