用于与YouTube视频互动的模型上下文协议(MCP)服务器。此服务器提供了提取视频元数据、字幕,并将其转换为多种模板的Markdown格式的工具。
git clone [repository-url]
cd youtube-mcp
npm install
npm run build
在根目录创建一个 .env 文件并添加您的 YouTube 凭据:
YOUTUBE_API_KEY=your_api_key
YOUTUBE_CLIENT_ID=your_client_id
YOUTUBE_CLIENT_SECRET=your_client_secret
YOUTUBE_REFRESH_TOKEN=your_refresh_token # 可选,用于OAuth2
将服务器添加到您的 MCP 设置文件中(通常位于 ~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json):
{
"mcpServers": {
"youtube": {
"command": "node",
"args": ["path/to/youtube-mcp/build/index.js"],
"env": {
"YOUTUBE_API_KEY": "your_api_key",
"YOUTUBE_CLIENT_ID": "your_client_id",
"YOUTUBE_CLIENT_SECRET": "your_client_secret"
},
"disabled": false,
"alwaysAllow": []
}
}
}
该服务器提供以下工具:
use_mcp_tool youtube get_video_info {
"url": "https://www.youtube.com/watch?v=VIDEO_ID"
}
use_mcp_tool youtube get_captions {
"url": "https://www.youtube.com/watch?v=VIDEO_ID",
"language": "en" // 可选,默认为 "en"
}
use_mcp_tool youtube convert_to_markdown {
"url": "https://www.youtube.com/watch?v=VIDEO_ID",
"template_name": "detailed", // 可选,"basic", "detailed", 或 "search"
"language": "en", // 可选
"options": { // 可选
"include_chapters": true,
"search_term": "keyword" // 仅适用于搜索模板
}
}
use_mcp_tool youtube list_templates
{
"dependencies": {
"@modelcontextprotocol/sdk": "latest",
"googleapis": "^146.0.0",
"google-auth-library": "^9.0.0",
"youtube-captions-scraper": "^2.0.0",
"express": "^4.18.2",
"open": "^9.1.0"
},
"devDependencies": {
"@types/node": "^20.0.0",
"typescript": "^5.0.0",
"tsx": "^4.0.0"
}
}
对于 OAuth2 身份验证(访问私有视频所需):
node src/get-api-key.js
您可以通过修改 src/index.ts 中的 DEFAULT_TEMPLATES 数组来自定义模板。模板遵循以下结构:
interface MarkdownTemplate {
name: string;
description: string;
format: {
header?: string;
chapter_format?: string;
caption_block: string;
timestamp_format?: string;
search_result_format?: string;
}
}
MIT
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)