spolepaka
服务介绍
YouTube MCP 集成
此项目提供了一个 Model Context Protocol (MCP) 的 YouTube 集成,允许大型语言模型(LLMs)通过标准化工具搜索 YouTube、获取视频信息和检索字幕。
功能
- YouTube 搜索工具:在 YouTube 上搜索视频,并可配置结果数量限制
- 视频信息工具:获取有关 YouTube 视频的详细信息
- 字幕工具:检索并解析 YouTube 视频的字幕
架构
该实现遵循 Model Context Protocol (MCP) 规范,该规范标准化了 LLMs 与外部工具和资源交互的方式。架构包括:
- MCP 服务器:通过 HTTP/SSE 传输提供 YouTube 功能作为 MCP 工具
- YouTube API 集成:抓取 YouTube 数据以提供搜索、视频信息和字幕功能
- MCP 客户端:示例客户端展示如何使用 MCP YouTube 工具
开始使用
前提条件
- Node.js 18+
- npm
安装
bash
克隆仓库
git clone https://github.com/your-username/ephor-youtube-mcp.git
cd ephor-youtube-mcp
安装依赖
npm install
构建项目
npm run build
运行服务器
启动 MCP 服务器:
bash
npm run start
服务器将在 http://localhost:3000 启动,包含以下端点:
- SSE 端点:
/sse - 消息端点:
/messages
使用 MCP 客户端
这些 MCP 工具可以与任何兼容 MCP 的客户端一起使用。下面是一个如何使用这些工具的例子:
typescript
// 初始化客户端
const client = new Client(
{ name: 'youtube-client', version: '1.0.0' },
{ capabilities: { tools: {} } }
);
// 连接到服务器
await client.connect(transport);
// 搜索 YouTube
const searchResults = await client.callTool({
name: 'youtube_search',
arguments: {
query: 'javascript tutorial',
limit: 3
}
});
// 获取视频信息
const videoInfo = await client.callTool({
name: 'youtube_get_video_info',
arguments: {
input: 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'
}
});
// 获取视频字幕
const transcript = await client.callTool({
name: 'youtube_get_transcript',
arguments: {
input: 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'
}
});
可用工具
youtube_search
搜索 YouTube 视频。
参数:
query(字符串, 必需): 搜索查询limit(数字, 可选): 最大结果数 (1-10, 默认: 5)
响应:
一个包含标题、视频 ID、URL、缩略图、描述、频道信息、观看次数和发布日期等细节的视频结果列表。
youtube_get_video_info
获取关于 YouTube 视频的详细信息。
参数:
input(字符串, 必需): YouTube 视频 ID 或 URL
响应:
详细的视频信息,包括标题、描述、观看次数、发布日期、频道详情和缩略图 URL。
youtube_get_transcript
获取 YouTube 视频的字幕。
参数:
input(字符串, 必需): YouTube 视频 ID 或 URL
响应:
带有时间戳条目的视频字幕,以及基本的视频信息。
许可证
MIT