返回市场
MCP-YouTube服务器

MCP-YouTube服务器

作者:anisayari5 星标更新:2025-06-10

项目介绍

YouTube MCP Server

一个强大的模型上下文协议(MCP)服务器,提供全面的YouTube功能和基于AI的文本处理工具,部署为Cloudflare Worker。

🚀 在线服务器

服务器部署地址:https://youtube-mcp-server.anis-ayari-perso.workers.dev

📋 功能

  • YouTube 视频搜索:搜索并分析带有详细元数据的YouTube视频
  • 评论分析:分析视频评论的情感和见解
  • 基于AI的文本工具:重写、总结、扩展、翻译和增强文本
  • SEO优化:从成功的视频中提取关键词和标签
  • 视频比较:跨多个视频比较性能指标
  • 脚本生成:创建完整的YouTube视频脚本
  • 缓存:基于KV的缓存以提高性能
  • MCP协议支持:完全实现MCP协议
  • REST API:直接REST端点,便于集成
  • 启用CORS:可以从网络浏览器调用

🛠️ 可用工具(总计13个)

YouTube 工具

1. YouTube 视频搜索 (search_youtube_videos)

搜索带有详细元数据的YouTube视频。

参数:

  • query (字符串,必需):搜索查询
  • maxResults (数字,可选):最大结果数(默认:20)

返回值: 视频ID、标题、描述、URL、缩略图、观看次数、时长、频道信息

2. 分析视频评论 (analyze_video_comments)

分析视频评论的情感和主题。

参数:

  • videoId (字符串,必需):YouTube视频ID
  • maxComments (数字,可选):要分析的最大评论数(默认:100)

返回值: 情感分析、重复主题、观众反馈见解

3. 生成视频脚本 (generate_video_script)

生成包含钩子、内容和行动号召的完整YouTube视频脚本。

参数:

  • topic (字符串,必需):视频主题
  • duration (字符串,可选):"short"、"medium"、"long"(默认:"medium")
  • style (字符串,可选):"educational"、"entertainment"、"tutorial"、"vlog"(默认:"educational")
  • targetAudience (字符串,可选):目标受众描述

返回值: 包含时间戳、视觉建议和互动提示的完整脚本

4. 提取YouTube SEO (extract_youtube_seo)

从成功视频中提取SEO关键词和标签。

参数:

  • query (字符串,必需):要分析的主题
  • competitors (数字,可选):要分析的视频数量(默认:10)

返回值: 关键词、标题公式、标签、优化技巧

5. 比较视频 (compare_videos)

比较多个视频的性能指标。

参数:

  • videoIds (数组,必需):要比较的视频ID数组

返回值: 性能排名、成功因素、改进建议

6. 分析视频格局 (analyze_video_landscape)

分析现有视频并提出独特的内容角度。

参数:

  • query (字符串,必需):要分析的主题
  • maxVideos (数字,可选):要分析的视频数量(默认:10)

返回值: 内容缺口、独特的视频创意、目标受众

AI 文本工具

7. OpenAI 完成 (openai_completion)

使用OpenAI模型生成文本。

参数:

  • prompt (字符串,必需):文本提示
  • model (字符串,可选):OpenAI模型(默认:"gpt-4o-mini")
  • maxTokens (数字,可选):最大令牌数(默认:1000)

8. 重写文本 (rewrite_text)

以不同风格重写文本。

参数:

  • text (字符串,必需):要重写的文本
  • style (字符串,可选):"professional"、"casual"、"formal"、"creative"(默认:"professional")

9. 摘要文本 (summarize_text)

创建简洁的摘要。

参数:

  • text (字符串,必需):要摘要的文本
  • length (字符串,可选):"short"、"medium"、"long"(默认:"medium")

10. 扩展文本 (expand_text)

通过添加更多细节来扩展文本。

参数:

  • text (字符串,必需):要扩展的文本
  • targetLength (字符串,可选):目标扩展(默认:"double")

11. 修正语法 (fix_grammar)

修正语法、拼写和标点符号。

参数:

  • text (字符串,必需):要修正的文本

12. 翻译文本 (translate_text)

将文本翻译成其他语言。

参数:

  • text (字符串,必需):要翻译的文本
  • targetLanguage (字符串,可选):目标语言(默认:"Spanish")

13. 简化文本 (simplify_text)

简化文本以便于阅读。

参数:

  • text (字符串,必需):要简化的文本
  • readingLevel (字符串,可选):"elementary"、"high-school"、"general"(默认:"general")

📡 API 端点

REST 端点

YouTube 搜索

GET /youtube/search?query=<search_term>&maxResults=<number>

