YouTube video analysis and content generation pipeline exposed as MCP tools
Project description
mcp-content-pipeline
A YouTube video analysis and content generation pipeline exposed as MCP tools. Extract transcripts, generate key takeaways, TLDRs, and Twitter/X hook drafts — all callable by any MCP-compatible AI client like Claude Desktop.
Why?
Manually copying YouTube transcripts into AI tools, crafting prompts, and formatting output is tedious and error-prone. This MCP server turns the entire workflow into chainable tools that any AI agent can call. List videos from a channel, analyse them in batch, and sync the results to GitHub — all in a single conversation.
Quick Start
uvx mcp-content-pipeline
Or install explicitly:
uv tool install mcp-content-pipeline
mcp-content-pipeline
Claude Desktop Configuration
Add to your Claude Desktop MCP config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"content-pipeline": {
"command": "/usr/local/bin/uvx",
"args": ["mcp-content-pipeline"],
"env": {
"MCP_CP_ANTHROPIC_API_KEY": "sk-ant-...",
"MCP_CP_GITHUB_TOKEN": "ghp_...",
"MCP_CP_GITHUB_REPO": "your-username/your-repo",
"MCP_CP_GEMINI_API_KEY": "your-gemini-api-key"
}
}
}
}
Tools
| Tool | Description | Requires |
|---|---|---|
analyse_video |
Analyse a single YouTube video — transcript, takeaways, TLDR, Twitter hook | ANTHROPIC_API_KEY |
batch_analyse |
Analyse multiple videos from a URL list or config file | ANTHROPIC_API_KEY |
list_channel_videos |
Fetch recent videos from a YouTube channel | YOUTUBE_API_KEY |
sync_to_github |
Push analyses as markdown files to a GitHub repo | GITHUB_TOKEN, GITHUB_REPO |
generate_image |
Generate comic-book infographic from analysis result | GEMINI_API_KEY |
Environment Variables
All prefixed with MCP_CP_:
| Variable | Required | Description |
|---|---|---|
MCP_CP_ANTHROPIC_API_KEY |
Yes | Anthropic API key for Claude analysis |
MCP_CP_YOUTUBE_API_KEY |
No | YouTube Data API v3 key (only for list_channel_videos) |
MCP_CP_GITHUB_TOKEN |
For sync | GitHub personal access token |
MCP_CP_GITHUB_REPO |
For sync | Target repo in owner/repo format |
MCP_CP_GITHUB_BRANCH |
No | Branch to push to (default: main) |
MCP_CP_GITHUB_OUTPUT_DIR |
No | Output directory in repo (default: content/videos) |
MCP_CP_CLAUDE_MODEL |
No | Claude model to use (default: claude-sonnet-4-20250514) |
MCP_CP_MAX_TRANSCRIPT_TOKENS |
No | Max transcript length in tokens (default: 100000) |
MCP_CP_GEMINI_API_KEY |
For image | Google AI Studio API key for image generation |
MCP_CP_GEMINI_MODEL |
No | Gemini model for images (default: gemini-2.5-flash-image) |
Example Workflow
Chain tools together in a single conversation:
1. "List the last 5 videos from channel UC_x5XG1OV2P6uZZ5FSM9Ttw"
→ list_channel_videos returns 5 video URLs
2. "Analyse all of these videos"
→ batch_analyse processes all 5, returns analyses
3. "Generate images for each analysis"
→ generate_image creates comic-book infographics for each
4. "Sync the results to GitHub"
→ sync_to_github pushes markdown files + images + index to your repo
Development
git clone https://github.com/your-username/mcp-content-pipeline.git
cd mcp-content-pipeline
uv sync
uv run pytest -v --cov=src/mcp_content_pipeline
uv run ruff check src/ tests/
Security
- All credentials are configured via local environment variables — never committed to the repo
- The tool is open source but your API keys, YouTube key, and GitHub token stay on your machine
- Never create a
.envfile in the repo — use shell exports or Claude Desktop config instead
Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feat/my-feature) - Commit using Conventional Commits (
feat: add new feature) - Push and open a Pull Request
License
Project details
Release history Release notifications | RSS feed
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 mcp_content_pipeline-0.5.1.tar.gz.
File metadata
- Download URL: mcp_content_pipeline-0.5.1.tar.gz
- Upload date:
- Size: 121.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e5d6b7158cec9dec32beb28db02049f7af9ed471a68a1140571ea262958e86b
|
|
| MD5 |
d8b9c4c53b8f1bbac61353e9d808e27b
|
|
| BLAKE2b-256 |
cf04fc1ac1ef7f6047585f6082596ce0380f9c2e1d4d8817900b36bd8346c6c7
|
Provenance
The following attestation bundles were made for mcp_content_pipeline-0.5.1.tar.gz:
Publisher:
release.yml on berkayildi/mcp-content-pipeline
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcp_content_pipeline-0.5.1.tar.gz -
Subject digest:
3e5d6b7158cec9dec32beb28db02049f7af9ed471a68a1140571ea262958e86b - Sigstore transparency entry: 1155602819
- Sigstore integration time:
-
Permalink:
berkayildi/mcp-content-pipeline@50ff7e34c9ebf0bef2d69eca93857cd0ec83f5ca -
Branch / Tag:
refs/heads/main - Owner: https://github.com/berkayildi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@50ff7e34c9ebf0bef2d69eca93857cd0ec83f5ca -
Trigger Event:
push
-
Statement type:
File details
Details for the file mcp_content_pipeline-0.5.1-py3-none-any.whl.
File metadata
- Download URL: mcp_content_pipeline-0.5.1-py3-none-any.whl
- Upload date:
- Size: 19.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 |
b1117c7fb029a9b42e0000008f478d02191f9f0a36eaf0ee8c94c0aab30aa0b6
|
|
| MD5 |
582e0ef9137d069d70e40c8563da5b8f
|
|
| BLAKE2b-256 |
4356d508f62df8fabae66c806b45bde576d17a1cc58ab45ee3720f40e1d4976b
|
Provenance
The following attestation bundles were made for mcp_content_pipeline-0.5.1-py3-none-any.whl:
Publisher:
release.yml on berkayildi/mcp-content-pipeline
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcp_content_pipeline-0.5.1-py3-none-any.whl -
Subject digest:
b1117c7fb029a9b42e0000008f478d02191f9f0a36eaf0ee8c94c0aab30aa0b6 - Sigstore transparency entry: 1155602835
- Sigstore integration time:
-
Permalink:
berkayildi/mcp-content-pipeline@50ff7e34c9ebf0bef2d69eca93857cd0ec83f5ca -
Branch / Tag:
refs/heads/main - Owner: https://github.com/berkayildi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@50ff7e34c9ebf0bef2d69eca93857cd0ec83f5ca -
Trigger Event:
push
-
Statement type: