Luma MCP Server

<div align="center"> <img src="assets/header2.svg" alt="Luma MCP Server" width="100%" /> # Luma MCP Server Luma AIのビデオ生成APIをModel Context Protocol (MCP)として提供するサーバー </div> ## 🌟 概要 Luma MCP Serverは、Luma AIのビデオ生成機能をMCPサーバーとして提供します。テキストや画像からビデオを生成したり、既存のビデオを拡張・補間したりする機能を提供します。 ## 🏗️ プロジェクト構造 ``` src/ ├── types/ - 型定義 │ ├── schemas.ts - 入力スキーマ │ └── types.ts - 共通型定義 ├── services/ - ビジネスロジック ├── handlers/ - リクエストハンドラー │ └── tool-handlers.ts ├── clients/ - 外部APIクライアント │ └── luma-client.ts ├── utils/ - ユーティリティ │ └── error-handler.ts ├── config/ - 設定 │ └── server-config.ts └── index.ts - エントリーポイント ``` ## 📦 インストール ```bash npm install @sunwood-ai-labs/luma-mcp-server ``` ## ⚙️ 環境設定 1. Luma APIキーの取得 - [Luma AI Developer Portal](https://lumalabs.ai/dream-machine/api/keys)からAPIキーを取得してください。 2. 環境変数の設定 ```bash export LUMA_API_KEY=your_api_key_here ``` ## 🛠️ 使用可能なツール ### generate_video テキストプロンプトからビデオを生成します。 ```typescript { name: 'generate_video', arguments: { prompt: "A teddy bear in sunglasses playing electric guitar and dancing", loop: true, // オプション callback_url: "https://your-callback-url.com" // オプション } } ``` ### generate_video_from_image 画像を開始フレームとしてビデオを生成します。 ```typescript { name: 'generate_video_from_image', arguments: { prompt: "Low-angle shot of a majestic tiger prowling through a snowy landscape", image_url: "https://your-image-url.com/start-frame.jpg", loop: true, // オプション callback_url: "https://your-callback-url.com" // オプション } } ``` ### extend_video 既存のビデオを拡張します。 ```typescript { name: 'extend_video', arguments: { prompt: "Continue the dance sequence", source_generation_id: "existing-video-generation-id", loop: true, // オプション callback_url: "https://your-callback-url.com" // オプション } } ``` ### interpolate_videos 2つのビデオ間をスムーズに補間します。 ```typescript { name: 'interpolate_videos', arguments: { prompt: "Create a smooth transition between the videos", start_generation_id: "first-video-generation-id", end_generation_id: "second-video-generation-id", callback_url: "https://your-callback-url.com" // オプション } } ``` ## 🔧 開発者向け情報 ### アーキテクチャ - **型定義 (`types/`)**: - `schemas.ts`: Zodを使用した入力バリデーションスキーマ - `types.ts`: 共通の型定義とインターフェース - **ハンドラー (`handlers/`)**: - `tool-handlers.ts`: MCPツールのリクエスト処理 - **クライアント (`clients/`)**: - `luma-client.ts`: Luma AI APIとの通信を担当 - **ユーティリティ (`utils/`)**: - `error-handler.ts`: 統一的なエラー処理 - **設定 (`config/`)**: - `server-config.ts`: サーバー設定の一元管理 ### エラーハンドリング - 統一的なエラー処理システム - MCPエラーコードへの適切なマッピング - 詳細なエラーメッセージとロギング ## 📝 注意事項 - プロンプトは英語で記述してください - ビデオ生成には時間がかかる場合があります - APIの利用制限に注意してください ## 🤝 コントリビューション 1. このリポジトリをフォーク 2. 新しいブランチを作成 (`git checkout -b feature/amazing-feature`) 3. 変更をコミット (`git commit -m '✨ feat: Add amazing feature'`) 4. ブランチをプッシュ (`git push origin feature/amazing-feature`) 5. プルリクエストを作成 ## 📄 ライセンス MIT License - 詳細は [LICENSE](LICENSE) ファイルを参照してください。