音声MCPサーバー
Kokoro TTS モデルを使用してテキスト読み上げ機能を提供するモデル コンテキスト プロトコル サーバー。
構成
サーバーは次の環境変数を使用して構成できます。
変数 | 説明 | デフォルト | 有効範囲 |
---|
MCP_DEFAULT_SPEECH_SPEED | テキスト読み上げのデフォルトの速度乗数 | 1.1 | 0.5から2.0 |
カーソル内:
{
"mcpServers": {
"speech": {
"command": "npx",
"args": [
"-y",
"speech-mcp-server"
],
"env": {
MCP_DEFAULT_SPEECH_SPEED: 1.3
}
}
}
}
特徴
- 🎯 Kokoro TTS モデルを使用した高品質のテキスト読み上げ
- 🗣️ 複数の音声オプションが利用可能
- 🎛️ カスタマイズ可能な音声パラメータ(音声、速度)
- 🔌 MCP準拠インターフェース
- 📦 簡単なインストールとセットアップ
- 🚀 APIキーは不要です
インストール
# Using npm
npm install speech-mcp-server
# Using pnpm (recommended)
pnpm add speech-mcp-server
# Using yarn
yarn add speech-mcp-server
使用法
サーバーを実行します。
# Using default configuration
npm start
# With custom speech speed
MCP_DEFAULT_SPEECH_SPEED=1.5 npm start
サーバーは次の MCP ツールを提供します。
text_to_speech
: 基本的なテキスト読み上げ変換text_to_speech_with_options
: 速度をカスタマイズできるテキスト読み上げlist_voices
: 利用可能なすべての音声を一覧表示するget_model_status
: TTSモデルの初期化ステータスを確認する
発達
# Clone the repository
git clone <your-repo-url>
cd speech-mcp-server
# Install dependencies
pnpm install
# Start development server with auto-reload
pnpm dev
# Build the project
pnpm build
# Run linting
pnpm lint
# Format code
pnpm format
# Test with MCP Inspector
pnpm inspector
利用可能なツール
1. テキスト読み上げ
デフォルト設定を使用してテキストを音声に変換します。
{
"type": "request",
"id": "1",
"method": "call_tool",
"params": {
"name": "text_to_speech",
"arguments": {
"text": "Hello world",
"voice": "af_bella" // optional
}
}
}
2. オプション付きテキスト読み上げ
カスタマイズ可能なパラメータを使用してテキストを音声に変換します。
{
"type": "request",
"id": "1",
"method": "call_tool",
"params": {
"name": "text_to_speech_with_options",
"arguments": {
"text": "Hello world",
"voice": "af_bella", // optional
"speed": 1.0, // optional (0.5 to 2.0)
}
}
}
3. リストボイス
テキスト読み上げに使用できるすべての音声を一覧表示します。
{
"type": "request",
"id": "1",
"method": "list_voices",
"params": {}
}
4. get_model_status
TTSモデルの初期化の現在のステータスを確認します。モデルをダウンロードして初期化する必要があるため、サーバーの初回起動時に特に便利です。
{
"type": "request",
"id": "1",
"method": "call_tool",
"params": {
"name": "get_model_status",
"arguments": {}
}
}
応答例:
{
"content": [{
"type": "text",
"text": "Model status: initializing (5s elapsed)"
}]
}
可能なステータス値:
uninitialized
: モデルの初期化が開始されていませんinitializing
: モデルをダウンロードして初期化していますready
: モデルは使用可能ですerror
: 初期化中にエラーが発生しました
テスト
MCP Inspector を使用するか、生の JSON メッセージを送信してサーバーをテストできます。
# List available tools
echo '{"type":"request","id":"1","method":"list_tools","params":{}}' | node dist/index.js
# List available voices
echo '{"type":"request","id":"2","method":"list_voices","params":{}}' | node dist/index.js
# Convert text to speech
echo '{"type":"request","id":"3","method":"call_tool","params":{"name":"text_to_speech","arguments":{"text":"Hello world","voice":"af_bella"}}}' | node dist/index.js
Claude Desktopとの統合
このサーバーを Claude Desktop で使用するには、Claude Desktop 構成ファイル ( ~/Library/Application Support/Claude/claude_desktop_config.json
) に次の行を追加します。
{
"servers": {
"speech": {
"command": "npx",
"args": ["@decodershq/speech-mcp-server"]
}
}
}
貢献
貢献を歓迎します!お気軽にプルリクエストを送信してください。
ライセンス
MIT ライセンス - 詳細についてはLICENSEファイルを参照してください。
トラブルシューティング
モデルの初期化の問題
サーバーは起動時に自動的にTTSモデルのダウンロードと初期化を試みます。初期化エラーが発生した場合は、以下の手順に従ってください。
- サーバーは、試行の間にクリーンアップを行いながら、最大3回まで自動的に再試行します。
get_model_status
ツールを使用して、初期化の進行状況とエラーを監視します。- すべての再試行後も初期化が失敗した場合は、モデル ファイルを手動で削除してみてください。
# Remove model files (MacOS/Linux)
rm -rf ~/.npm/_npx/**/node_modules/@huggingface/transformers/.cache/onnx-community/Kokoro-82M-v1.0-ONNX/onnx/model_quantized.onnx
rm -rf ~/.cache/huggingface/transformers/onnx-community/Kokoro-82M-v1.0-ONNX/onnx/model_quantized.onnx
# Then restart the server
npm start
get_model_status
ツールの応答に再試行情報が含まれるようになりました。
{
"content": [{
"type": "text",
"text": "Model status: initializing (5s elapsed, retry 1/3)"
}]
}