MCP Media Server について
MCP Media Serverは、動画のダウンロードと処理を行うPythonサーバーで、メタデータ保存とベクトル検索にも対応します。YouTube、FFmpeg、Supabase、Pineconeを利用するAIアシスタントやメディアワークフロー向けです。
主な機能
- 01yt-dlpによるYouTube動画のダウンロード
- 02FFmpegによる動画処理
- 03Supabaseへのメタデータ保存
- 04Pineconeによるベクトル検索
- 05バッチ処理と進捗管理
- 06REST APIとWebhook対応
活用シーン
- 01YouTube動画のダウンロードと処理
- 02メディアメタデータの保存
- 03動画コンテンツのセマンティック検索
- 04メディア処理のバッチ実行
MCP 対応
メディア処理機能をMCPクライアントに公開し、標準ではstdio、別の転送方式としてSSEを利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Media Server
Python で構築された、メディア処理用のカスタム MCP(Model Context Protocol)サーバーです。このサーバーを使用すると、Claude などの AI アシスタントがメディアファイルを操作し、動画を処理して、Supabase および Pinecone と連携し、データを保存したりベクトル検索を行ったりできます。
機能
主な機能
- yt-dlp を使用した YouTube 動画のダウンロード
- FFmpeg による動画処理
- メタデータ保存のための Supabase 連携
- ベクトル検索のための Pinecone 連携
- AI アシスタント連携のための MCP サーバー
高度な機能
- 長時間実行される操作の進捗追跡
- 通知用の Webhook 対応
- 複数ファイルのバッチ処理
- パフォーマンス向上のためのキャッシュ
- API 保護のためのレート制限
- ユーザー認証と API キー管理
- メンテナンス用のスケジュールタスク
- RESTful API ゲートウェイ
- Docker による継続稼働
- 開発 IDE(Roo Code および Windsurf)との連携
前提条件
- Python 3.10 以降
- FFmpeg
- Supabase アカウント
- Pinecone アカウント
- OpenAI API キー(埋め込み用)
- Docker および Docker Compose(コンテナ化されたデプロイ用)
インストール
オプション 1:手動セットアップ
-
リポジトリをクローンします:
git clone https://github.com/yourusername/mcp-media-server.git cd mcp-media-server -
仮想環境を作成します:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate -
依存関係をインストールします:
pip install -r requirements.txt -
サンプルの環境ファイルをコピーして編集し、サーバーを設定します:
cp .env.example .env -
.envファイルを編集して、API キーと設定を追加します。
オプション 2:Docker セットアップ
-
リポジトリをクローンします:
git clone https://github.com/yourusername/mcp-media-server.git cd mcp-media-server -
サンプルの環境ファイルをコピーして編集し、サーバーを設定します:
cp .env.example .env -
.envファイルを編集して、API キーと設定を追加します。 -
Docker コンテナをビルドして起動します:
docker-compose up -d
使い方
MCP サーバーの実行
MCP サーバーを実行するには:
python main.py
サーバーはデフォルトで stdio トランスポートを使用し、Claude Desktop やその他の MCP クライアントと直接連携します。
SSE トランスポートでの起動
Server-Sent Events(SSE)トランスポートでサーバーを実行するには:
python main.py --transport sse
API サーバーの実行
MCP サーバーと並行して API サーバーを実行するには:
python main.py --api
SSE と API サーバーの両方を起動
SSE トランスポートと API サーバーの両方を実行するには:
python main.py --transport sse --api
Docker による継続稼働
本番環境で 24 時間 365 日稼働させるには:
-
Docker Compose を使用してデプロイします:
docker-compose up -d -
自動再起動と監視を設定します:
# Make scripts executable chmod +x deploy.sh monitor.sh generate_api_key.sh # Deploy with health checks ./deploy.sh # Add monitoring to crontab (runs every 5 minutes) (crontab -l 2>/dev/null; echo "*/5 * * * * /path/to/mcp-media-server/monitor.sh") | crontab - -
システムサービスとして設定します(Linux):
# Copy service file sudo cp mcp-media-server.service /etc/systemd/system/ # Edit the service file to update the path sudo nano /etc/systemd/system/mcp-media-server.service # Enable and start the service sudo systemctl enable mcp-media-server.service sudo systemctl start mcp-media-server.service
IDE 連携(Roo Code および Windsurf)
Windows ユーザーの場合:
- IDE 連携セットアップスクリプトを実行します:
setup_ide_integration.bat
Linux/macOS ユーザーの場合:
-
API キーを生成します:
./generate_api_key.sh -
生成されたキーと
ide-config.jsonの設定を使用して、IDE を設定します。
Claude Desktop との連携
- Claude Desktop アプリを開きます
- 「Settings」に移動します
- 次の設定で新しい MCP サーバーを追加します:
- 名前:MCP Media Server
- コマンド:Python 実行ファイルのパス
- 引数:main.py ファイルのパス
設定例:
{
"mcpServers": {
"mcp-media-server": {
"command": "C:\\path\\to\\venv\\Scripts\\python.exe",
"args": ["C:\\path\\to\\mcp-media-server\\main.py"]
}
}
}
API ドキュメント
API サーバーの実行中は、次の場所から API ドキュメントにアクセスできます:
http://localhost:9000/docs
主な API エンドポイント
/videos/download- YouTube から動画をダウンロードします/videos/process- FFmpeg を使用して動画を処理します/videos/search- YouTube で動画を検索します/videos/vector-search- 動画のセマンティック検索/videos/similar- 類似する動画を検索します
開発
プロジェクト構成
mcp-media-server/
├── src/
│ ├── api/ # RESTful API implementation
│ ├── auth/ # Authentication and security
│ ├── core/ # Core MCP server implementation
│ ├── config/ # Configuration settings
│ ├── db/ # Database integrations
│ ├── services/ # Background services
│ ├── tasks/ # Scheduled tasks
│ ├── tools/ # MCP tools implementation
│ ├── utils/ # Utilities and helpers
│ └── webhooks/ # Webhook handlers
├── downloads/ # Downloaded files
├── processed/ # Processed files
├── thumbnails/ # Generated thumbnails
├── cache/ # Cache files
├── logs/ # Log files
├── .env # Environment variables
├── docker-compose.yml # Docker configuration
├── Dockerfile # Docker build instructions
├── deploy.sh # Deployment script
├── monitor.sh # Health monitoring script
├── generate_api_key.sh # API key generation script
├── mcp-media-server.service # Systemd service file
├── setup_ide_integration.bat # IDE integration for Windows
├── ide-config.json # Configuration for IDE integration
├── main.py # Application entry point
└── requirements.txt # Python dependencies
新しいツールの追加
MCP サーバーに新しいツールを追加するには、src/tools ディレクトリ内の適切なファイルに新しい関数を作成し、@mcp_server.register_tool でデコレートします。
例:
from src.core.server import mcp_server
@mcp_server.register_tool
async def my_new_tool(param1: str, param2: int) -> dict:
"""
Description of the new tool.
Args:
param1: Description of param1
param2: Description of param2
Returns:
Dict containing the result
"""
# Implement the tool functionality
result = {"status": "success", "message": "Tool executed successfully"}
return result
コンテナ管理
ログを表示します:
docker-compose logs -f mcp-server
コンテナの状態を確認します:
docker ps | grep mcp-server
リソースの使用状況を監視します:
docker stats mcp-server
ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細は LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。