Tubask
Provides tools for searching YouTube, summarizing videos, and retrieving transcripts with timestamps and quotes.
Tubask is a hosted remote MCP server that lets your AI assistant search YouTube, summarize videos, and pull timestamped quotes — from inside Claude or Cursor, in one message. No local Python. No 15-tool chains. Three tools, smart routing, OAuth, and a hosted trial (25 searches + 3 summaries) — then upgrade to Pro (no Google key) or stay on Free with your own key.
Without Tubask | With Tubask |
Paste a link → “I can't access YouTube” | Paste a link → summary, chapters, quotes |
Open 5 tabs to research a topic | Ranked results in chat |
Chain search → transcript → summarize | One |
MCP endpoint
https://tubask.app/mcpTransport: Streamable HTTP · Auth: OAuth 2.0 (browser signup on first tool call) · Read-only tools
Related MCP server: YouTube MCP Server
Quick start
npx @tubask/mcpInteractive setup: pick your client, write config, optionally install the Cursor skill.
No args needed.
npx @tubask/mcp init # non-interactive config write
npx @tubask/mcp skill install # Cursor routing skill
npx @tubask/mcp status # check existing setupThen Settings → Tools & MCP → Connect in Cursor and complete OAuth on first use.
Create a free account at tubask.app/signup (no credit card).
Add the MCP server to your client (
npxabove, or snippets below).Send any YouTube URL in chat — e.g. “Summarize this talk and list the main argument.”
On first use, complete OAuth in your browser.
(Optional) Add your free YouTube Data API key in the Tubask dashboard after the hosted trial.
npx CLI
Command | What it does |
| Interactive onboarding (recommended) |
| Write |
| Write |
| Write |
| Copy |
| Check if Tubask is already configured |
| Preview config without writing files |
The server runs at https://tubask.app/mcp — the CLI only writes client config.
Cursor
Add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"tubask": {
"url": "https://tubask.app/mcp"
}
}
}Then Settings → Tools & MCP → Connect and authorize.
Claude Code
claude mcp add --transport http tubask https://tubask.app/mcpOr add to .mcp.json:
{
"mcpServers": {
"tubask": {
"type": "http",
"url": "https://tubask.app/mcp"
}
}
}Claude Desktop / Claude.ai
Settings → Connectors → Add custom connector → paste:
https://tubask.app/mcpChatGPT
Settings → Apps & Connectors → Create app → paste the same URL.
Smithery
smithery mcp add https://tubask.app/mcpNo extra config — OAuth and API keys are handled in your Tubask account after connect.
Other clients
Any MCP host with remote HTTP support: paste https://tubask.app/mcp and sign in on first tool call.
Client-specific notes: tubask.app/docs/connect
Tools
Tool | Use when |
| Paste anything — URL, |
| Understand one video — summary, |
| Exact words — keyword search, time slices, pagination. |
Every response includes next_steps[] so the model doesn't guess the next tool.
Example prompts
Summarize this and give me 3 quotable lines with timestamps:
https://youtube.com/watch?v=...
What's @Fireship published about AI agents in the last month? Skip shorts.
Find every time they say "product-market fit" and give timestamps:
https://youtu.be/VIDEO_IDMore: tubask.app/docs/examples
Why three tools?
Most YouTube MCP servers expose 10–20 granular tools. Models chain search → get_video → get_transcript → summarize, burning tokens, latency, and YouTube API quota.
Tubask collapses the surface:
Paste anything → youtube_query (intent=auto)
One video → summarize_video
Exact words → get_transcriptCreator advice across multiple videos → youtube_query(goal=advice) in one call (up to 8 recent long-form uploads).
Pricing
Plan | Price | Includes |
Trial | Free | 25 searches + 3 summaries · hosted · no API key |
Free | $0 | 100 credits/mo (~12 summaries or ~100 searches) · your Google API key |
Pro | $8/mo | 800 credits/mo (~100 summaries) · hosted · 3 MCP clients |
Plus | $19/mo | 2,500 credits/mo (~312 summaries) · hosted · unlimited clients |
Credits: 1 search = 1 credit · 1 summary/transcript = 8 credits · metadata-only summary = 1 credit · advice = 1 + 8×transcript-covered videos. Hard stop at zero.
Details: tubask.app/docs/quota
Security
OAuth 2.0 for every MCP connection
Your YouTube API key encrypted at rest (Fernet)
Argon2id password hashing
Read-only tools — no writes to your YouTube account
tubask.app/docs/security · SECURITY.md
Comparison
Tubask | Local | |
Install | Paste URL | Python/uv, local deps |
Summaries | Built-in (chapters, quotes) | Often transcript-only |
Channel / search / advice |
| Varies; often many tools |
Auth | OAuth + dashboard | Usually none |
API key | Your key in Tubask dashboard | Optional / none |
Discovery metadata
MCP scanners that cannot authenticate may read server-card.json or the live endpoint at tubask.app/.well-known/mcp/server-card.json.
Support
GitHub Issues — bugs, feature requests, and public discussion
License
This repository contains documentation and discovery metadata for the Tubask hosted service. The Tubask service software is proprietary. See LICENSE.
Available Tools
3 toolsget_transcriptA
Fetch YouTube captions for one video: full text, keyword search, time range, or paginated segments. Returns JSON with segments[] (display_timestamp, end_seconds), match_count when searching, language metadata, and next_steps[]. Structured overview of a video uses summarize_video.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max caption segments per page (hard cap 500). | |
| format | No | plain = joined text; timestamped = segments[] with display_timestamp for citations. | plain |
| offset | No | Skip N segments after filters (pagination). Use next_offset from prior response. | |
| languages | No | Preferred caption language codes. Response includes language and language_fallback. | |
| video_ref | Yes | YouTube watch URL, youtu.be link, or 11-character video ID. | |
| end_seconds | No | Only segments overlapping this end time (seconds). | |
| start_seconds | No | Only segments overlapping this start time (seconds). Includes boundary overlap. | |
| search_in_transcript | No | Case-insensitive keyword — returns only matching segments and match_count. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for disclosing behavior. It meaningfully describes the output structure (segments[], display_timestamp, end_seconds, match_count, language metadata, next_steps[]), which goes beyond the input schema and gives the agent a clear picture of what to expect. It stops short of documenting potential edge cases (e.g., no captions available, rate limits), but for a read-only fetch tool, the transparency is reasonably strong.
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 exactly two sentences: the first states the core purpose and capabilities, the second outlines the JSON return structure. Every sentence earns its place, the most critical information is front-loaded, and there is no redundancy or filler. It is ideal in size and structure.
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?
For a tool with 8 parameters and no output schema, the description does a solid job of conveying the essential context: what the tool does, the modes of operation, the key returned fields, and the alternative for structured overviews. It is not exhaustive—for instance, it doesn't demonstrate how parameters combine—but it is sufficient for an agent to correctly select and invoke the tool for typical 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 100%, so the baseline is 3. The description adds light narrative context by summarizing modes ('full text, keyword search, time range, or paginated segments'), but each parameter is already thoroughly explained in the schema. The description does not add significant meaning beyond what the schema already provides, so no higher score is warranted.
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's function: 'Fetch YouTube captions for one video' with specific modes (full text, keyword search, time range, paginated segments). It distinguishes from the sibling summarize_video by explicitly directing structured overviews there, making the tool's specific purpose unambiguous.
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 provides clear usage context by enumerating the types of transcript tasks it supports and explicitly notes that 'Structured overview of a video uses summarize_video,' which serves as a when-not/alternative directive. This is sufficient guidance for an agent to decide between get_transcript and summarize_video, and implicitly differentiates from youtube_query by focusing on caption retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
summarize_videoA
Summarize one YouTube video from captions and metadata. Returns JSON with summary, key_points[], chapters[], quotes[] (timestamped), coverage{} (transcript sampling), and next_steps[]. Requires captions (auto-generated counts). Multi-video creator synthesis uses youtube_query with goal=advice.
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | brief = concise takeaways; detailed = longer outline, more quotes and chapter detail. | brief |
| languages | No | Preferred caption language codes (en, fr, …). Falls back with language_fallback flagged. | |
| video_ref | Yes | YouTube watch URL, youtu.be link, or 11-character video ID. | |
| include_timestamps | No | Include start/timestamp on quotes and optional transcript_segments[]. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description itself discloses the JSON output structure, the dependency on captions (including auto-generated), and transcript sampling via coverage{}. It stops short of explaining failure modes when captions are unavailable, so not a full 5.
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?
Four sentences, each purpose-driven: statement of function, output shape, prerequisite, and when to use an alternative. No 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 description covers function, output, prerequisite, and sibling differentiation. For a tool without an output schema, the return-field list adds necessary context, making it self-sufficient.
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 100% with meaningful parameter descriptions, so the description doesn't need to add param details. It does tie the tool's operation to captions, which is broader context rather than per-param semantics.
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 opens with a specific verb-resource pairing ('Summarize one YouTube video') and explicitly distinguishes itself from youtube_query for multi-video synthesis. Listing the return fields further clarifies the tool's scope.
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?
It explicitly states a prerequisite (captions required) and an alternative use case (multi-video synthesis → youtube_query with goal=advice), giving agents clear decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_queryA
Query YouTube: search videos/channels/playlists, channel profiles, latest uploads, playlist items, video comments, topic research with stats, or multi-video creator advice. Returns JSON including intent, result items, optional advice{} for goal=advice, next_steps[], and quota_cost. Single-video summaries and verbatim caption lookup use summarize_video and get_transcript.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | Universal paste target: watch URL, youtu.be link, @handle, channel URL, playlist URL/ID, or plain search text. With intent=auto, Tubask picks the mode. | |
| goal | No | Shortcut for common jobs: advice (creator themes), latest (uploads), research (topic + stats), comments, playlist, info (one video), search (lightweight). Prefer over intent when unsure. | auto |
| depth | No | Detail for goal=advice and per-video analysis: brief ≈ 5 takeaways; detailed ≈ 12 takeaways and longer quotes. | brief |
| order | No | Sort order for search/research. date = newest first; viewCount = most viewed; relevance = default keyword ranking. | relevance |
| query | No | Search keywords for goal=research or goal=search (e.g. 'MCP server tutorial'). | |
| intent | No | Explicit routing mode when goal is insufficient. Most callers use goal or ref alone. | auto |
| video_ref | No | 11-char video ID or watch URL — for goal=comments or goal=info. | |
| channel_id | No | Optional UC... channel ID to scope search/research to one channel. | |
| page_token | No | Opaque token from next_page_token in a prior response — next page of same query. | |
| channel_ref | No | YouTube @handle or channel URL — for goal=advice, goal=latest, or channel_info. | |
| max_results | No | Cap on videos, comments, or search hits returned (1–50). goal=advice analyzes up to 8. | |
| result_type | No | Search target type for goal=search. | video |
| playlist_ref | No | Playlist URL or PL... ID — for goal=playlist. | |
| topic_filter | No | For goal=advice: topic to find across a creator's catalog (e.g. 'pricing', 'kubernetes'). Searches the channel, not just recent titles. | |
| comment_order | No | Comment sort: relevance (top/liked) or time (newest first). | relevance |
| include_stats | No | When true, enriches video search/research with views, duration, URL, and is_short. Adds a small YouTube API quota cost on top of search. | |
| exclude_shorts | No | When true, filters YouTube Shorts and uploads under ~3 min from latest/advice/research videos. Set false for Shorts-first or short-form research. | |
| include_replies | No | Include reply threads on comments (up to 5 per thread). false reduces payload size. | |
| published_after | No | ISO 8601 UTC datetime (2025-01-01T00:00:00Z) — limit research/search to newer uploads. | |
| include_full_description | No | Return full video/channel description instead of a 280-char excerpt. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the return structure ('JSON including intent, result items, optional advice{}... next_steps[], and quota_cost') and mentions quota cost, which is a useful behavioral trait. It could go further by noting rate limits or error behavior, but the current disclosure is solid for a read-only query tool.
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 and front-loaded with 'Query YouTube.' The first sentence is a comprehensive list of capabilities; the second covers return format and sibling delegation. It is slightly list-heavy but each item earns its place, and it avoids unnecessary repetition of schema 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?
For a complex 20-parameter tool with no output schema, the description provides a strong high-level overview of all capabilities, output fields (intent, result items, advice, next_steps, quota_cost), and sibling alternatives. It does not explain every scenario, but combined with the fully documented schema, it is sufficiently complete for an agent to invoke 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?
The input schema provides 100% description coverage of all 20 parameters, including enums and defaults, so the baseline is 3. The description adds minimal parameter-specific context beyond mentioning goal=advice and advice{} in the return. It does not enrich parameter meanings further, so a 3 is appropriate.
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 uses a specific verb ('Query') and enumerates distinct resource types and operations: search videos/channels/playlists, channel profiles, latest uploads, playlist items, video comments, topic research, and creator advice. It clearly distinguishes from siblings summarize_video and get_transcript by delegating single-video summaries and caption lookup to those tools.
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 explicitly names alternatives: 'Single-video summaries and verbatim caption lookup use summarize_video and get_transcript.' It also outlines the main modes via goal examples (advice, latest, research, comments, playlist, info, search) and states the return format, giving the agent enough context to choose this tool for broad YouTube queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v0.6.4- First observed
get_transcript - First observed
summarize_video - First observed
youtube_query
TDQS
Scored across 3 tools
Each tool serves a clearly distinct purpose: youtube_query handles searching and channel/playlist/comment queries, summarize_video produces summaries from captions, and get_transcript returns raw caption text. There is no overlap in core functionality, and the descriptions explicitly cross-reference each other to clarify boundaries.
The tools all use lowercase snake_case but do not follow a uniform verb_noun pattern. 'summarize_video' and 'get_transcript' start with verbs, while 'youtube_query' starts with a noun, creating a slight inconsistency. However, the naming style is still predictable and readable.
With exactly three tools, the server is well-scoped and each tool is substantial. The count is within the ideal 3-15 range and covers the primary YouTube interaction modes without unnecessary bloat.
The server covers a broad range of YouTube data: searching, channel profiles, playlist items, comments, summaries, and transcripts. Minor gaps exist, such as no direct video metadata endpoint without a summary, but the existing tools work together to cover most reasonable use cases.
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, channel/playlist listings and upload tracking for AI agents. No signup.
Personal YouTube AI knowledge base powered by RAG. Query your subscribed YouTube channels.
💯 The fastest YouTube transcript + YouTube search MCP for AI agents. Try for free.
YouTube public video, comment, reply, channel, search, and speech-to-text transcript tools.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenancehuuh.me is AI-native Youtube - dead easy AI for people with stuff to do - collaborative AI projects for teams - public AI-native knowledge sharing - monetization of AI-native content streams-
- FlicenseNot gradedqualityDmaintenanceProvides distraction-free access to YouTube by allowing AI assistants to retrieve subscribed channels, latest videos, and transcripts without algorithmic recommendations. It enables searching within subscriptions and direct reading of video content through simple browser cookie authentication.-
- AlicenseAqualityAmaintenanceConnect AI assistants to YouTube: search, transcripts, metadata, and more.19766MIT
- AlicenseAqualityDmaintenanceEnables AI tools to access YouTube content, including transcript extraction, video/channel info, and search.412MIT
Appeared in Searches
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/Amorizz/tubask-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server