Skip to main content
Glama

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

  1. You give Claude Desktop a YouTube URL and ask for a summary.

  2. Claude calls the get_transcript tool, which fetches the video's transcript.

  3. Claude summarizes the transcript itself.

  4. Claude calls the create_notion_page tool with a structured page payload.

  5. The server creates the page in your Notion workspace and returns its URL.

Related MCP server: scribefy-mcp

Prerequisites

1. Set up a Notion integration

  1. Go to https://www.notion.so/profile/integrations and create a new internal integration. Name it (e.g. "YT Summarizer") and pick your workspace.

  2. Copy the Internal Integration Secret — this is your NOTION_TOKEN.

  3. In Notion, create (or pick) a page that will act as the parent page for generated summaries.

  4. Open that page, click Connections (or •••Connect to), and connect your new integration so it has access.

  5. 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-1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d is your PARENT_PAGE_ID.

2. Configure environment variables

cp .env.example .env

Edit .env and fill in the two values from step 1:

NOTION_TOKEN=YOUR_NOTION_INTEGRATION_SECRET
PARENT_PAGE_ID=YOUR_NOTION_PARENT_PAGE_ID

3. Install dependencies

uv sync

4. Register the server with Claude Desktop

Add an entry to your Claude Desktop config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %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

get_transcript(video_id)

Fetches a YouTube video's transcript. Accepts a raw video ID or a full URL (watch/youtu.be/shorts/embed/live).

create_notion_page(notion_page_content)

Creates a page under PARENT_PAGE_ID from a Notion "create page" API payload (properties + children blocks).

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 tools
create_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
notion_page_contentYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.)

ParametersJSON Schema
NameRequiredDescriptionDefault
video_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

  1. 2 tool updatesv0.1.0
    • First observedcreate_notion_page
    • First observedget_transcript

TDQS

A3.6/5.0

Scored across 2 tools

Disambiguation5/5

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.

Naming Consistency5/5

Both tools follow a clear verb_noun naming pattern: get_transcript and create_notion_page. The style is consistent and predictable.

Tool Count3/5

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.

Completeness1/5

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

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers