YouTube MCP服务器

一个用于YouTube的模型上下文协议(MCP)服务器实现,使AI语言模型能够通过标准化接口与YouTube内容交互。

  • by Jing-yilin
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Jing-yilin/youtube-mcp-server

使用说明

YouTube MCP服务器

YouTube的模型上下文协议(MCP)服务器实现,使AI语言模型能够通过标准化的界面与YouTube内容进行交互。更新以支持MCP SDK 1.23。

特性

视频信息

  • 获取视频详细信息(标题、描述、持续时间等)
  • 列出频道视频
  • 获取视频统计数据(浏览量、点赞、评论)
  • 在YouTube上搜索视频

成绩单管理

  • 检索视频记录
  • 支持多种语言
  • 获取带有时间戳的字幕
  • 在成绩单中搜索

渠道管理

  • 获取频道详细信息
  • 列出频道播放列表
  • 获取频道统计信息
  • 在频道内容内搜索

播放列表管理

  • 列出播放列表项目
  • 获取播放列表详细信息
  • 搜索播放列表

安装

Claude桌面的快速设置

  1. 安装软件包:
npm install -g @yilin-jing/youtube-mcp-server
  1. 添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS或 %APPDATA%\Claude\claude_desktop_config.json 在Windows上):
{
  "mcpServers": {
    "youtube": {
      "command": "youtube-mcp-server",
      "env": {
        "YOUTUBE_API_KEY": "your_youtube_api_key_here"
      }
    }
  }
}

替代方案:使用NPX(无需安装)

将此添加到您的Claude Desktop配置中:

{
  "mcpServers": {
    "youtube": {
      "command": "npx",
      "args": ["-y", "@yilin-jing/youtube-mcp-server"],
      "env": {
        "YOUTUBE_API_KEY": "your_youtube_api_key_here"
      }
    }
  }
}

配置

设置以下环境变量:

  • YOUTUBE_API_KEY:您的YouTube数据API密钥(必需)
  • YOUTUBE_TRANSCRIPT_LANG:成绩单的默认语言(可选,默认为“en”)

YouTube API设置

  1. 首选 谷歌云控制台
  2. 创建新项目或选择现有项目
  3. 启用YouTube数据API v3
  4. 创建API凭据(API密钥)
  5. 复制API密钥进行配置

可用工具

工具 说明
videos_getVideo 获取有关YouTube视频的详细信息
videos_searchVideos 在YouTube上搜索视频
transcripts_getTranscript 获取YouTube视频的文字记录
channels_getChannel 获取有关YouTube频道的信息
channels_listVideos 从特定频道获取视频
playlists_getPlaylist 获取有关YouTube播放列表的信息
playlists_getPlaylistItems 在YouTube播放列表中获取视频

例子

管理视频

// Get video details
const video = await youtube.videos_getVideo({
  videoId: "dQw4w9WgXcQ"
});

// Search videos
const searchResults = await youtube.videos_searchVideos({
  query: "TypeScript tutorial",
  maxResults: 10
});

管理成绩单

// Get video transcript
const transcript = await youtube.transcripts_getTranscript({
  videoId: "dQw4w9WgXcQ",
  language: "en"
});

管理渠道

// Get channel details
const channel = await youtube.channels_getChannel({
  channelId: "UC_x5XG1OV2P6uZZ5FSM9Ttw"
});

// List channel videos
const videos = await youtube.channels_listVideos({
  channelId: "UC_x5XG1OV2P6uZZ5FSM9Ttw",
  maxResults: 50
});

管理播放列表

// Get playlist items
const playlistItems = await youtube.playlists_getPlaylistItems({
  playlistId: "PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf",
  maxResults: 50
});

// Get playlist details
const playlist = await youtube.playlists_getPlaylist({
  playlistId: "PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf"
});

发展

# Install dependencies
npm install
# or
bun install

# Build
npm run build

# Run tests
bun test

# Start server
npm start

测试

该项目包括50项全面测试,涵盖所有服务:

# Run tests with bun
YOUTUBE_API_KEY="your_api_key" bun test

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

鸣谢

最初分叉自 ZubeidHendricks/youtube mcp服务器,更新了MCP SDK 1.23支持和全面的测试覆盖率。