YouTube Data MCP Server
Extract YouTube video transcripts, comments, video info, and search results.
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., "@YouTube Data MCP Serverget transcript for https://youtube.com/watch?v=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.
YouTube Data MCP Server
A Model Context Protocol (MCP) server for extracting YouTube video transcripts, comments, and search results. Supports both Stdio and StreamableHTTP transports.
Features
getTranscript- Extract subtitles/transcripts with optional timestampsgetVideoInfo- Get video metadata (title, views, comments count)getComments- Fetch comments with pagination and sortinggetCommentReplies- Get replies to specific commentssearchYoutube- Search videos, channels, and playlists
Related MCP server: YouTube Transcript MCP Server
What's New in v2.0
Dual Transport: Stdio (default) + StreamableHTTP for web integration
Reliable Transcripts: Replaced
youtube-transcriptwithyoutube-caption-extractor(bot detection bypass, serverless support)Timestamp Support: Optional start time and duration for each transcript segment
Modular Architecture: Clean separation of concerns (config, types, services, tools)
MCP SDK v1.25.2: Latest SDK with improved stability
Requirements
Node.js 18+
SerpAPI key (for search, comments, video info)
Installation
git clone https://github.com/diasm3/serpapi-youtube-mcp-server.git
cd serpapi-youtube-mcp-server
npm installConfiguration
Create a .env file:
SERPAPI_KEY=your_serpapi_key_here
PORT=3000 # optional, for HTTP modeGet your SerpAPI key at serpapi.com.
Running the Server
# Build
npm run build
# Stdio mode (default) - for Claude Desktop, Cursor, etc.
npm start
# HTTP mode - for web applications
npm start -- --http
# or
MCP_TRANSPORT=http npm startHTTP Endpoints
When running in HTTP mode:
GET /health- Health checkPOST /mcp- MCP request handler
MCP Client Configuration
Claude Desktop / Cursor
{
"mcpServers": {
"youtube-data": {
"command": "node",
"args": ["/path/to/serpapi-youtube-mcp-server/build/index.js"],
"env": {
"SERPAPI_KEY": "your_serpapi_key_here"
}
}
}
}Using npx
{
"mcpServers": {
"youtube-data": {
"command": "npx",
"args": ["-y", "youtube-data-mcp"],
"env": {
"SERPAPI_KEY": "your_serpapi_key_here"
}
}
}
}API Tools
getTranscript
Extract transcript/subtitles from a YouTube video.
Parameter | Type | Required | Description |
| string | Yes | YouTube URL or video ID |
| string | No | Language code (default: 'en') |
| boolean | No | Include start/duration per segment |
Get the Korean transcript for https://youtube.com/watch?v=xxxxx with timestampsgetVideoInfo
Get video metadata using SerpAPI.
Parameter | Type | Required | Description |
| string | Yes | YouTube URL or video ID |
Returns: title, views, publish date, channel, comment count, pagination tokens
getComments
Fetch video comments with pagination.
Parameter | Type | Required | Description |
| string | Conditional | Required for first page |
| number | No | Max comments (default: 100) |
| string | No | 'relevance' or 'time' |
| string | No | For pagination |
getCommentReplies
Get replies to a specific comment.
Parameter | Type | Required | Description |
| string | Yes |
|
searchYoutube
Search YouTube for videos, channels, playlists.
Parameter | Type | Required | Description |
| string | Yes | Search query |
| number | No | Max results (default: 10) |
| string | No | Country code (us, kr, jp) |
| string | No | Language code (en, ko, ja) |
| string | No | Filter parameter |
| string | No | For pagination |
Project Structure
src/
├── index.ts # Server entry (Stdio + HTTP)
├── config/ # Environment configuration
├── types/ # Zod schemas + TypeScript types
├── services/
│ ├── serpapi.ts # SerpAPI integration
│ └── youtube.ts # Transcript extraction
├── tools/ # MCP tool definitions
└── utils/ # Helper functionsTroubleshooting
Transcript not available
Some videos don't have captions enabled
Try different language codes (en, ko, ja, etc.)
Auto-generated captions may not be available for all videos
SerpAPI errors
Verify your API key is valid
Check your SerpAPI quota/limits
Ensure the video is publicly accessible
HTTP mode not starting
Check if PORT is already in use
Verify environment variables are set
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/diasm3/serpapi-youtube-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server