OpenAI 完成

POST /openai/completion
Content-Type: application/json

{
  "prompt": "Your prompt here",
  "model": "gpt-4o-mini",
  "maxTokens": 1000
}

文本增强端点

POST /text/rewrite
POST /text/summarize
POST /text/expand
POST /text/fix-grammar
POST /text/translate
POST /text/simplify

Content-Type: application/json
{
  "text": "Your text here",
  // 根据端点的不同附加参数
}

MCP 端点

列出所有工具

POST /mcp
Content-Type: application/json

{
  "method": "tools/list"
}

调用工具

POST /mcp
Content-Type: application/json

{
  "method": "tools/call",
  "params": {
    "name": "tool_name",
    "arguments": {
      // 工具特定参数
    }
  }
}

💻 使用示例

示例1:分析视频性能

// 搜索视频
const searchResponse = await fetch('https://youtube-mcp-server.anis-ayari-perso.workers.dev/mcp', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    method: 'tools/call',
    params: {
      name: 'search_youtube_videos',
      arguments: { query: 'javascript tutorial', maxResults: 5 }
    }
  })
});

// 分析顶级视频的评论
const videoId = 'VIDEO_ID_HERE';
const commentsResponse = await fetch('https://youtube-mcp-server.anis-ayari-perso.workers.dev/mcp', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    method: 'tools/call',
    params: {
      name: 'analyze_video_comments',
      arguments: { videoId, maxComments: 100 }
    }
  })
});

示例2:生成优化内容

// 提取SEO洞察
const seoResponse = await fetch('https://youtube-mcp-server.anis-ayari-perso.workers.dev/mcp', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    method: 'tools/call',
    params: {
      name: 'extract_youtube_seo',
      arguments: { query: 'web development', competitors: 10 }
    }
  })
});

// 基于洞察生成脚本
const scriptResponse = await fetch('https://youtube-mcp-server.anis-ayari-perso.workers.dev/mcp', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    method: 'tools/call',
    params: {
      name: 'generate_video_script',
      arguments: {
        topic: 'Web Development for Beginners',
        duration: 'medium',
        style: 'tutorial',
        targetAudience: 'Complete beginners'
      }
    }
  })
});

示例3:比较竞争对手视频

const compareResponse = await fetch('https://youtube-mcp-server.anis-ayari-perso.workers.dev/mcp', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    method: 'tools/call',
    params: {
      name: 'compare_videos',
      arguments: {
        videoIds: ['VIDEO_ID_1', 'VIDEO_ID_2', 'VIDEO_ID_3']
      }
    }
  })
});

📝 响应格式

YouTube 搜索响应

{
  "videoId": "dQw4w9WgXcQ",
  "title": "视频标题",
  "description": "视频描述...",
  "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
  "thumbnail": {
    "default": "https://i.ytimg.com/vi/dQw4w9WgXcQ/default.jpg",
    "medium": "https://i.ytimg.com/vi/dQw4w9WgXcQ/mqdefault.jpg",
    "high": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg"
  },
  "publishedAt": "2024-01-01T00:00:00Z",
  "channelTitle": "频道名称",
  "viewCount": "1000000",
  "duration": "10:30",
  "captions": []
}

MCP 工具响应

{
  "content": [
    {
      "type": "text",
      "text": "工具执行结果..."
    }
  ],
  "metadata": {
    // 每个工具特有的可选元数据
  }
}

🚀 性能特性

  • 缓存:结果使用Cloudflare KV缓存1小时
  • 并发处理:可以并行调用多个工具
  • 优化响应:大型响应被高效地组织

🔧 开发

本地开发

npm install
npm run dev

部署到Cloudflare

npm run deploy

环境变量

  • YOUTUBE_API_KEY:YouTube Data API v3密钥
  • OPENAI_API_KEY:OpenAI API密钥
  • CACHE:KV命名空间绑定(在wrangler.toml中配置)

🔒 安全性

  • API密钥存储为Cloudflare Worker秘密
  • 启用CORS以供浏览器访问
  • 速率限制由Cloudflare处理

📊 使用场景

  1. 内容创作者:研究趋势、分析竞争、生成脚本
  2. SEO专家:提取关键词、优化标题和描述
  3. 市场研究员:分析观众情感和参与度
  4. 教育者:创建具有适当结构的教育内容
  5. 营销人员:比较活动表现、识别内容缺口

🤝 贡献

欢迎贡献!请打开一个问题或提交一个拉取请求。

📄 许可证

MIT许可证

📧 支持

对于问题和疑问,请在GitHub上打开一个问题。