YouTube Summary MCP Server
Provides tools for summarizing YouTube videos, including transcript extraction, key point extraction, and metadata retrieval.
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 Summary MCP ServerSummarize this YouTube video: https://youtu.be/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.
YouTube Summary MCP Server
A powerful MCP (Model Context Protocol) server for summarizing YouTube videos with transcript fetching, intelligent summarization, key point extraction, and metadata retrieval. Built with FastMCP for simple, decorator-based tool registration and automatic MCP protocol handling.
한국어 문서 | English Documentation
📋 프로젝트 개요
이 프로젝트는 MCP(Model Context Protocol)를 통해 YouTube 비디오의 트랜스크립트를 가져오고, 자동으로 요약하며, 핵심 포인트를 추출하는 서버입니다. Claude Desktop, Cursor 등 MCP를 지원하는 AI 클라이언트에서 YouTube 비디오를 직접 분석할 수 있습니다.
Related MCP server: ytt-mcp
🎯 주요 기능
📝 트랜스크립트 추출: YouTube 비디오에서 자막 텍스트 추출 (4가지 URL 형식 지원)
📊 지능형 요약: 다양한 길이의 요약 생성 (짧음, 중간, 긴 버전)
✨ 핵심 포인트 추출: TF-IDF 기반 자동 핵심 문장 추출
🎬 메타데이터 조회: 비디오 제목, 채널, 조회수 등 정보 제공
🌍 다국어 지원: 7개 언어 지원 (영어, 한국어, 스페인어, 프랑스어, 독일어, 일본어, 중국어)
⚡ FastMCP 프레임워크: 데코레이터 기반의 간단한 구현
🔒 오류 처리: 포괄적인 에러 처리 및 로깅
🏗️ SOLID 원칙: 확장 가능한 아키텍처
🏗️ 아키텍처
시스템 구성도
┌─────────────────────────┐ ┌──────────────────────┐ ┌─────────────┐
│ AI Client │◄────►│ MCP Server │◄────►│ YouTube │
│ (Claude, Cursor, etc) │ │ (FastMCP Python) │ │ API │
└─────────────────────────┘ └──────────────────────┘ └─────────────┘
│
▼
┌──────────────────┐
│ Core Components │
│ - Transcript API │
│ - Summarizer │
│ - Metadata │
└──────────────────┘핵심 컴포넌트
MCP Server Core (
server.py)MCP 프로토콜 구현 (FastMCP 사용)
클라이언트와의 통신 관리
요청/응답 처리
Transcript Retriever (
transcript_retriever.py)YouTube 트랜스크립트 추출
다양한 URL 형식 지원
언어 자동 감지 및 폴백
Summary Generator (
summary_generator.py)TF-IDF 기반 텍스트 요약
핵심 포인트 자동 추출
다국어 스톱워드 지원
Metadata Extractor (
metadata_extractor.py)비디오 메타데이터 추출
썸네일 URL 생성
Config Manager (
config_manager.py)Pydantic 기반 설정 관리
환경 변수 지원
🛠️ 기술 스택
카테고리 | 기술 |
언어 | Python 3.10+ |
MCP 프레임워크 | FastMCP (Model Context Protocol) |
YouTube 처리 | youtube-transcript-api |
자연언어처리 | NLTK (TF-IDF, stopwords) |
설정 관리 | Pydantic, Pydantic Settings |
패키지 관리 | uv |
테스트 | pytest |
타입 체킹 | mypy |
코드 포매팅 | black, ruff |
📁 프로젝트 구조
youtube-summary-mcp/
├── youtube_summary_mcp/ # 메인 패키지
│ ├── __init__.py # 패키지 초기화
│ ├── server.py # FastMCP 서버 구현 (stdio)
│ ├── main.py # 진입점 (stdio)
│ ├── server_sse.py # FastMCP 서버 구현 (SSE)
│ ├── main_sse.py # 진입점 (SSE)
│ ├── asgi.py # ASGI 앱 (Uvicorn/Gunicorn용)
│ ├── config_manager.py # 설정 관리 (Pydantic)
│ ├── transcript_retriever.py # 트랜스크립트 추출
│ ├── summary_generator.py # 텍스트 요약 엔진
│ └── metadata_extractor.py # 메타데이터 추출
│
├── tests/ # 테스트 스위트
│ ├── test_config_manager.py # 설정 테스트
│ ├── test_transcript_retriever.py
│ ├── test_summary_generator.py
│ └── test_metadata_extractor.py
│
├── pyproject.toml # 프로젝트 설정
├── .env.example # 환경 변수 템플릿
├── .gitignore # Git 무시 파일
└── README.md # 이 파일🚀 설치 및 설정
1️⃣ 사전 요구사항
# 필수
- Python 3.10 이상
- uv 패키지 관리자
# 선택사항 (향상된 메타데이터를 위해)
- YouTube Data API Key2️⃣ 의존성 설치
# 프로젝트 디렉토리로 이동
cd youtube-summary-mcp
# 의존성 설치 및 환경 구성
uv sync설치되는 주요 패키지:
mcp>=0.1.0- Model Context Protocolyoutube-transcript-api>=0.6.1- YouTube 트랜스크립트pydantic>=2.0.0- 데이터 검증nltk>=3.9.2- 자연언어처리
3️⃣ 환경 변수 설정 (선택사항)
.env.example을 복사하여 .env 파일을 생성합니다:
cp .env.example .env.env 파일 내용:
# 로깅 설정
LOG_LEVEL=INFO # DEBUG, INFO, WARNING, ERROR, CRITICAL
# 요약 설정
SUMMARY_RATIO=0.35 # 원본의 35% 길이로 요약
# 서버 설정
SERVER_NAME=YouTube Summary MCP
SERVER_VERSION=0.1.0⚡ 빠른 설정 (Quick Setup)
설정 파일만 수정하면 바로 사용 가능합니다!
Claude Desktop 설정 (claude_desktop_config.json)
Windows:
{
"mcpServers": {
"youtube-summary": {
"command": "python",
"args": ["-m", "youtube_summary_mcp.main"],
"env": {
"PYTHONPATH": "C:\\path\\to\\youtube-summary-mcp"
}
}
}
}macOS/Linux:
{
"mcpServers": {
"youtube-summary": {
"command": "python3",
"args": ["-m", "youtube_summary_mcp.main"],
"env": {
"PYTHONPATH": "/path/to/youtube-summary-mcp"
}
}
}
}Cursor 설정 (cursor_mcp_config.json 또는 settings.json)
{
"mcp": {
"servers": [
{
"id": "youtube-summary",
"name": "YouTube Summary",
"type": "command",
"command": "python",
"args": ["-m", "youtube_summary_mcp.main"],
"env": {
"PYTHONPATH": "/path/to/youtube-summary-mcp"
}
}
]
}
}설정 파일 위치:
Claude Desktop (Windows):
C:\Users\[사용자명]\AppData\Roaming\Claude\claude_desktop_config.jsonClaude Desktop (macOS):
~/Library/Application Support/Claude/claude_desktop_config.jsonClaude Desktop (Linux):
~/.config/Claude/claude_desktop_config.jsonCursor (모든 OS): 설정 → MCP 섹션 또는
~/.config/Cursor/User/settings.json
💡 팁:
/path/to/youtube-summary-mcp부분을 실제 프로젝트 경로로 바꾸세요!
🌐 SSE 전송 방식 설정
표준 stdio 방식 외에도 SSE(Server-Sent Events) 방식으로 MCP 서버를 실행할 수 있습니다. SSE는 HTTP 기반의 연결 방식으로, 웹 환경이나 특정 MCP 클라이언트에 유용합니다.
SSE 방식 직접 실행 (권장)
FastMCP가 내장된 Uvicorn 서버를 자동으로 시작합니다.
# 기본값 (0.0.0.0:10719)
uv run youtube-summary-mcp-sse
# 또는 모듈로 직접 실행
uv run python -m youtube_summary_mcp.main_sse커스텀 호스트/포트 설정
# 환경 변수를 통한 설정
MCP_SSE_HOST="127.0.0.1" MCP_SSE_PORT="8080" uv run youtube-summary-mcp-sse
# 여러 변수 설정
export MCP_SSE_HOST="0.0.0.0"
export MCP_SSE_PORT="9000"
export MCP_SSE_PATH="/mcp" # SSE 엔드포인트 경로 (기본값: /sse)
uv run youtube-summary-mcp-sse지원 환경 변수:
MCP_SSE_HOST: 바인드할 호스트 (기본값:0.0.0.0)MCP_SSE_PORT: 바인드할 포트 (기본값:10719)MCP_SSE_PATH: SSE 엔드포인트 경로 (기본값:/sse)
ASGI 서버로 실행 (고급)
FastMCP 앱을 ASGI 서버(Uvicorn, Gunicorn 등)로 실행할 수도 있습니다:
# Uvicorn으로 실행
uvicorn youtube_summary_mcp.asgi:app --host 0.0.0.0 --port 10719
# 환경 변수와 함께
MCP_SSE_HOST="127.0.0.1" MCP_SSE_PORT="8080" uvicorn youtube_summary_mcp.asgi:appClaude Desktop 설정 (SSE 방식)
설정 방법
SSE 서버 시작:
# 터미널에서 uv run youtube-summary-mcp-sse서버가
http://0.0.0.0:10719/sse에서 실행됩니다.Claude Desktop 설정 파일 수정:
Windows:
{
"mcpServers": {
"youtube-summary-sse": {
"url": "http://localhost:10719/sse",
"disabled": false,
"alwaysAllow": []
}
}
}macOS/Linux:
{
"mcpServers": {
"youtube-summary-sse": {
"url": "http://localhost:10719/sse",
"disabled": false,
"alwaysAllow": []
}
}
}Claude Desktop 재시작
stdio vs SSE 비교
항목 | stdio | SSE |
전송 방식 | 표준 입출력 | HTTP SSE |
설정 방법 | command 기반 | URL 기반 |
포트 바인딩 | 필요 없음 | 필요함 |
시작 방식 | 자동 | 수동 (별도 터미널) |
성능 | 빠름 | 안정적 |
웹 환경 | 미지원 | 지원 |
추천 사용 처 | 대부분의 경우 | 웹 기반 클라이언트 |
팁: 둘 다 동시에 실행 가능합니다. stdio는 항상 자동 시작되고, SSE는 필요할 때 수동으로 시작하면 됩니다!
🔧 MCP 클라이언트 설정 (매우 중요!)
📌 MCP란?
**Model Context Protocol (MCP)**는 AI 모델이 외부 도구와 리소스에 접근하는 표준 방식입니다. 클라이언트 설정을 통해 Claude, Cursor 등이 YouTube Summary MCP 서버에 접근할 수 있습니다.
⚙️ Claude Desktop 설정
Windows
Claude Desktop 설정 파일 열기:
C:\Users\[사용자명]\AppData\Roaming\Claude\claude_desktop_config.json다음 내용 추가 또는 수정:
{ "mcpServers": { "youtube-summary": { "command": "python", "args": ["-m", "youtube_summary_mcp.main"], "env": { "PYTHONPATH": "C:\\path\\to\\youtube-summary-mcp" } } } }또는 절대 경로 사용:
{ "mcpServers": { "youtube-summary": { "command": "C:\\Python310\\python.exe", "args": [ "C:\\path\\to\\youtube-summary-mcp\\youtube_summary_mcp\\main.py" ] } } }
macOS
Claude Desktop 설정 파일 열기:
~/Library/Application\ Support/Claude/claude_desktop_config.json다음 내용 추가 또는 수정:
{ "mcpServers": { "youtube-summary": { "command": "python3", "args": ["-m", "youtube_summary_mcp.main"], "env": { "PYTHONPATH": "/path/to/youtube-summary-mcp" } } } }
Linux
Claude Desktop 설정 파일 열기:
~/.config/Claude/claude_desktop_config.json다음 내용 추가 또는 수정:
{ "mcpServers": { "youtube-summary": { "command": "python3", "args": ["-m", "youtube_summary_mcp.main"], "env": { "PYTHONPATH": "/home/username/path/to/youtube-summary-mcp" } } } }Claude Desktop 재시작
🎨 Cursor IDE 설정
Windows/macOS/Linux 통일
Cursor 설정 파일 열기:
Windows:
C:\Users\[사용자명]\AppData\Roaming\Cursor\User\settings.jsonmacOS:
~/Library/Application Support/Cursor/User/settings.jsonLinux:
~/.config/Cursor/User/settings.json
다음 설정 추가:
{ "mcp": { "servers": [ { "id": "youtube-summary", "name": "YouTube Summary", "type": "command", "command": "python", "args": ["-m", "youtube_summary_mcp.main"], "env": { "PYTHONPATH": "/path/to/youtube-summary-mcp" } } ] } }
📌 VS Code (with MCP Extension)
VS Code MCP 확장 설치:
"Model Context Protocol" 검색하여 설치
VS Code 설정 열기 (
Ctrl+,또는Cmd+,)settings.json 수정:
{ "mcp.servers": { "youtube-summary": { "command": "python", "args": ["-m", "youtube_summary_mcp.main"], "env": { "PYTHONPATH": "/path/to/youtube-summary-mcp" } } } }
🔍 설정 확인 및 문제 해결
1. 서버가 정상적으로 시작하는지 확인
# 터미널에서 직접 실행하여 로그 확인
uv run youtube-summary-mcp정상이면 다음과 같은 로그가 나타납니다:
2025-10-28 14:59:48,114 - youtube_summary_mcp.server - INFO - Initialized YouTube Summary MCP v0.1.02. 설정 파일 경로 확인
# Windows (PowerShell)
$env:APPDATA\Claude\claude_desktop_config.json
# macOS/Linux
cat ~/Library/Application\ Support/Claude/claude_desktop_config.json
# 또는
cat ~/.config/Claude/claude_desktop_config.json3. Python 경로 확인
# Python이 올바른 버전인지 확인
python --version # Python 3.10 이상 필요
# uv를 통한 실행
which uv # uv 설치 위치 확인
uv python list # 설치된 Python 버전 확인4. Claude Desktop에서 도구 표시 확인
Claude Desktop을 시작한 후 채팅창에서 "🔧 도구" 버튼 클릭
"YouTube Summary" 서버가 표시되는지 확인
각 도구 (get_transcript, summarize_video 등)가 나열되는지 확인
📊 사용 가능한 도구 (Tools)
1. get_transcript 📝
YouTube 비디오의 트랜스크립트를 추출합니다.
매개변수:
video_url(필수): YouTube URL 또는 비디오 IDlanguage(선택): 언어 코드 (기본값: "en")
지원 URL 형식:
https://www.youtube.com/watch?v=HQU2vbsbXkU
https://youtu.be/HQU2vbsbXkU
https://www.youtube.com/embed/HQU2vbsbXkU
HQU2vbsbXkU (ID만)지원 언어:
en- 영어ko- 한국어es- 스페인어fr- 프랑스어de- 독일어ja- 일본어zh- 중국어
응답 예시:
{
"success": true,
"transcript": "Never gonna give you up, never gonna let you down..."
}2. summarize_video 📊
YouTube 비디오의 자동 요약을 생성합니다.
매개변수:
video_url(필수): YouTube URL 또는 비디오 IDsummary_length(선택): 요약 길이 (기본값: "medium")short- 원본의 약 20%medium- 원본의 약 35%long- 원본의 약 50%
language(선택): 언어 코드 (기본값: "en")
응답 예시:
{
"success": true,
"summary": "이 영상은 유명한 팝 뮤직 비디오입니다...",
"length": "medium"
}3. extract_key_points ✨
비디오 트랜스크립트에서 핵심 포인트를 자동 추출합니다.
매개변수:
video_url(필수): YouTube URL 또는 비디오 IDnum_points(선택): 추출할 핵심 포인트 개수 (기본값: 5)language(선택): 언어 코드 (기본값: "en")
응답 예시:
{
"success": true,
"key_points": [
"Never gonna give you up",
"Never gonna let you down",
"Never gonna desert you"
],
"count": 3
}4. get_video_metadata 🎬
YouTube 비디오의 메타데이터를 조회합니다.
매개변수:
video_url(필수): YouTube URL 또는 비디오 ID
응답 예시:
{
"success": true,
"metadata": "Video ID: HQU2vbsbXkU\nTitle: Rick Astley - Never Gonna Give You Up (Official Video)\nChannel: Unknown\nViews: None"
}💻 사용 예제
Claude Desktop에서 사용
Claude Desktop 열기
새로운 채팅 시작
대화창에 요청:
"이 비디오의 요약을 만들어줄 수 있을까?
https://www.youtube.com/watch?v=HQU2vbsbXkU"Claude가 자동으로 YouTube Summary MCP 도구를 사용하여 비디오를 분석합니다.
Cursor에서 사용
Cursor 편집기 열기
chat.md 또는 새로운 파일 생성
MCP 채팅 시작
다음과 같이 요청:
"YouTube 비디오를 요약해줄 수 있을까?
https://youtu.be/HQU2vbsbXkU
핵심 포인트 5개도 함께 추출해줘."🔒 보안 및 개인정보
로컬 처리: 모든 데이터는 로컬에서만 처리됩니다
no API Key 필요: YouTube 트랜스크립트 API는 무료로 사용 가능합니다
데이터 캐싱 안 함: 기본적으로 트랜스크립트 캐싱을 하지 않습니다
로깅: 민감한 정보는 로그에 기록되지 않습니다
🧪 테스트
# 모든 테스트 실행
uv run pytest tests/
# 특정 테스트 파일 실행
uv run pytest tests/test_summary_generator.py -v
# 커버리지와 함께 실행
uv run pytest tests/ --cov=youtube_summary_mcp🔧 개발
코드 스타일
# 코드 포매팅
uv run black youtube_summary_mcp/ tests/
# Linting
uv run ruff check youtube_summary_mcp/ tests/
# 타입 체킹
uv run mypy youtube_summary_mcp/📈 성능 정보
작업 | 소요 시간 |
서버 시작 | ~1.8초 |
트랜스크립트 추출 | 5-10초 (비디오 길이에 따라) |
요약 생성 | ~1초 |
핵심 포인트 추출 | ~0.5초 |
메타데이터 조회 | ~2초 |
🐛 문제 해결
서버가 시작되지 않는 경우
# 1. 직접 실행하여 에러 메시지 확인
uv run youtube-summary-mcp
# 2. Python 버전 확인 (3.10 이상 필요)
python --version
# 3. 의존성 재설치
uv sync --refresh"Tool not found" 오류
Claude Desktop/Cursor를 완전히 종료 후 재시작
설정 파일의 JSON 형식 확인 (쉼표, 따옴표 등)
트랜스크립트를 가져올 수 없음
비디오에 자막이 있는지 확인
인기 있는 비디오는 대부분 자막이 있습니다
정확한 URL 형식 사용
📚 문서
더 자세한 정보는 다음 파일을 참고하세요:
FASTMCP_REFACTORING.md - FastMCP로의 마이그레이션 상세 보고서
QUICKSTART.md - 5분 빠른 시작 가이드
USE_CLIENT.md - 클라이언트 사용법
DEVELOPMENT.md - 개발자 가이드
📋 지원 언어 및 형식
언어
영어, 한국어, 스페인어, 프랑스어, 독일어, 일본어, 중국어
YouTube URL 형식
표준:
https://www.youtube.com/watch?v=VIDEO_ID단축:
https://youtu.be/VIDEO_ID임베드:
https://www.youtube.com/embed/VIDEO_IDID만:
VIDEO_ID
요약 길이
짧음 (20%), 중간 (35%), 긴 버전 (50%)
🎓 버전 정보
현재 버전: 0.2.0 (FastMCP)
이전 버전: 0.1.0 (Low-level MCP)
상태: 🟢 Production Ready
📝 라이선스
MIT License - 자유롭게 사용, 수정, 배포 가능합니다.
🤝 기여
버그 리포트, 기능 요청, 풀 리퀘스트를 환영합니다!
📞 지원
문제가 발생하면:
문서를 다시 확인하세요
에러 로그를 확인하세요
설정 파일 형식을 검증하세요
Happy Summarizing! 🚀
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/dEitY719/mcp-youtube-summary'
If you have feedback or need assistance with the MCP directory API, please join our Discord server