mcpField
M
MCP Media Server

MCP Media Server

ローカル
github.com/Bzcasperメディア・デザイン077 週間前に更新

MCP Media Server について

MCP Media Serverは、動画のダウンロードと処理を行うPythonサーバーで、メタデータ保存とベクトル検索にも対応します。YouTube、FFmpeg、Supabase、Pineconeを利用するAIアシスタントやメディアワークフロー向けです。

主な機能

  1. 01yt-dlpによるYouTube動画のダウンロード
  2. 02FFmpegによる動画処理
  3. 03Supabaseへのメタデータ保存
  4. 04Pineconeによるベクトル検索
  5. 05バッチ処理と進捗管理
  6. 06REST APIとWebhook対応

活用シーン

  1. 01YouTube動画のダウンロードと処理
  2. 02メディアメタデータの保存
  3. 03動画コンテンツのセマンティック検索
  4. 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:手動セットアップ
  1. リポジトリをクローンします:

    git clone https://github.com/yourusername/mcp-media-server.git
    cd mcp-media-server
    
  2. 仮想環境を作成します:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. 依存関係をインストールします:

    pip install -r requirements.txt
    
  4. サンプルの環境ファイルをコピーして編集し、サーバーを設定します:

    cp .env.example .env
    
  5. .env ファイルを編集して、API キーと設定を追加します。

オプション 2:Docker セットアップ
  1. リポジトリをクローンします:

    git clone https://github.com/yourusername/mcp-media-server.git
    cd mcp-media-server
    
  2. サンプルの環境ファイルをコピーして編集し、サーバーを設定します:

    cp .env.example .env
    
  3. .env ファイルを編集して、API キーと設定を追加します。

  4. 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 日稼働させるには:

  1. Docker Compose を使用してデプロイします:

    docker-compose up -d
    
  2. 自動再起動と監視を設定します:

    # 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 -
    
  3. システムサービスとして設定します(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 ユーザーの場合:

  1. IDE 連携セットアップスクリプトを実行します:
    setup_ide_integration.bat
    

Linux/macOS ユーザーの場合:

  1. API キーを生成します:

    ./generate_api_key.sh
    
  2. 生成されたキーと ide-config.json の設定を使用して、IDE を設定します。

Claude Desktop との連携
  1. Claude Desktop アプリを開きます
  2. 「Settings」に移動します
  3. 次の設定で新しい 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 ファイルを参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。