yt-summarizer
Click on "Deploy 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., "@yt-summarizerSummarize this video and save it to Notion: https://www.youtube.com/watch?v=dQw4w9WgXcQ"
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.
yt-summarizer
An MCP (Model Context Protocol) server that lets Claude Desktop watch YouTube videos and take notes for you — it fetches a video's transcript and saves a summary as a new page in Notion.
Based on this Enkrypt AI writeup.
How it works
You give Claude Desktop a YouTube URL and ask for a summary.
Claude calls the
get_transcripttool, which fetches the video's transcript.Claude summarizes the transcript itself.
Claude calls the
create_notion_pagetool with a structured page payload.The server creates the page in your Notion workspace and returns its URL.
Related MCP server: scribefy-mcp
Prerequisites
uv (Python package/project manager)
A Notion account and workspace
1. Set up a Notion integration
Go to https://www.notion.so/profile/integrations and create a new internal integration. Name it (e.g. "YT Summarizer") and pick your workspace.
Copy the Internal Integration Secret — this is your
NOTION_TOKEN.In Notion, create (or pick) a page that will act as the parent page for generated summaries.
Open that page, click Connections (or
•••→ Connect to), and connect your new integration so it has access.Copy the page ID from the page URL — it's the 32-character hex string at the end (dashes optional):
https://www.notion.so/My-Page-1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d→1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6dis yourPARENT_PAGE_ID.
2. Configure environment variables
cp .env.example .envEdit .env and fill in the two values from step 1:
NOTION_TOKEN=YOUR_NOTION_INTEGRATION_SECRET
PARENT_PAGE_ID=YOUR_NOTION_PARENT_PAGE_ID3. Install dependencies
uv sync4. Register the server with Claude Desktop
Add an entry to your Claude Desktop config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"Youtube Summarizer": {
"command": "uv",
"args": [
"--directory",
"FULL/PATH/TO/yt-summarizer",
"run",
"server.py"
]
}
}
}Replace the path with the absolute path to this project directory, then restart Claude Desktop. A hammer/tools icon should appear in the chat input, confirming the server connected.
5. Use it
In Claude Desktop, paste a YouTube URL and ask for a summary saved to Notion, e.g.:
Summarize this video and save it to Notion: https://www.youtube.com/watch?v=dQw4w9WgXcQ
Claude will fetch the transcript, write a summary, create the Notion page, and give you the link.
Tools exposed by this server
Tool | Description |
| Fetches a YouTube video's transcript. Accepts a raw video ID or a full URL (watch/youtu.be/shorts/embed/live). |
| Creates a page under |
Ideas for extending this
Add timestamp markers linking back to key moments in the video
Auto-categorize videos by topic/content type
Generate actionable to-do lists from educational content
Support non-English transcripts / auto-translation
Available Tools
2 toolscreate_notion_pageA
Create a new Notion page under the configured parent page.
Args: notion_page_content: A Notion "create page" API payload (properties + children blocks). The parent page ID is injected automatically from PARENT_PAGE_ID.
| Name | Required | Description | Default |
|---|---|---|---|
| notion_page_content | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of transparency. It discloses a useful behavior: 'The parent page ID is injected automatically from PARENT_PAGE_ID.' However, it does not mention permissions, error conditions, or the fact that it is a write operation beyond the name itself, leaving some gaps.
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 tightly written with a single opening sentence and an 'Args' section. It avoids redundancy and front-loads the core function, making it easy to scan and understand.
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 one parameter and an output schema, the description covers essential details: the payload type, the automatic parent injection, and the overall purpose. It lacks explicit usage guidance, but the simplicity of the tool and presence of an output schema make this less critical.
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 provides no description for the parameter, and schema coverage is 0%. The description compensates by explaining that 'notion_page_content' is a Notion 'create page' API payload with 'properties + children blocks' and that the parent ID is auto-injected. This adds meaning beyond the bare schema definition.
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: 'Create a new Notion page under the configured parent page.' It uses a specific verb and resource, and the sibling tool 'get_transcript' contrasts as a read operation, making the purpose distinct.
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 by stating the action, but it does not explicitly say when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. The parent page injection is noted, but there is no directive like 'use this when you need to add a page.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transcriptA
Fetch the transcript of a YouTube video.
Args: video_id: A YouTube video ID or full video URL (watch, youtu.be, shorts, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| video_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for disclosing behavior. It does not mention what the transcript contains (e.g., auto-generated vs manual), whether authentication is required, any rate limits, or what happens if the video ID is invalid. The description adds no behavioral context beyond the basic action.
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, with two short sentences that deliver the core purpose and parameter details without filler. It is front-loaded with the main action.
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 tool's simplicity (one parameter, output schema exists), the description covers the essential info about accepted input formats. However, it lacks guidance on when to use the tool and does not describe the transcript output structure or any error cases, leaving some gaps for a production tool.
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 provides only 'video_id' as a string, but the description adds crucial clarity by specifying accepted formats: 'A YouTube video ID or full video URL (watch, youtu.be, shorts, etc.)'. This directly compensates for the 0% schema description coverage.
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 'Fetch the transcript of a YouTube video', using a specific verb and resource. It is easily distinguished from the sibling tool create_notion_page, which serves a completely different purpose.
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 is provided on when to use this tool vs alternatives. There are no mentions of prerequisites, limitations, or scenarios where another tool might be preferred. The description only gives argument instructions.
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.
2 tool updates
v0.1.0- First observed
create_notion_page - First observed
get_transcript
TDQS
Scored across 2 tools
The two tools are completely distinct: one fetches a transcript and the other creates a Notion page. There is no overlap or chance of misselection.
Both tools follow a clear verb_noun naming pattern: get_transcript and create_notion_page. The style is consistent and predictable.
With only two tools, the server feels minimal for its stated purpose as a summarizer. Two is borderline, not excessive, but the scope suggests more tools would be expected.
The server name implies summarization, but no summarization tool exists. It only retrieves transcripts and creates Notion pages, leaving the core summarization functionality completely absent.
Maintenance
Related MCP Connectors
MCP server for RiverScript, an AI transcription platform - fetches transcripts shared via a link.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
An MCP server that gives any LLM or agent clean YouTube transcripts on demand: a single video, a whole channel, or a playlist, plus AI cleanup of auto-generated captions. API-key auth, credit-based, same backend as the public v1 API. Get a free API key with 25 free credits at youtubetranscriptdownload.com/account.
MCP server for OpenAI Sora AI video generation
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP Server for the Notion API, enabling Claude to interact with Notion workspaces.314,626922MIT
- AlicenseAqualityDmaintenanceMCP server for Scribefy — extract YouTube transcripts from Claude Desktop, Cursor, Windsurf, ChatGPT custom GPTs, or any other MCP-compatible client.4561MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that extracts YouTube video transcripts (including metadata) as Markdown, enabling AI to summarize and discuss video content without watching it.MIT
- AlicenseNot gradedqualityDmaintenanceA local MCP server that connects Claude to your YouTube channel, enabling video analysis, performance tracking, comment reading, and niche suggestions.14MIT