使用说明
项目简介
Playlist-MCP 是一个实验性的 MCP 服务器,旨在将 YouTube 播放列表的视频转录文本提供给 LLM 客户端。它允许用户通过 MCP 协议,利用工具检索播放列表中视频的文本内容,从而为 LLM 应用提供丰富的视频上下文信息。
主要功能点
- 转录文本获取与缓存: 自动下载并缓存指定 YouTube 播放列表的所有视频转录文本,提高访问效率。
- 基于向量数据库的搜索: 使用 ChromaDB 向量数据库存储转录文本,支持基于主题的语义搜索,快速找到相关视频片段。
- MCP 工具集成: 通过 MCP 协议暴露搜索功能为工具,LLM 客户端可以调用该工具,输入主题关键词,获取相关的视频链接和转录文本片段。
- 标准 MCP 服务器实现: 遵循 MCP 协议规范,易于与兼容 MCP 协议的 LLM 客户端集成,例如 Claude Desktop。
安装步骤
-
克隆仓库:
git clone https://github.com/luebken/playlist-mcp.git cd playlist-mcp -
安装 Python 依赖:
uv venv source .venv/bin/activate uv pip install -e .本仓库推荐使用 'uv' 包管理器,您也可以使用 'python3 -m venv .venv' 和 '.venv/bin/pip install -r requirements.txt' 命令。
-
启动服务器并填充数据: 运行 'server.py' 脚本,并传入 YouTube 播放列表的 URL 作为参数。首次运行会下载播放列表的转录文本并构建向量数据库,后续运行会使用缓存数据。
uv run server.py <YOUR_YOUTUBE_PLAYLIST_URL>例如,使用示例中的 KubeCon 伦敦 2025 播放列表:
uv run server.py https://www.youtube.com/playlist?list=PLj6h78yzYM2MP0QhYFK8HOb8UqgbIkLMc
服务器配置
要将此 MCP 服务器与 MCP 客户端(例如 Claude Desktop)连接,您需要在客户端的配置文件中添加服务器配置信息。以下是 Claude Desktop 的配置示例,您需要根据实际情况修改路径:
打开 Claude Desktop 的配置文件 'claude_desktop_config.json' (通常位于 '~/Library/Application Support/Claude/claude_desktop_config.json',Windows 系统路径可能不同)。在 'mcpServers' 字段下添加一个新的服务器配置,例如 "playlist-mcp":
{ "mcpServers": { "playlist-mcp": { "command": "uv", "args": [ "--directory", "/PATH/TO/PARENT/playlist-mcp/", "run", "server.py", "https://www.youtube.com/playlist?list=<YOUR_YOUTUBE_PLAYLIST_URL>" ] } } }
配置参数说明:
- '"playlist-mcp"': 服务器名称,您可以自定义,用于在客户端中标识此服务器。
- '"command": "uv"': 启动服务器的命令,这里使用 'uv run' 来运行 Python 脚本。如果您直接使用 'python' 命令,请修改为 '"command": "python"'。
- '"args"': 传递给命令的参数列表。
- '"--directory", "/PATH/TO/PARENT/playlist-mcp/"': 指定工作目录为仓库的父目录,请将 '/PATH/TO/PARENT/playlist-mcp/' 替换为您的 'playlist-mcp' 仓库所在的父目录的绝对路径。
- '"run", "server.py"': 运行 'server.py' 脚本。
- '"<YOUR_YOUTUBE_PLAYLIST_URL>"': YouTube 播放列表的 URL。请将 '<YOUR_YOUTUBE_PLAYLIST_URL>' 替换为您要使用的播放列表 URL,或者保持示例中的 URL。
请务必将 '/PATH/TO/PARENT/playlist-mcp/' 和 '<YOUR_YOUTUBE_PLAYLIST_URL>' 替换为您实际的路径和 URL。
基本使用方法
- 确保 MCP 服务器已成功启动并运行。
- 在兼容 MCP 的 LLM 客户端(如 Claude Desktop)中,启用并连接到您配置的 "playlist-mcp" 服务器。
- LLM 客户端应该能够检测到服务器提供的 'fetch_transcripts_{playlist_title}' 工具('playlist_title' 会根据您提供的播放列表标题动态生成)。
- 在与 LLM 的对话中,您可以指示 LLM 使用 'fetch_transcripts_{playlist_title}' 工具,并提供您想要搜索的主题关键词。
- LLM 客户端会调用该工具,并将主题关键词作为参数传递给 MCP 服务器。
- MCP 服务器会搜索向量数据库,并将相关的视频链接和转录文本片段返回给 LLM 客户端。
- LLM 客户端可以利用返回的上下文信息,进行更深入的对话和分析。
例如,您可以对 LLM 说: "请使用 'fetch_transcripts_{playlist_title}' 工具搜索关于 Kubernetes 的信息,并告诉我相关的视频内容。"
信息
分类
网页与API