Serpapi Youtube Mcp Server — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Serpapi Youtube Mcp Server (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A Model Context Protocol (MCP) server for extracting YouTube video transcripts, comments, and search results. Supports both Stdio and StreamableHTTP transports.
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 playlistsyoutube-transcript with youtube-caption-extractor (bot detection bypass, serverless support)git clone https://github.com/diasm3/serpapi-youtube-mcp-server.git
cd serpapi-youtube-mcp-server
npm installCreate a .env file:
SERPAPI_KEY=your_serpapi_key_here
PORT=3000 # optional, for HTTP modeGet your SerpAPI key at serpapi.com.
# 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 startWhen running in HTTP mode:
GET /health - Health checkPOST /mcp - MCP request handler{
"mcpServers": {
"youtube-data": {
"command": "node",
"args": ["/path/to/serpapi-youtube-mcp-server/build/index.js"],
"env": {
"SERPAPI_KEY": "your_serpapi_key_here"
}
}
}
}{
"mcpServers": {
"youtube-data": {
"command": "npx",
"args": ["-y", "youtube-data-mcp"],
"env": {
"SERPAPI_KEY": "your_serpapi_key_here"
}
}
}
}Extract transcript/subtitles from a YouTube video.
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | YouTube URL or video ID |
lang | string | No | Language code (default: 'en') |
includeTimestamps | boolean | No | Include start/duration per segment |
Get the Korean transcript for https://youtube.com/watch?v=xxxxx with timestampsGet video metadata using SerpAPI.
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | YouTube URL or video ID |
Returns: title, views, publish date, channel, comment count, pagination tokens
Fetch video comments with pagination.
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Conditional | Required for first page |
limit | number | No | Max comments (default: 100) |
sort | string | No | 'relevance' or 'time' |
pageToken | string | No | For pagination |
Get replies to a specific comment.
| Parameter | Type | Required | Description |
|---|---|---|---|
pageToken | string | Yes | repliesToken from comment |
Search YouTube for videos, channels, playlists.
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Search query |
limit | number | No | Max results (default: 10) |
gl | string | No | Country code (us, kr, jp) |
hl | string | No | Language code (en, ko, ja) |
sp | string | No | Filter parameter |
pageToken | string | No | For pagination |
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 functionsMIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.