MCP YouTube Server について
互換性のあるホストアプリから YouTube の検索やコンテンツ情報の取得を行う MCP サーバーです。動画の検索・詳細確認に加え、チャンネルやプレイリスト、関連動画、人気動画も扱えます。
主な機能
- 01動画の検索
- 02動画詳細の取得
- 03チャンネルと動画一覧の確認
- 04プレイリスト検索と項目一覧の取得
- 05関連動画と人気動画の検索
活用シーン
- 01テーマに沿って YouTube 動画を検索する
- 02動画やチャンネルの詳細を確認する
- 03プレイリストに含まれる動画を探す
MCP 対応
互換性のあるホストアプリに、YouTube の検索、動画・チャンネル・プレイリストの照会ツールを MCP 経由で公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP YouTube サーバー
これは、YouTube を操作するためのツールを提供するシンプルな Model Context Protocol(MCP)サーバーです。Claude for Desktop などの MCP ホストアプリケーションでは、以下の操作ができます。
- YouTube 動画を検索します。
- 特定の YouTube 動画の詳細情報を取得します。
要件
- Python 3.10 以降。
- uv(セットアップを実行する前にインストールする必要があります)。
- YouTube Data API v3 キー。Google Cloud Console から取得できます。
bash互換のシェル(セットアップスクリプトの実行用。主に Linux/macOS)。
インストールとセットアップ
-
リポジトリをクローンします。
git clone https://github.com/davo00019/mcp-server-youtube.git cd mcp-server-youtube -
セットアップスクリプトを実行します。
uvがインストールされていることを確認します(pip install uvを実行するか、uv のインストール方法を参照してください)。mcp-server-youtubeディレクトリ内で、以下を実行します。bash setup.sh- スクリプトでは以下が実行されます。
uvの有無を確認します。mcp-server-youtube内に仮想環境(.venv)を作成します。- 依存関係をインストールします(
uv sync)。 - YouTube API キーの入力を求め、
.envファイルを作成します。 - サーバーのラッパースクリプトを実行可能にします。
- 最終手順と、MCP ホストの設定に必要なパスを表示します。
-
MCP ホストを設定します。
setup.shスクリプトの最後に表示される手順に従います。- スクリプトが提示する「Wrapper Script Path」をコピーします。
- このパスを MCP ホストの設定ファイル(例:
claude_desktop_config.json)に貼り付け、youtubeサーバーのcommandとして設定し、argsが[]になっていることを確認します。
設定の詳細(.env)
setup.sh スクリプトでは、YouTube Data API v3 キーの入力を求め、mcp-server-youtube ディレクトリに次の内容の .env ファイルを作成します。
YOUTUBE_API_KEY=YOUR_API_KEY_HERE
後からキーを変更する場合は、この .env ファイルを直接編集できます。
MCP ホストでの実行(例:Claude for Desktop)
setup.sh スクリプトの実行後、上記の手順(「インストールとセットアップ」のステップ 3)に従って MCP ホストを設定すると、ホストアプリケーションの起動時にサーバーが自動的に起動します。
-
Claude for Desktop の設定ファイルを確認します。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
設定ファイルを編集します。
mcpServersセクションを更新してください。setup.shスクリプトは、print_config_paths.pyを通じて、commandフィールドの正しい絶対パスを含むyoutubeサーバーエントリの設定例を JSON 形式で表示します。スクリプトの出力から例をコピーして設定ファイルに貼り付けるか、適宜編集してください。 -
Claude for Desktop を再起動します。
- Windows ユーザーへの注意:
setup.shとrun_server.shスクリプトは、bash環境(Linux/macOS)向けに設計されています。セットアップ手順を手動で行う(venv の作成、依存関係のインストール、.envの作成、Python/スクリプトのパスを直接指定したホスト設定など)か、スクリプトを Windows 向けに調整する(例:run_server.batを作成する)必要がある場合があります。
- Windows ユーザーへの注意:
使い方
MCP ホストでサーバーを設定し、ホストを再起動すると、YouTube ツールが利用できるようになります。 ホストアプリケーション内で、自然言語のプロンプトを使って次のように指示できます。
- 「YouTube で『python async tutorial』を検索して」
- 「『MCP server development』に関する動画を探して」
- 「YouTube 動画 ID XXXXXXX の詳細を取得して」(XXXXXXX を有効な ID に置き換えてください)
ホストアプリケーションは、ローカルの 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): 指定した動画 ID に関連すると YouTube が判断した動画を検索します。get_popular_videos(region_code: str = 'US', video_category_id: str = '0', max_results: int = 10): 指定した地域またはカテゴリで現在トレンドになっている人気動画を一覧表示します。
コントリビューション
コントリビューションを歓迎します!改善案やバグ修正があれば、Issue やプルリクエストをお気軽に送信してください。
ライセンス
このプロジェクトは MIT License のもとでライセンスされています。詳細は LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。