YouTube字幕客户端

一个用于连接运行在Docker容器中的YouTube字幕服务器的MCP客户端,支持获取、搜索和总结字幕内容。

  • by sathyakutti
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 sathyakutti/mcp-yt-client

使用说明

YouTube MCP客户端

一个模型上下文协议(MCP)客户端,用于连接到在Docker容器中运行的YouTube转录服务器。

特性

  • 🎥 获取YouTube视频转录
  • 🔍 在成绩单中搜索
  • 📝 总结成绩单内容
  • 🐳 基于Docker的MCP服务器集成
  • 🔐 Next.js API路由与身份验证
  • 📡 JSON-RPC 2.0协议支持

先决条件

  • Node.js 18+
  • 安装了MCP工具包的Docker桌面
  • Docker桌面中配置的YouTube转录MCP服务器

安装

npm install

配置

Docker桌面MCP服务器

将此添加到Docker桌面MCP设置中:

{
  "mcpServers": {
    "youtube_transcript": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "mcp/youtube-transcript"
      ]
    }
  }
}

用法

启动开发服务器

npm run dev

API终点

获取成绩单

POST /api/youtube/transcript
Content-Type: application/json

{
  "videoUrl": "https://www.youtube.com/watch?v=VIDEO_ID",
  "action": "get"
}

搜索成绩单

POST /api/youtube/transcript
Content-Type: application/json

{
  "videoUrl": "https://www.youtube.com/watch?v=VIDEO_ID",
  "action": "search",
  "query": "search term"
}

总结成绩单

POST /api/youtube/transcript
Content-Type: application/json

{
  "videoUrl": "https://www.youtube.com/watch?v=VIDEO_ID",
  "action": "summarize"
}

列出可用工具

GET /api/youtube/transcript

直接使用客户端

import { getYouTubeMCPClient } from './lib/mcp/youtube-client';

// Get client instance
const client = await getYouTubeMCPClient();

// Get transcript
const transcript = await client.getTranscript('https://www.youtube.com/watch?v=VIDEO_ID');

// Search transcript
const results = await client.searchTranscript('https://www.youtube.com/watch?v=VIDEO_ID', 'keyword');

// Summarize
const summary = await client.summarizeTranscript('https://www.youtube.com/watch?v=VIDEO_ID');

// Cleanup
await client.disconnect();

建筑

youtube-mcp-client/
├── lib/
│   └── mcp/
│       └── youtube-client.ts    # MCP client implementation
├── app/
│   └── api/
│       └── youtube/
│           └── transcript/
│               └── route.ts     # API endpoints
└── package.json

运作原理

  1. MCP客户端 生成Docker容器 docker run -i --rm mcp/youtube-transcript
  2. JSON-RPC 2.0 通过stdin/stdout进行通信
  3. 单例模式 确保一个容器实例
  4. 自动清理 进程退出

MCP协议

客户端实现模型上下文协议:

  • 初始化:建立与服务器功能的连接
  • 工具列表:从服务器检索可用工具
  • 工具调用:使用参数执行工具
  • 响应处理:解析JSON-RPC响应

错误处理

  • 连接超时(默认30秒)
  • Docker进程错误
  • JSON-RPC错误响应
  • 故障自动清理

发展

# Type checking
npm run type-check

# Linting
npm run lint

# Build
npm run build

许可证

麻省理工学院