@arrow2nd/vv-mcp
Version: 
VOICEVOX MCP Server for text-to-speech synthesis with Claude
141 lines (103 loc) • 4.12 kB
Markdown
# vv-mcp
VOICEVOX MCP Server - Claude DesktopとClaude Codeで音声合成を利用するためのMCPサーバー
> [!WARNING]
> このMCPサーバーは現在 **macOSのみ** 対応しています。音声再生に`afplay`コマンドを使用しているため、他のOSでは動作しません。
## 必要要件
- Node.js 18以上
- [VOICEVOX](https://voicevox.hiroshiba.jp/)がインストールされ、起動していること
- macOS(音声再生のため)
## インストール
### npmからインストール(推奨)
```bash
npm install -g @arrow2nd/vv-mcp
```
### ソースからビルド
```bash
git clone https://github.com/arrow2nd/vv-mcp.git
cd vv-mcp
npm install
npm run build
```
## Claude Desktop / Claude Codeでの設定
`~/Library/Application Support/Claude/claude_desktop_config.json`を編集:
### npmでインストールした場合
```json
{
  "mcpServers": {
    "vv-mcp": {
      "command": "npx",
      "args": ["-y", "@arrow2nd/vv-mcp"],
      "env": {
        "VOICEVOX_URL": "http://localhost:50021",
        "DEFAULT_VOICE_ID": "47",
        "DEFAULT_SPEED": "1.0"
      }
    }
  }
}
```
### ソースからビルドした場合
```json
{
  "mcpServers": {
    "vv-mcp": {
      "command": "node",
      "args": ["/path/to/vv-mcp/dist/index.js"],
      "env": {
        "VOICEVOX_URL": "http://localhost:50021",
        "DEFAULT_VOICE_ID": "47",
        "DEFAULT_SPEED": "1.0"
      }
    }
  }
}
```
## 使用方法
Claude Desktop/Codeを再起動後、以下のMCPツールが利用可能になります:
### 利用可能なツール
- `say` - テキストを音声合成して再生(非同期実行)
- `list_voices` - 利用可能な音声一覧を取得
- `get_queue_status` - 再生キューの状態を確認
- `clear_queue` - 再生キューをクリア
- `get_voices_in_use` - 現在使用中の音声IDのリストを取得(全プロセス共通)
- `get_random_unused_voice` - 使用されていない音声をランダムに1つ取得
- `get_session_voice` - このセッションで使用する音声を取得(セッション毎に固定)
### 使用例
```
「こんにちは」と言って
```
```
ナースロボの楽々な声で「完了しました」と言って
```
```
利用可能な音声を教えて
```
## セッション音声機能
各Claudeセッションに固定の音声を自動割り当てする機能があります:
### 使用方法
```
# セッション音声を使用して読み上げ
"こんにちは"とセッション音声で言って
```
### sayツールのパラメータ
- `useSessionVoice: true` - セッション音声を使用(voiceIdは無視される)
- `useSessionVoice: false`(デフォルト) - 指定した音声IDまたはデフォルト音声を使用
### 仕組み
- セッション開始時に自動的に音声を選択
- 他のセッションと重複しない音声を優先的に選択
- 全音声が使用中の場合は使用頻度の低い音声を選択
- セッション終了時に自動的に音声を解放
## 複数インスタンス対応
複数のClaude Desktop/Codeが同時に動作している場合、自動的に異なる音声を使用して音声の重複を避けます。
- 各プロセスで使用中の音声情報を共有
- `get_random_unused_voice`ツールで未使用の音声を自動選択
- 一時ディレクトリに状態ファイルを作成して情報を共有
## 環境変数
| 変数名              | デフォルト値           | 説明                                     |
| ------------------- | ---------------------- | ---------------------------------------- |
| VOICEVOX_URL        | http://localhost:50021 | VOICEVOX APIのURL                        |
| DEFAULT_VOICE_ID    | 47                     | デフォルトの音声ID (ナースロボ_タイプT) |
| DEFAULT_SPEED       | 1.0                    | デフォルトの話速                         |
| VV_MCP_STATE_DIR    | システム一時ディレクトリ | 共有状態ファイルの保存ディレクトリ       |
## ライセンス
MIT