youtube-research
Provides tools for searching videos, retrieving video metadata, fetching transcripts, getting channel information, listing channel videos, playlist contents, comments, and trending videos from YouTube.
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-researchSearch for machine learning tutorials"
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 Research MCP Server
An MCP server for YouTube integration with Claude Code — search videos, get metadata, fetch transcripts, explore channels, and more.
Tools
Tool | Description | API Quota |
| Search videos by query | 100 + 1 |
| Get video metadata by URL or ID | 1 |
| Fetch video subtitles with timestamps | 0 (no API) |
| Get channel stats (subscribers, views, etc.) | 1 |
| List recent videos from a channel | 2 |
| List videos in a playlist | 2 |
| Get top comments for a video | 1 |
| Get trending videos by country | 1 |
YouTube Data API v3 free quota: 10,000 units/day.
youtube_searchis the most expensive at ~101 units per call.
Related MCP server: YouTube MCP Server
Setup
1. Get a YouTube API Key
Go to Google Cloud Console
Create a project (or select an existing one)
Navigate to APIs & Services → Library
Find and enable YouTube Data API v3
Go to APIs & Services → Credentials
Click Create Credentials → API Key
Copy the key
2. Install Dependencies
cd /path/to/youtube_research
uv sync3. Configure Claude Code
Copy the example config and add your API key:
cp .mcp.json.example ~/.claude/.mcp.jsonEdit ~/.claude/.mcp.json — replace /path/to/youtube_research and YOUR_API_KEY_HERE with actual values.
Important:
.mcp.jsoncontains your API key — do not commit it to git.
Alternatively, place .mcp.json in the project root — the server will only be available when working from that directory.
4. Restart
Restart Claude Code — all 8 tools will become available.
Remote Access (SSE)
To use with Claude.ai web chat or other remote MCP clients, run the server in SSE mode on a VPS:
YOUTUBE_API_KEY=your_key uv run server.py --sse --host 0.0.0.0 --port 8000Options:
--sse— enable SSE transport (default is stdio)--host— bind address (default:127.0.0.1— use0.0.0.0to expose externally)--port— port number (default:8000)
The server will be available at http://your-vps:8000/sse.
Security: The SSE endpoint has no built-in authentication. For public deployment, use a reverse proxy (nginx) with token-based auth in front of it.
Usage Examples
In Claude Code:
"Find videos about Python asyncio" →
youtube_search"Show info for https://youtu.be/dQw4w9WgXcQ" →
youtube_video_info"Get subtitles for this video" →
youtube_transcript"How many subscribers does @lexfridman have?" →
youtube_channel_info"Show latest videos from @ThePrimeagen" →
youtube_channel_videos"List videos in this playlist: https://youtube.com/playlist?list=..." →
youtube_playlist"What are people saying about this video?" →
youtube_comments"What's trending in Japan?" →
youtube_trending
License
Available Tools
8 toolsyoutube_channel_infoA
Get channel metadata by URL, handle, or ID.
Returns: id, title, description, subscriber_count, view_count, video_count, published_at, thumbnail, custom_url.
| Name | Required | Description | Default |
|---|---|---|---|
| channel_url_or_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It indicates the tool returns data (read-only implied) but does not disclose potential side effects, authentication requirements, rate limits, or error handling. This is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence for the action and input, one for the return fields. No redundant information. Every word serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple single-parameter input and the presence of an output schema, the description covers the essential behavior. However, it omits details about invalid inputs or edge cases, which could be added without much overhead.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has a single parameter with no description. The description adds semantics by stating the parameter accepts a URL, handle, or ID, which clarifies valid inputs beyond the schema's type field. With 0% schema coverage, the description compensates effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves channel metadata and specifies the allowable input types (URL, handle, or ID). It lists the exact return fields, making the purpose unambiguous. The sibling tools handle videos, comments, playlists, etc., so this tool is well-differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when channel metadata is needed, but does not explicitly state when not to use or mention alternatives. The sibling tool list provides context, but the description itself lacks explicit guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_channel_videosA
List recent videos from a channel.
Accepts channel URL, @handle, or ID. Returns videos sorted by date (newest first) with metadata: id, title, description, duration, view_count, published_at.
| Name | Required | Description | Default |
|---|---|---|---|
| channel_url_or_id | Yes | ||
| max_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries burden. It states sorting and metadata fields but omits rate limits, pagination, or error conditions. Adequate but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, then input and output details. No redundant or missing words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return value details are not needed. Covers input types and output fields, but pagination and limits are missing. Reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 0% requires description to compensate. It explains channel_url_or_id accepts URL/@handle/ID. But max_results is only implied by default; no range or behavior explained. Partial compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists recent videos from a channel, distinguishing it from siblings like youtube_video_info and youtube_channel_info. Input types are specified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like youtube_search. No exclusions or context provided beyond input format.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_commentsB
Get top-level comments for a YouTube video.
Returns comments sorted by relevance with: author, text, likes, published_at.
| Name | Required | Description | Default |
|---|---|---|---|
| video_url_or_id | Yes | ||
| max_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. States it returns top-level comments sorted by relevance but lacks details on pagination, rate limits, authentication, or accepted input formats (URL vs ID). Provides some but not comprehensive behavioral info.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action ('Get top-level comments'), no wasted words. Efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists, return values are covered, but description lacks parameter details and usage guidelines. For a simple tool with no annotations, it leaves significant gaps in understanding how to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and description does not explain parameters at all. No information on what video_url_or_id accepts (URL vs ID) or max_results limits/behavior. Completely fails to add semantic meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it gets top-level comments for a YouTube video and lists returned fields (author, text, likes, published_at). Distinguishes from siblings like youtube_transcript and youtube_video_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for retrieving comments but does not explicitly state when to use this tool vs alternatives or when not to use it. No exclusions or contextual guidance provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_playlistC
List videos in a YouTube playlist.
Accepts a playlist URL or ID. Returns videos with metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| playlist_url_or_id | Yes | ||
| max_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions returning videos with metadata but does not disclose ordering, pagination, error handling, or restrictions like private playlists. Basic purpose only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two clear sentences with no fluff. First sentence states core function, second adds input and return info. Front-loaded and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values are covered. However, no annotations and lack of usage guidelines make it incomplete. For a simple tool it's adequate but could mention ordering or pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description explains playlist_url_or_id (accepts URL or ID) but does not mention max_results or clarify format details. Adds minimal value beyond schema names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists videos in a YouTube playlist, using specific verb+resource. It distinguishes from sibling tools like youtube_channel_videos and youtube_video_info, though without explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like youtube_channel_videos or youtube_search. The description only states what it does, not the contexts or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_searchA
Search YouTube videos by query.
Returns a list of videos with metadata: id, title, description, duration, view_count, published_at, channel.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| max_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the return fields (id, title, etc.), which gives insight into the output. However, it does not mention any side effects, rate limits, authentication requirements, or that it is a read-only operation. The transparency is adequate but not extensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first clearly states the purpose, and the second lists return metadata. It is front-loaded, concise, and every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple with two parameters and an output schema. The description covers the purpose and return fields sufficiently. However, it lacks guidance on when to use this tool over siblings and parameter details, but overall it is fairly complete given the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It only implicitly describes the 'query' parameter by stating 'Search YouTube videos by query', but does not explain 'max_results' or its default. This adds minimal value beyond the schema itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Search' and the resource 'YouTube videos by query', which is specific and distinct from sibling tools like youtube_channel_info or youtube_channel_videos. The purpose is immediately understandable and not a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for searching videos by query, but does not provide explicit when-to-use or when-not-to-use guidance compared to alternatives like youtube_trending or youtube_video_info. The usage context is implied but could be clearer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_transcriptB
Get subtitles/transcript for a YouTube video.
Accepts a video URL or ID. Returns timestamped text. Looks for Russian subtitles first, then English by default.
| Name | Required | Description | Default |
|---|---|---|---|
| video_url_or_id | Yes | ||
| lang | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions language fallback and timestamped output, but lacks information on error handling, rate limits, authentication, or limitations on available transcripts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences; the purpose is front-loaded, followed by input and behavior. No superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 2 parameters and an output schema, the description is adequate but missing guidance on error scenarios and assumptions (e.g., subtitles must exist). It covers the core functionality but not edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description only partially compensates: it mentions 'video URL or ID' for the required parameter and hints at 'lang' through language preferences, but does not explain the array type or null default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get subtitles/transcript for a YouTube video,' using a specific verb and resource. It distinguishes from sibling tools like youtube_channel_info and youtube_video_info by focusing solely on transcript retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains input format ('Accepts a video URL or ID') and default language behavior, but does not explicitly state when to use this tool versus alternatives or address prerequisites (e.g., video must have subtitles enabled).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_trendingA
Get trending/most popular videos for a region.
region_code: ISO 3166-1 alpha-2 country code (e.g. US, RU, GB, DE, JP). Returns videos with metadata sorted by popularity.
| Name | Required | Description | Default |
|---|---|---|---|
| region_code | No | US | |
| max_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states the tool returns 'videos with metadata sorted by popularity,' but lacks details on rate limits, pagination, or potential errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences. The purpose is front-loaded, but it could benefit from a clearer separation of parameter details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of schema descriptions and the presence of an output schema, the description partially compensates by explaining region_code. However, it omits details about max_results and does not address error handling or common use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description explains region_code (ISO 3166-1 alpha-2) but does not document max_results beyond its default value. This provides partial meaning over the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves 'trending/most popular videos for a region.' This distinguishes it from sibling tools like youtube_search (search-based) and youtube_channel_videos (channel-specific).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for getting trending videos but does not specify when to use it versus alternatives (e.g., youtube_search for custom queries). No exclusions or best practices are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_video_infoA
Get video metadata by URL or ID.
Returns: id, title, description, duration, view_count, published_at, channel. Direct lookup by video ID — no search required.
| Name | Required | Description | Default |
|---|---|---|---|
| video_url_or_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Lists return fields and describes direct lookup behavior. No annotations provided, but description lacks details on error handling, rate limits, or authentication needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-loaded with purpose, followed by return fields and behavior. No redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers basic usage and return fields, but lacks error scenarios. Given the tool's simplicity and existence of output schema, completeness is adequate but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds value beyond the schema by clarifying the parameter accepts either a URL or an ID, which is not obvious from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it gets video metadata by URL or ID. Distinguishes from search tool by specifying 'direct lookup' and 'no search required'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: use when you have a specific video URL or ID. Implicitly contrasts with youtube_search, but doesn't mention other siblings like youtube_channel_info.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct YouTube resource or action: channel metadata, channel videos, video comments, playlist contents, search, transcript, trending, and video info. No semantic overlap.
All tools share the 'youtube_' prefix and use descriptive noun phrases (e.g., channel_info, transcript). Minor inconsistency: 'youtube_comments' could be more specific like 'youtube_video_comments', but overall pattern is clear.
8 tools is well-scoped for a YouTube research server. Each tool serves a clear purpose without unnecessary bloat, covering the main read-only operations needed for research.
The set covers the essential read-only operations for YouTube research: channels, videos, search, playlists, comments, transcripts, and trending. Missing operations like channel search or video statistics are minor gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
YouTube transcripts, search, channels, playlists and bulk transcript jobs for AI agents. 14 tools.
YouTube transcripts, search, channel/playlist listings and upload tracking for AI agents. No signup.
AI YouTube analyst in Claude for creators: audit, fix, decide what to make next, grow subs.
YouTube video search with transcript extraction as first-class output.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI language models to interact with YouTube content through a standardized interface, providing tools for retrieving video information, transcripts, channel analytics, and trend analysis.51965MIT
- FlicenseBqualityDmaintenanceEnables interaction with YouTube through search and transcript extraction functionality. Allows searching for videos and retrieving full transcripts with timestamps for content analysis.27
- AlicenseNot gradedqualityDmaintenanceEnables Claude to access and manage YouTube channel data through the YouTube Data API v3 and YouTube Analytics API. Provides tools for reading analytics, fetching video metadata, searching uploads, and updating video SEO directly from Claude.91MIT
- FlicenseAqualityDmaintenanceIntegrates YouTube with Claude Code, enabling video transcript retrieval, search, metadata extraction, channel info, playlists, comments, trending videos, engagement analytics, chapter extraction, SponsorBlock integration, and most-replayed heatmaps.15578
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/plaguedoctor39/youtube-research'
If you have feedback or need assistance with the MCP directory API, please join our Discord server