
How to add YouTube Transcript Server to Windsurf
Retrieve transcripts and subtitles from YouTube videos through a simple MCP interface. Paste the config into ~/.codeium/windsurf/mcp_config.json and restart Windsurf.
Last updated June 14, 2026 · 563★ · stdio · no auth
Windsurf config for YouTube Transcript Server
npx -y @smithery/cli install @kimtaeyoon83/mcp-server-youtube-transcript --client claude{
"mcpServers": {
"youtube-transcript-server": {
"command": "npx",
"args": [
"-y",
"@kimtaeyoon83/mcp-server-youtube-transcript"
]
}
}
}Setup steps
- 1Open Windsurf → Cascade → the hammer/MCP icon → Configure (or edit ~/.codeium/windsurf/mcp_config.json).
- 2Paste the YouTube Transcript Server config below.
- 3Fill in placeholder secrets, then save.
- 4Click Refresh in the MCP panel.
- 5YouTube Transcript Server's tools become available to Cascade.
Before you start
- Node.js 18 or higher
- npm or yarn
What YouTube Transcript Server can do in Windsurf
get_transcriptExtract transcripts from YouTube videos. Inputs: url (string, required) — YouTube video URL, Shorts URL, or video ID; lang (string, optional, default 'en') — language code (e.g. 'ko', 'en'), automatically falls back to available languages if the requested one is not found; include_timestamps (boolean, optional, default false) — include timestamps in output (e.g. '[0:05] text'); strip_ads (boolean, optional, default true) — filter out sponsorships, ads, and promotional content based on chapter markers.
Security
The server validates all input parameters, handles YouTube API errors gracefully, implements timeouts for transcript retrieval, and provides detailed error messages for troubleshooting.
YouTube Transcript Server + Windsurf FAQ
Where is the Windsurf config file?
Windsurf reads MCP servers from ~/.codeium/windsurf/mcp_config.json. Paste the YouTube Transcript Server config there under the "mcpServers" key and restart the client.
Is YouTube Transcript Server safe to use with Windsurf?
The server validates all input parameters, handles YouTube API errors gracefully, implements timeouts for transcript retrieval, and provides detailed error messages for troubleshooting.
What input formats does the server accept?
It accepts standard YouTube video URLs, YouTube Shorts URLs, and bare video IDs.
What happens if the requested language is unavailable?
The server automatically falls back to available languages if the requested language code is not found.
Does it remove ads and sponsorships?
Yes. The strip_ads option is enabled by default and filters out sponsorships, ads, and promotional content based on chapter markers. Set strip_ads to false to get the raw transcript.