YouTube Data MCP Server について
YouTube Data MCP Serverは、MCPクライアントから字幕、動画情報、コメント、検索結果を取得するサーバーです。StdioとStreamableHTTPに対応しています。
主な機能
- 01タイムスタンプ付き字幕の取得
- 02動画メタデータの取得
- 03コメントと返信の取得
- 04動画、チャンネル、再生リストの検索
活用シーン
- 01指定言語で動画の字幕を読む
- 02動画コメントを確認してページ送りする
- 03YouTubeの動画やチャンネルを探す
MCP 対応
字幕抽出、メタデータ参照、コメントと返信の取得、YouTube検索のツールをMCPクライアントに提供します。StdioとStreamableHTTPの両方に対応しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | はい | YouTube 動画の URL または 11 文字の動画 ID |
| lang | string | いいえ | 言語コード(en、ko、ja、es など) |
| includeTimestamps | boolean | いいえ | 各セグメントの開始時刻と長さを含めます |
詳細
YouTube Data MCP Server
YouTube 動画の文字起こし、コメント、検索結果を取得する Model Context Protocol(MCP)サーバーです。Stdio と StreamableHTTP の両方のトランスポートに対応しています。
機能
getTranscript- オプションでタイムスタンプを含めて字幕/文字起こしを取得しますgetVideoInfo- 動画のメタデータ(タイトル、再生回数、コメント数)を取得しますgetComments- ページネーションと並べ替えに対応してコメントを取得しますgetCommentReplies- 特定のコメントへの返信を取得しますsearchYoutube- 動画、チャンネル、再生リストを検索します
v2.0 の新機能
- デュアルトランスポート:Stdio(デフォルト)と、Web 統合用の StreamableHTTP
- 信頼性の高い文字起こし:
youtube-transcriptをyoutube-caption-extractorに置き換えました(ボット検出の回避、サーバーレス対応) - タイムスタンプ対応:各文字起こしセグメントの開始時間と長さを指定できます
- モジュール型アーキテクチャ:関心事を明確に分離しています(config、types、services、tools)
- MCP SDK v1.25.2:安定性が向上した最新の SDK
要件
- Node.js 18+
- SerpAPI キー(検索、コメント、動画情報に必要)
インストール
git clone https://github.com/diasm3/serpapi-youtube-mcp-server.git
cd serpapi-youtube-mcp-server
npm install
設定
.env ファイルを作成します。
SERPAPI_KEY=your_serpapi_key_here
PORT=3000 # optional, for HTTP mode
SerpAPI キーは serpapi.com で取得してください。
サーバーの起動
# Build
npm run build
# Stdio mode (default) - for Claude Desktop, Cursor, etc.
npm start
# HTTP mode - for web applications
npm start -- --http
# or
MCP_TRANSPORT=http npm start
HTTP エンドポイント
HTTP モードで実行する場合:
GET /health- ヘルスチェックPOST /mcp- MCP リクエストハンドラー
MCP クライアントの設定
Claude Desktop / Cursor
{
"mcpServers": {
"youtube-data": {
"command": "node",
"args": ["/path/to/serpapi-youtube-mcp-server/build/index.js"],
"env": {
"SERPAPI_KEY": "your_serpapi_key_here"
}
}
}
}
npx を使用する場合
{
"mcpServers": {
"youtube-data": {
"command": "npx",
"args": ["-y", "youtube-data-mcp"],
"env": {
"SERPAPI_KEY": "your_serpapi_key_here"
}
}
}
}
API ツール
getTranscript
YouTube 動画の文字起こし/字幕を取得します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
url | string | はい | YouTube URL または動画 ID |
lang | string | いいえ | 言語コード(デフォルト:'en') |
includeTimestamps | boolean | いいえ | 各セグメントの開始時間と長さを含めます |
Get the Korean transcript for https://youtube.com/watch?v=xxxxx with timestamps
getVideoInfo
SerpAPI を使用して動画のメタデータを取得します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
url | string | はい | YouTube URL または動画 ID |
返される情報:タイトル、再生回数、公開日、チャンネル、コメント数、ページネーショントークン
getComments
ページネーションを使用して動画のコメントを取得します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
url | string | 条件付き | 最初のページでは必須です |
limit | number | いいえ | コメントの最大数(デフォルト:100) |
sort | string | いいえ | 'relevance' または 'time' |
pageToken | string | いいえ | ページネーション用 |
getCommentReplies
特定のコメントへの返信を取得します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
pageToken | string | はい | コメントの repliesToken |
searchYoutube
YouTube で動画、チャンネル、再生リストを検索します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
query | string | はい | 検索クエリ |
limit | number | いいえ | 結果の最大数(デフォルト:10) |
gl | string | いいえ | 国コード(us、kr、jp) |
hl | string | いいえ | 言語コード(en、ko、ja) |
sp | string | いいえ | フィルターパラメーター |
pageToken | string | いいえ | ページネーション用 |
プロジェクト構成
src/
├── index.ts # Server entry (Stdio + HTTP)
├── config/ # Environment configuration
├── types/ # Zod schemas + TypeScript types
├── services/
│ ├── serpapi.ts # SerpAPI integration
│ └── youtube.ts # Transcript extraction
├── tools/ # MCP tool definitions
└── utils/ # Helper functions
トラブルシューティング
文字起こしを利用できない
- 字幕が有効になっていない動画もあります
- 別の言語コード(en、ko、ja など)を試してください
- すべての動画で自動生成字幕を利用できるとは限りません
SerpAPI エラー
- API キーが有効であることを確認してください
- SerpAPI の利用枠/上限を確認してください
- 動画が一般公開されていることを確認してください
HTTP モードが起動しない
- PORT がすでに使用されていないか確認してください
- 環境変数が設定されていることを確認してください
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。