yt-mcp-server
by kdr
README.md
# yt-mcp-server
MCP server with various utility functions for dealing with YouTube data. This server provides tools for working with YouTube URLs, video IDs, and thumbnails.
<img src="sample-usage.png" />
## 📖 Resources
- [Model Context Protocol](https://modelcontextprotocol.io/introduction)
## Prerequisites
- Python 3.12 or higher
- [UV](https://github.com/astral-sh/uv) package manager
## Setup
### 1. Install UV
If you haven't installed UV yet, you can install it using:
```bash
brew install uv
# alternatively curl -LsSf https://astral.sh/uv/install.sh | sh
```
### 2. Installation Methods
#### Method 1: Install from GitHub (Recommended)
This is the simplest way to install and run the server:
```bash
uvx --from git+https://github.com/kdr/yt-mcp-server.git server
```
#### Method 2: Local Development Setup
If you want to modify the code locally:
```bash
git clone https://github.com/kdr/yt-mcp-server.git
cd yt-mcp-server
uv venv
source .venv/bin/activate # On Unix/macOS
# or
.venv\Scripts\activate # On Windows
uv pip install -e .
```
### 3. Configure MCP Client
Add the following configuration to your MCP client settings:
```json
{
"mcpServers": {
"yt-mcp-server": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/kdr/yt-mcp-server.git",
"server"
]
}
}
}
```
For local development (Method 2), use this configuration instead:
```json
{
"mcpServers": {
"yt-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/yt-mcp-server/yt_mcp_server",
"run",
"main.py"
]
}
}
}
```
## Available Tools
The following tools are available to the LLM:
- `get_watch_url`: Returns the YouTube watch URL for a given video ID, optionally starting at a specific time
- Parameters:
- `video_id`: The YouTube video ID
- `start_time`: (Optional) The start time in seconds
- `get_thumbnail_url`: Returns the thumbnail URL for a given YouTube video ID
- Parameters:
- `video_id`: The YouTube video ID
- `get_normalized_url`: Normalizes various YouTube URL formats to the canonical watch URL and extracts the video ID
- Parameters:
- `url`: The YouTube URL to normalize
TDQS
A4/5.0
Scored across 3 tools
Disambiguation5/5
Each tool targets a distinct output: watch URL, thumbnail URL, and normalized URL. Inputs differ (video ID vs. URL), so there is no overlap or ambiguity.
Naming Consistency5/5
All tools follow a consistent get_ verb_noun pattern, clearly indicating the returned resource. The naming convention is uniform and predictable.
Tool Count5/5
The server is narrowly scoped to YouTube URL helpers, and 3 tools is an appropriate size for this purpose. Each tool earns its place without redundancy.
Completeness5/5
The server covers the core operations for URL generation, thumbnails, and normalization. The get_normalized_url tool effectively handles URL parsing and standardization, leaving no obvious missing functionality.
Maintenance
ActivityInactive
ResponsivenessNo issues