MCP TTS Server について
MCP TTS Serverは、ローカルのKokoro TTSとクラウド型のOpenAI TTSでテキストを音声に変換します。音声設定が必要なMCP対応アシスタント向けで、ストリーミング再生、速度調整、再生制御に対応しています。
主な機能
- 01KokoroとOpenAI TTSを共通インターフェースで利用
- 02音声のストリーミング再生
- 03音声と再生速度の設定
- 04OpenAI向けの自然言語による音声指示
- 05再生停止とキューの消去
活用シーン
- 01Kokoroで生成テキストを読み上げ
- 02カスタム音声指示でOpenAI TTSを利用
- 03音声や再生速度を調整
- 04再生を停止して待機中の音声を消去
MCP 対応
音声生成、再生停止、音声例、TTS指示を取得するツールをMCP対応クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP TTS サーバー
Model Context Protocol(MCP)フレームワーク上に構築された、多機能な TTS(テキスト読み上げ)サーバーです。このサーバーは、統一されたインターフェースを通じて複数の TTS エンジンを利用できます。
- Kokoro TTS - 高品質なローカル TTS エンジン
- OpenAI TTS - OpenAI の API を利用するクラウドベースの TTS
特徴
- 🌐 複数の TTS エンジンを単一のサーバーに統合
- 🎧 リアルタイムのストリーミング音声再生
- 🔄 Claude やその他の LLM とシームレスに統合できる MCP プロトコル対応
- 🎛️ 両エンジンで音声を選択可能
- 💬 自然言語の指示による音声のカスタマイズに対応(OpenAI)
- ⚡ 両 TTS エンジンの再生速度を調整可能
- 🛑 音声の停止とキューのクリアに対応した再生制御
インストール
前提条件
- Python 3.10 以降
- uv パッケージマネージャー
- OpenAI API キー(OpenAI TTS 機能を使用する場合)
クイックインストール
# Clone the repository
git clone https://github.com/kristofferv98/MCP_tts_server.git
cd MCP_tts_server
# Create a virtual environment and install dependencies
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -e .
設定
付属の .env.example を基に .env ファイルを作成します。
cp .env.example .env
.env ファイルを編集して、OpenAI API キーを追加します。
OPENAI_API_KEY=your_openai_api_key_here
Claude Desktop との統合
このサーバーを Claude Desktop で使用するには、次の手順に従います。
-
サーバーをインストールします。
fastmcp install ./tts_mcp.py --name tts -
または、Claude Desktop の設定ファイルにサーバーを手動で追加できます。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
mcpServersセクションに次の項目を追加します。"kokoro_tts": { "command": "uv", "args": [ "--directory", "/path/to/MCP_tts_server", "run", "tts_mcp.py" ] }uv のフルパスを使用する設定例:
"kokoro_tts": { "command": "/Users/username/.local/bin/uv", "args": [ "--directory", "/Users/username/Documents/MCP_Servers/MCP_tts_server", "run", "tts_mcp.py" ] } - macOS:
MCP 関数の定義
このサーバーは、次の MCP ツールを公開します。
メインの TTS 関数
{
"description": "Convert text to speech using the preferred engine and streams the speech to the user. The base voice for the AI is the Kokoro engine, to keep AI's personality consistent. This unified function provides access to both Kokoro TTS (local) and OpenAI TTS (cloud API).",
"name": "tts",
"parameters": {
"properties": {
"text": {"title": "Text", "type": "string"},
"engine": {"default": "kokoro", "title": "Engine", "type": "string"},
"speed": {"default": 1, "title": "Speed", "type": "number"},
"voice": {"default": "", "title": "Voice", "type": "string"},
"instructions": {"default": "", "title": "Instructions", "type": "string"}
},
"required": ["text"]
}
}
パラメーター:
- text(必須):音声に変換するテキスト
- engine(任意):使用する TTS エンジン。「kokoro」(デフォルト、ローカル)または「openai」(クラウド)
- speed(任意):再生速度(一般的な範囲は 0.8~1.5)
- voice(任意):使用する音声名(エンジンによって異なります)
- instructions(任意):OpenAI TTS の音声カスタマイズ指示
再生停止関数
{
"description": "Stops the currently playing audio (if any) and clears all pending TTS requests from the queue. Relies on the background worker detecting the cancellation signal.",
"name": "tts_stop_playback_and_clear_queue",
"parameters": {
"properties": {}
}
}
音声の例を取得する関数
{
"description": "Provides research-based examples of effective voice instructions for OpenAI TTS.",
"name": "tts_examples",
"parameters": {
"properties": {
"category": {"default": "general", "title": "Category", "type": "string"}
}
}
}
カテゴリー:
- 一般
- アクセント
- キャラクター
- 感情
- ナレーション
TTS の指示を取得する関数
{
"description": "Fetches TTS instructions by calling get_voice_info.",
"name": "get_tts_instructions",
"parameters": {
"properties": {}
}
}
直接使用
このサーバーは、上記のとおり Claude Desktop またはその他の MCP 対応の統合を通じて使用するのが基本です。ただし、テスト目的でサーバーを直接実行することもできます。
# Run with the uv environment manager
uv run python tts_mcp.py
# Or use the simplified Kokoro-only version
uv run python simple_tts_mcp.py
これにより MCP サーバーが起動し、接続できる状態になります。
利用可能な音声
Kokoro TTS
- デフォルトの音声:
af_heart
OpenAI TTS
- 利用可能な音声:
alloy、ash、ballad、coral、echo、fable、onyx、nova、sage、shimmer - デフォルトのモデル:
gpt-4o-mini-tts
開発とテスト
開発中にサーバーをローカルでテストするには、次のコマンドを実行します。
fastmcp dev ./tts_mcp.py
MCP Inspector インターフェースが起動し、サーバーの機能をテストできます。
実装の詳細
このサーバーは FastMCP を使用して実装されており、MCP サーバー開発のベストプラクティスに従っています。
- 統一インターフェース:単一の関数で Kokoro と OpenAI の両エンジンに対応
- ストリーミング対応:可能な場合、音声をクライアントに直接ストリーミング
- フォールバック機構:ストリーミングを利用できない場合は、ファイルベースで再生
- 音声のカスタマイズ:OpenAI TTS で自然言語による指示に対応
- ライフサイクル管理:リソースを適切に初期化し、クリーンアップ
トラブルシューティング
- 音声が出力されない:システムのオーディオ設定を確認してください
- OpenAI TTS の失敗:API キーが有効で、TTS のアクセス権限があることを確認してください
- サーバーが見つからない:MCP ホストに MCP サーバーが正しく登録されていることを確認してください
ライセンス
このプロジェクトは Apache License 2.0 の下でライセンスされています。詳細は LICENSE ファイルをご覧ください。
貢献
貢献を歓迎します。お気軽にプルリクエストを送信してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。