Transcribes YouTube videos, extracting video title, full transcript, thumbnail URL, and video ID from any YouTube video.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@pocket-joe-mcp-toystranscribe this YouTube video: https://youtu.be/dQw4w9WgXcQ"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
pocket-joe-mcp-toys
MCP servers built with pocket-joe - YouTube transcription and more.
What's Inside
YouTube Transcriber
MCP server that transcribes YouTube videos, extracting:
Video title
Full transcript
Thumbnail URL
Video ID
Built using pocket-joe policies and deployed to Railway.
Deploy to Railway
Prerequisites
Railway account (Hobby plan recommended)
GitHub account
Steps
Push this repo to GitHub
cd pocket-joe-mcp-toys
git init
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/YOUR_USERNAME/pocket-joe-mcp-toys.git
git push -u origin mainDeploy to Railway
Go to Railway Dashboard
Click "New Project" → "Deploy from GitHub repo"
Select
pocket-joe-mcp-toysRailway auto-detects Python and deploys
Wait for deployment (takes ~2-3 minutes)
Get your endpoint
Click on your deployment
Copy the public URL:
https://your-app.railway.app
Use in Claude Desktop
Add to your Claude Desktop config at ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"youtube": {
"url": "https://your-app.railway.app/mcp"
}
}
}Restart Claude Desktop and you'll see the YouTube transcription tool available.
Local Development
Setup with uv
# Install uv if you haven't
curl -LsSf https://astral.sh/uv/install.sh | sh
# Clone and setup
git clone https://github.com/YOUR_USERNAME/pocket-joe-mcp-toys.git
cd pocket-joe-mcp-toys
uv sync
# Run locally
uv run python main.pyServer runs at http://localhost:8000/mcp
Test locally with Claude Desktop
Use http://localhost:8000/mcp in your config during development.
Architecture
This uses pocket-joe's policy system:
Policy:
TranscribeYouTubePolicy- handles video transcriptionAppContext: Manages policy instances and bindings
FastMCP: Wraps policies as MCP tools with
@mcp.tool()decoratorTransport: Streamable HTTP for Railway
Deployment: Stateless (scales horizontally)
Railway Configuration
Runtime: Python 3.12
Package Manager: uv (auto-detected via
pyproject.toml)Entry Point:
python main.pyPort: Auto-assigned via
$PORTenv var
Cost
Railway Hobby plan:
$5/month credit
Enough for ~500k requests/month
Auto-sleep after inactivity
Custom domains included
Adding More Tools
To add more pocket-joe policies as MCP tools:
Create your policy class in
main.pyAdd to
AppContextwithself._bind(YourPolicy)Create a FastMCP tool with
@mcp.tool()that calls your policyPush to GitHub (Railway auto-deploys)
License
MIT