プロジェクト ジェシカ (ElevenLabs TTS MCP)
このプロジェクトは、ElevenLabsのテキスト読み上げ機能を、モデルコンテキストプロトコル(MCP)を介してCursorに統合します。FastAPIバックエンドサービスとReactフロントエンドアプリケーションで構成されています。
特徴
ElevenLabs APIを使用したテキスト読み上げ変換
音声の選択と管理
カーソルのMCP統合
モダンなReactフロントエンドインターフェース
WebSocketリアルタイム通信
コード品質のための事前コミットフック
自動コードフォーマットとリンティング
Related MCP server: Cursor DB MCP Server
プロジェクト構造
要件
Python 3.11以上
Poetry(バックエンドの依存関係管理用)
Node.js 18+(フロントエンド用)
カーソル(MCP統合用)
ローカル開発のセットアップ
バックエンドのセットアップ
フロントエンドのセットアップ
開発サーバー
バックエンドの開始
バックエンドは以下を提供します:
REST API: http://localhost:9020
WebSocket: ws://localhost:9020/ws
MCP サーバー: http://localhost:9020/sse (メイン API サーバーと統合)
フロントエンドの開始
フロントエンド開発サーバー:
環境設定
バックエンド (.env)
フロントエンド (.env)
コード品質ツール
バックエンド
フロントエンド
本番環境への展開
AWS ECRとGitHub Actionsのセットアップ
Docker イメージの自動ビルドと Amazon ECR へのプッシュを有効にするには:
必要な AWS リソースを作成するには、Terraform 構成を適用します。
cd terraform terraform init terraform applyGitHub Actions ワークフローは自動的に次の処理を実行します。
S3のTerraform状態から必要な構成を読み取ります
mainまたはdevelopブランチへのプッシュ時にDockerイメージをビルドするlatestのタグと特定のコミット SHA を付けてイメージを ECR にプッシュします。
追加のリポジトリ変数は必要ありません。ワークフローは、必要なすべての構成を Terraform 状態から取得します。
仕組み
GitHub Actions ワークフローは次のように構成されています。
最初にS3の読み取り権限を持つ定義済みのIAMロールを引き受ける
S3 の Terraform 状態ファイルから設定値を取得して抽出する
状態ファイルから実際の展開ロールを使用して再認証します
Dockerイメージをビルドし、状態で定義されたECRリポジトリにプッシュします。
このアプローチにより、GitHub リポジトリ変数を手動で構成する必要がなくなり、CI/CD プロセスで常に現在のインフラストラクチャ構成が使用されるようになります。
概要
フロントエンド: jessica.georgi.io の CloudFront 経由で S3 から提供
バックエンド API: api.georgi.io/jessica で利用可能
WebSocket: api.georgi.io/jessica/ws に接続します
Dockerイメージ: AWS ECRに保存され、ECS/EKSにデプロイ可能
インフラストラクチャ: このリポジトリでは Terraform 経由で管理されます
カーソルを使用したMCP統合
バックエンドサーバーを起動する
カーソル設定で、新しい MCP サーバーを追加します。
名前: ジェシカ TTS
タイプ: SSE
トラブルシューティング
よくある問題
APIキーの問題
エラー:「無効な API キー」
解決策:
.envファイルを確認する
接続の問題
エラー:「MCP サーバーに接続できません」
解決策: バックエンドが実行中であり、ポートが正しいことを確認する
ポート競合
エラー:「アドレスはすでに使用されています」
解決策:
.envのポートを変更する
WebSocket接続に失敗しました
エラー:「WebSocket 接続に失敗しました」
解決策: バックエンドが実行中であることと、WebSocket URL が正しいことを確認してください
さらにサポートが必要な場合は、GitHub で問題を報告してください。
ライセンス
マサチューセッツ工科大学