MCP YouTube服务器
这是一个简单的模型上下文协议(MCP)服务器,提供与YouTube交互的工具。它允许MCP主机应用程序(如桌面版的Claude):
- 搜索YouTube视频。
- 获取有关特定YouTube视频的详细信息。
需求
- Python 3.10或更高版本。
- 紫外线 (必须在运行安装程序之前安装)。
- YouTube数据API v3密钥。您可以从 谷歌云控制台.
bash兼容的shell(用于运行安装脚本,主要是Linux/macOS)。
安装和设置
- 克隆存储库:
git clone https://github.com/davo00019/mcp-server-youtube.git
cd mcp-server-youtube- 运行安装脚本:
- 确保你有 uv 已安装(pip install uv 或查看 紫外线装置). - 自 在...之内 这 mcp-server-youtube 目录,运行:
bash setup.sh- 脚本将: - 检查 uv. - 创建虚拟环境(.venv)里面 mcp-server-youtube. - 安装依赖项(uv sync). - 提示您输入YouTube API密钥并创建 .env 文件。 - 使服务器包装器脚本可执行。 - 打印MCP主机配置所需的最终说明和路径。
- 配置MCP主机:
- 按照末尾打印的说明进行操作 setup.sh 脚本。 - 复制脚本提供的“包装脚本路径”。 - 将此路径粘贴到MCP主机的配置文件中(例如。, claude_desktop_config.json)作为 command 为了 youtube 服务器,确保 args 是 [].
配置详细信息(.env)
这 setup.sh 脚本将提示您输入YouTube Data API v3密钥,并创建 .env 文件在 mcp-server-youtube 包含以下内容的目录:
YOUTUBE_API_KEY=YOUR_API_KEY_HERE如果以后需要更改密钥,可以编辑此项 .env 文件直接。
使用MCP主机运行(例如:桌面版的Claude)
运行后 setup.sh 如上所述编写脚本并配置MCP主机(安装和设置中的步骤3),服务器应在主机应用程序启动时自动启动。
- 查找您的Claude for Desktop配置文件:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - 窗户: %APPDATA%\Claude\claude_desktop_config.json
- 编辑配置文件: 更新
mcpServers部分。这setup.sh脚本(通过print_config_paths.py)提供了一个示例JSON结构,显示了如何配置youtube服务器条目,包括正确的绝对路径command现场。将脚本输出中的示例复制粘贴或调整到配置文件中。
- 重新启动桌面版的Claude。
- Windows用户注意: 这 setup.sh 和 run_server.sh 脚本是为 bash 环境(Linux/macOS)。您可能需要手动执行设置步骤(创建venv、安装deps、创建 .env,使用直接的python/script路径配置主机)或调整Windows的脚本(例如,创建 run_server.bat).
用法
在MCP主机中配置服务器并重新启动主机后,YouTube工具应该可用。 然后,您可以在宿主应用程序中使用自然语言提示:
- “在YouTube上搜索‘python异步教程’”
- “查找有关‘MCP服务器开发’的视频”
- “获取YouTube视频ID XXXXXXX的详细信息”(用有效ID替换XXXXXXX)
主机应用程序将与本地应用程序通信 youtube_server.py 完成这些请求的过程。
可用工具
服务器目前提供以下工具:
search_videos(query: str, max_results: int = 5):根据查询字符串在YouTube上搜索视频。get_video_details(video_id: str):获取特定视频ID的详细信息(片段、统计信息、内容详细信息)。get_channel_details(channel_id: str):获取特定频道ID的详细信息(代码片段、统计信息)。list_channel_videos(channel_id: str, max_results: int = 10):列出特定频道ID上传的最新视频。search_playlists(query: str, max_results: int = 5):在YouTube上搜索与查询字符串匹配的播放列表。get_playlist_items(playlist_id: str, max_results: int = 10):列出特定播放列表ID中包含的视频。get_related_videos(video_id: str, max_results: int = 5):查找YouTube认为与给定视频ID相关的视频。get_popular_videos(region_code: str = 'US', video_category_id: str = '0', max_results: int = 10):列出当前在特定地区或类别中最受欢迎的视频。
贡献
欢迎投稿!如果您有改进或错误修复,请随时提交问题或拉取请求。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

