YouTube Data MCP Server
by diasm3
A Model Context Protocol (MCP) server for extracting YouTube video transcripts and comments. This server provides tools to get transcripts and comments from YouTube videos for analysis and summarization.
Last updated: N/A
YouTube Data MCP Server
A Model Context Protocol (MCP) server for extracting YouTube video transcripts and comments. This server provides tools to get transcripts and comments from YouTube videos for analysis and summarization.
Features
getTranscript: Extract subtitles/transcripts from YouTube videosgetVideoInfo: Get basic information about a YouTube videogetReplies: Fetch comments for YouTube videos (using SerpAPI)getCommentReplies: Get replies to specific YouTube comments
Requirements
- Node.js 16+
- TypeScript
- SerpAPI API key (for comments functionality)
Installation(for Developer)
# Clone the repository
git clone https://github.com/diasm3/serpapi-youtube-mcp-server.git
cd youtube-data-mcp
# Install dependencies
npm install
Configuration
Create a .env file in the root directory with your SerpAPI key:
SERPAPI_KEY=your_serpapi_key_here
You can get a SerpAPI key by signing up at SerpAPI.
Build and Run
# Build the project
npm run build
# Run the server
npm start
The server will start running and listening for commands via stdin/stdout.
Using with Claude
To use this MCP server with Claude:
- Add the server to your Claude configuration file:
{
"mcpServers": {
"youtube-data": {
"command": "npx",
"args": ["-y","youtube-data-mcp"],
"env": {
"SERPAPI_KEY": "your_serpapi_key_here"
}
}
}
}
-
Restart Claude to apply the configuration.
-
Now you can ask Claude to:
- "Get the transcript for this YouTube video: [URL]"
- "Show me the comments for this YouTube video: [URL]"
- "Get replies to specific comments"
API Tools
searchYoutube
Search for videos, channels, and playlists on YouTube.
Parameters:
query: Search query for YouTube (required)limit: Maximum number of results to return (optional, default: 10)gl: Country code for search results (optional, e.g., 'us', 'kr', 'jp')hl: Language code for search results (optional, e.g., 'en', 'ko', 'ja')sp: Special parameter for filtering or pagination (optional)pageToken: Token for pagination from previous response (optional)
Example (via Claude):
Search for "JavaScript tutorial" on YouTube and show me the top 5 results
getVideoInfo
Retrieve basic information about a YouTube video.
Parameters:
url: YouTube video URL or video ID (required)
Returns:
videoId: The video's IDtitle: The video's titleviewCount: Number of viewspublishDate: Date when the video was publishedchannelName: Name of the channel that published the videocommentCount: Number of comments on the videocommentsNextPageToken: Token for fetching commentscommentsSortingTokens: Tokens for different comment sorting options
Example (via Claude):
Get information about this YouTube video: https://www.youtube.com/watch?v=dQw4w9WgXcQ
getTranscript
Extracts transcripts/subtitles from YouTube videos.
Parameters:
url: YouTube video URL or video ID (required)lang: Language code for transcript (optional, default: 'en')
Example (via Claude):
Please get the transcript for this YouTube video: https://www.youtube.com/watch?v=dQw4w9WgXcQ
getReplies
Retrieves comments from a YouTube video using SerpAPI.
Parameters:
url: YouTube video URL or video ID (required for initial page, optional for pagination)limit: Maximum number of comments to retrieve (optional, default: 100)sort: Sort order for comments ('relevance' or 'time', optional, default: 'relevance')pageToken: Token for pagination from previous response (optional)
Example (via Claude):
Show me comments for this YouTube video: https://www.youtube.com/watch?v=dQw4w9WgXcQ
getCommentReplies
Gets replies for a specific YouTube comment.
Parameters:
pageToken: Reply token from a comment to get its replies (required)
This function is typically used programmatically after getting the repliesToken from a comment.
Understanding SerpAPI Integration
This MCP server uses SerpAPI's YouTube Search API and YouTube Video API to fetch search results, comments, and other data. SerpAPI provides a way to scrape YouTube data without directly using YouTube's official API.
Key points about SerpAPI usage:
- The server uses the
youtube_videoengine with thevparameter (YouTube video ID) - Comments are paginated using tokens returned in the API response
- Comment replies are fetched separately using their specific tokens
- API calls are limited by your SerpAPI subscription plan
Troubleshooting
- If you encounter a 400 Bad Request error, verify your SerpAPI key is valid and properly set in the .env file
- Check the server logs for detailed error messages and debugging information
- For comment-related issues, ensure SerpAPI still supports the YouTube Video API format used
License
MIT