YouTube Insights MCP Server
by dabidstudio
README.md
# YouTube Insights MCP Server
A Model Context Protocol (MCP) server that enables insight extraction from YouTube videos, including subtitle parsing, keyword-based video discovery, and channel info retrieval.
## Features
- Extract transcripts from YouTube videos (multi-language)
- Search videos by keyword and fetch metadata (views, likes, thumbnails, etc.)
- Retrieve channel info and latest videos from any YouTube video URL
- FastMCP-based server integration for easy deployment
- MCP Tools for seamless agent workflows
### Example usecases
<details>
<summary>Finding Trending Videos and Summarizing</summary>
<img src="https://github.com/user-attachments/assets/60a97619-13cf-4aba-807e-0fad0a4f3b42" width="480"/>
</details>
<details>
<summary>Analyzing a Channel's Recent Performance</summary>
<img src="https://github.com/user-attachments/assets/4f35a716-0c92-4368-8ba5-0b564613aae0" width="480"/>
</details>
## Installation
### Installing via Smithery
To install youtubeinsights-mcp-server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@dabidstudio/youtubeinsights-mcp-server):
```bash
npx -y @smithery/cli install @dabidstudio/youtubeinsights-mcp-server --client claude
```
### Using uvx (recommended)
When using [`uvx`](https://docs.astral.sh/uv/guides/tools/), no specific installation is needed.
Add the following configuration to your MCP settings file (e.g., `claude_desktop_config.json` for Claude Desktop):
```json
{
"mcpServers": {
"youtubeinsights": {
"command": "uvx",
"args": ["youtubeinsights-mcp-server"],
"env": {
"YOUTUBE_API_KEY": "your-api-key",
}
}
}
}
```
### Development Installation
1. Clone this repository
2. Copy `.env.example` to `.env` and fill in your youtube data api credentials
```json
{
"mcpServers": {
"youtubeinsights": {
"command": "uv",
"args": [
"--directory",
"path/to/youtubeinsights-mcp-server",
"run",
"youtubeinsights-mcp-server"
],
"env": {
"YOUTUBE_API_KEY": "your-api-key",
}
}
}
}
```
## Available MCP Tools
- `get_youtube_transcript`: Extract full transcript (subtitles) from a YouTube video URL (supports `ko`, `en`)
- `search_youtube_videos`: Search for videos on YouTube by keyword and retrieve key metadata
- `get_channel_info`: Get channel metadata and recent uploads based on any YouTube video URL
## Sample MCP Tool Descriptions
```json
{
"tool": "get_youtube_transcript",
"description": "Extract subtitles from a given YouTube video URL."
}
```
```json
{
"tool": "search_youtube_videos",
"description": "Search videos by keyword and return metadata including views, likes, and thumbnails."
}
```
```json
{
"tool": "get_channel_info",
"description": "Retrieve channel info (title, subscriber count, latest uploads) based on a video URL."
}
```
## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
TDQS
B3.2/5.0
Scored across 3 tools
Disambiguation5/5
Each tool targets a distinct resource: transcript, video search, and channel info. There is no overlap in their purposes, making it clear which tool to use for a given task.
Naming Consistency5/5
All tool names follow a consistent verb_noun pattern: get_*, search_*, get_*. The pattern is predictable and clear.
Tool Count3/5
With only 3 tools, the server is minimal but might be slightly thin for a server that aims to provide YouTube insights. However, for its narrow scope (transcript, search, channel info), it is acceptable.
Completeness3/5
The server covers core YouTube operations (transcript, video search, channel info), but lacks common features like getting video details by ID, comments, or playlist retrieval. The gap is notable but not critical for basic use cases.
Maintenance
ActivityInactive
ResponsivenessNo issues