YouTube MCP Server
A Model Context Protocol (MCP) server for YouTube videos with caption extraction and markdown conversion capabilities
Overview
YouTube MCP Server is a Model Context Protocol (MCP) server designed for interacting with YouTube videos, enabling users to extract video metadata and captions, and convert them into markdown format.
To use the YouTube MCP Server, clone the repository, install the dependencies, configure your YouTube credentials, and run the server to access its tools for video information and caption extraction.
- Fetch comprehensive video metadata - Extract auto-generated and manual captions - Support for multiple languages (English and French) - Three built-in markdown templates for different use cases - Search functionality within video captions - Flexible authentication options (API key and OAuth2)
- Extracting captions from YouTube videos for transcription purposes.
- Converting video metadata into markdown for documentation.
- Searching for specific terms within video captions for content analysis.
Add to your AI client
Use these steps to connect YouTube MCP Server in Cursor, Claude, VS Code, and other MCP-compatible apps. The same JSON appears in the Use with menu above for one-click copy.
Cursor
Add this to your .cursor/mcp.json file in your project root, then restart Cursor.
.cursor/mcp.json
{
"mcpServers": {
"youtube-mcp-nattyraz": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-youtube-mcp-nattyraz"
]
}
}
}Claude Desktop
Add this server entry to the mcpServers object in your Claude Desktop config, then restart the app.
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
{
"mcpServers": {
"youtube-mcp-nattyraz": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-youtube-mcp-nattyraz"
]
}
}
}Claude Code
Add this to your project's .mcp.json file. Claude Code will detect it automatically.
.mcp.json (project root)
{
"mcpServers": {
"youtube-mcp-nattyraz": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-youtube-mcp-nattyraz"
]
}
}
}VS Code (Copilot)
Add this to your .vscode/mcp.json file. Requires the GitHub Copilot extension with MCP support enabled.
.vscode/mcp.json
{
"servers": {
"youtube-mcp-nattyraz": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-youtube-mcp-nattyraz"
]
}
}
}Windsurf
Add this to your Windsurf MCP config file, then restart Windsurf.
~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"youtube-mcp-nattyraz": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-youtube-mcp-nattyraz"
]
}
}
}Cline
Open Cline settings, navigate to MCP Servers, and add this server configuration.
Cline MCP Settings (via UI)
{
"mcpServers": {
"youtube-mcp-nattyraz": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-youtube-mcp-nattyraz"
]
}
}
}FAQ
What programming language is YouTube MCP Server built with?
The server is built using TypeScript.
Do I need a YouTube Data API key to use this server?
Yes, a YouTube Data API key is required for accessing video data.
Can I customize the markdown templates?
Yes, you can add custom templates by modifying the `DEFAULT_TEMPLATES` array in the source code.7:["$","div",null,{"className":"container mx-auto flex flex-col gap-4","children":["$L26","$L27",["$","$L28",null,{"currentProject":{"id":3317,"uuid":"2f7f4fd7-ac6a-4ed6-8508-cb32abbad2dc","name":"youtube-mcp","title":"YouTube MCP Server","description":"A Model Context Protocol (MCP) server for YouTube videos with caption extraction and markdown conversion capabilities","avatar_url":"https://avatars.githubusercontent.com/u/15168543?v=4","created_at":"$D2025-03-18T18:41:31.072Z","updated_at":"$D2025-03-18T18:48:59.390Z","status":"created","author_name":"nattyraz","author_avatar_url":"https://avatars.githubusercontent.com/u/15168543?v=4","tags":"youtube-mcp,caption-extraction,markdown-conversion","category":"developer-tools","is_featured":false,"sort":1,"url":"https://github.com/nattyraz/youtube-mcp","target":"_self","content":"$29","summary":"$2a","img_url":null,"type":null,"metadata":"{\"star\":\"0\",\"license\":\"\",\"language\":\"TypeScript\",\"is_official\":false,\"latest_commit_time\":\"2025-03-18 18:05:56\"}","user_uuid":null,"tools":null,"sse_url":null,"sse_provider":null,"sse_params":null,"is_official":false,"server_command":null,"server_params":null,"server_config":null,"allow_call":false,"is_innovation":false,"is_dxt":false,"dxt_manifest":null,"dxt_file_url":null,"is_audit":false},"randomProjects":[],"currentServerKey":"$undefined"}]]}]