@kajidog/mcp-tts-voicevox 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,306 +1,357 @@
1
- # MCP TTS VOICEVOX
2
-
3
- VOICEVOX を使用した音声合成 MCP サーバー
4
-
5
- ## 特徴
6
-
7
- - **高度な再生制御** - キュー管理・即時再生・同期/非同期制御による柔軟な音声処理
8
- - **プリフェッチ** - 次の音声を事前に生成し、再生をスムーズに
9
- - **クロスプラットフォーム対応** - Windows、macOS、Linux で動作
10
- - **Stdio/HTTP 対応** - Claude Desktop(Stdio)や Web API(HTTP)に対応
11
- - **複数話者対応** - セグメント単位での個別話者指定が可能
12
- - **テキスト自動分割** - 長文の自動分割による安定した音声合成
13
- - **独立したクライアントライブラリ** - [`@kajidog/voicevox-client`](https://www.npmjs.com/package/@kajidog/voicevox-client) として別パッケージで提供
14
-
15
- ## 必要条件
16
-
17
- - Node.js 18.0.0 以上
18
- - [VOICEVOX エンジン](https://voicevox.hiroshiba.jp/) または互換エンジン
19
-
20
- ## インストール
21
-
22
- ```bash
23
- npm install -g @kajidog/mcp-tts-voicevox
24
- ```
25
-
26
- ## 使い方
27
-
28
- ### MCP サーバーとして
29
-
30
- #### 1. VOICEVOX エンジンを起動
31
-
32
- VOICEVOX エンジンを起動し、デフォルトポート(`http://localhost:50021`)で待機状態にします。
33
-
34
- #### 2. MCP サーバーを起動
35
-
36
- **標準入出力モード(推奨):**
37
-
38
- ```bash
39
- npx @kajidog/mcp-tts-voicevox
40
- ```
41
-
42
- **HTTP サーバーモード:**
43
-
44
- ```bash
45
- # Linux/macOS
46
- MCP_HTTP_MODE=true npx @kajidog/mcp-tts-voicevox
47
-
48
- # Windows PowerShell
49
- $env:MCP_HTTP_MODE='true'; npx @kajidog/mcp-tts-voicevox
50
- ```
51
-
52
- ## MCP ツール
53
-
54
- ### `speak` - テキスト読み上げ
55
-
56
- テキストを音声に変換して再生します。
57
-
58
- **パラメータ:**
59
-
60
- - `text`: 文字列(改行区切りで複数テキスト、話者指定は「1:テキスト」形式)
61
- - `speaker` (オプション): 話者 ID
62
- - `speedScale` (オプション): 再生速度
63
- - `immediate` (オプション): 即座に再生開始するか(デフォルト: true)
64
- - `waitForStart` (オプション): 再生開始まで待機するか(デフォルト: false)
65
- - `waitForEnd` (オプション): 再生終了まで待機するか(デフォルト: false)
66
-
67
- **使用例:**
68
-
69
- ```javascript
70
- // シンプルなテキスト
71
- { "text": "こんにちは\n今日はいい天気ですね" }
72
-
73
- // 話者指定
74
- { "text": "こんにちは", "speaker": 3 }
75
-
76
- // セグメント別話者指定
77
- { "text": "1:こんにちは\n3:今日はいい天気ですね" }
78
-
79
- // 即座に再生(キューを迂回)
80
- {
81
- "text": "緊急メッセージです",
82
- "immediate": true,
83
- "waitForEnd": true
84
- }
85
-
86
- // 再生終了まで待機(同期処理)
87
- {
88
- "text": "この音声の再生が完了するまで次の処理を待機",
89
- "waitForEnd": true
90
- }
91
-
92
- // キューに追加するが自動再生しない
93
- {
94
- "text": "手動で再生開始するまで待機",
95
- "immediate": false
96
- }
97
- ```
98
-
99
- ### 高度な再生制御機能
100
-
101
- #### 即時再生(`immediate: true`)
102
-
103
- キューを迂回して音声を即座に再生:
104
-
105
- - **通常のキューと並行動作**: 既存のキュー再生を妨げません
106
- - **複数同時再生**: 複数の即時再生を同時に実行可能
107
- - **緊急通知に最適**: 重要なメッセージを優先的に再生
108
-
109
- #### 同期再生制御(`waitForEnd: true`)
110
-
111
- 再生完了まで待機して処理を同期化:
112
-
113
- - **順次処理**: 音声再生後に次の処理を実行
114
- - **タイミング制御**: 音声と他の処理の連携が可能
115
- - **UI 同期**: 画面表示と音声のタイミングを合わせる
116
-
117
- ```javascript
118
- // 例1: 緊急メッセージを即座に再生し、完了まで待機
119
- {
120
- "text": "緊急!すぐに確認してください",
121
- "immediate": true,
122
- "waitForEnd": true
123
- }
124
-
125
- // 例2: ステップバイステップの音声ガイド
126
- {
127
- "text": "手順1: ファイルを開いてください",
128
- "waitForEnd": true
129
- }
130
- // 上記の音声が完了してから次の処理が実行される
131
- ```
132
-
133
- ### その他のツール
134
-
135
- - `generate_query` - 音声合成用クエリを生成
136
- - `synthesize_file` - 音声ファイルを生成
137
- - `stop_speaker` - 再生停止・キュークリア
138
- - `get_speakers` - 話者一覧取得
139
- - `get_speaker_detail` - 話者詳細取得
140
-
141
- ## パッケージ構成
142
-
143
- ### @kajidog/mcp-tts-voicevox (このパッケージ)
144
-
145
- - **MCP サーバー** - Claude Desktop 等の MCP クライアントと通信
146
- - **HTTP サーバー** - REST API 提供
147
-
148
- ### [@kajidog/voicevox-client](https://www.npmjs.com/package/@kajidog/voicevox-client) (独立パッケージ)
149
-
150
- - **汎用ライブラリ** - VOICEVOX エンジンとの通信機能
151
- - **クロスプラットフォーム** - Node.js、ブラウザ環境対応
152
- - **高度な再生制御** - 即時再生・同期再生・キュー管理機能
153
-
154
- ## MCP 設定例
155
-
156
- ### Claude Desktop での設定
157
-
158
- `claude_desktop_config.json` ファイルに以下の設定を追加:
159
-
160
- ```json
161
- {
162
- "mcpServers": {
163
- "tts-mcp": {
164
- "command": "npx",
165
- "args": ["-y", "@kajidog/mcp-tts-voicevox"]
166
- }
167
- }
168
- }
169
- ```
170
-
171
- #### SSE モードが必要な場合
172
-
173
- SSE モードでの音声合成が必要な場合は、`mcp-remote` を使用して SSE↔Stdio 変換を行えます:
174
-
175
- 1. **Claude Desktop 設定**
176
-
177
- ```json
178
- {
179
- "mcpServers": {
180
- "tts-mcp-proxy": {
181
- "command": "npx",
182
- "args": ["-y", "mcp-remote", "http://localhost:3000/sse"]
183
- }
184
- }
185
- }
186
- ```
187
-
188
- 2. **SSE サーバーの起動**
189
-
190
- **Mac/Linux:**
191
-
192
- ```bash
193
- MCP_HTTP_MODE=true MCP_HTTP_PORT=3000 npx @kajidog/mcp-tts-voicevox
194
- ```
195
-
196
- **Windows:**
197
-
198
- ```powershell
199
- $env:MCP_HTTP_MODE='true'; $env:MCP_HTTP_PORT='3000'; npx @kajidog/mcp-tts-voicevox
200
- ```
201
-
202
- ````
203
-
204
- ### AivisSpeech での設定例
205
-
206
- ```json
207
- {
208
- "mcpServers": {
209
- "tts-mcp": {
210
- "command": "npx",
211
- "args": ["-y", "@kajidog/mcp-tts-voicevox"],
212
- "env": {
213
- "VOICEVOX_URL": "http://127.0.0.1:10101",
214
- "VOICEVOX_DEFAULT_SPEAKER": "888753764"
215
- }
216
- }
217
- }
218
- }
219
- ````
220
-
221
- ### HTTP モードでの設定
222
-
223
- ```json
224
- {
225
- "mcpServers": {
226
- "tts-mcp-http": {
227
- "command": "npx",
228
- "args": ["-y", "@kajidog/mcp-tts-voicevox"],
229
- "env": {
230
- "MCP_HTTP_MODE": "true",
231
- "MCP_HTTP_PORT": "3000",
232
- "MCP_HTTP_HOST": "0.0.0.0",
233
- "VOICEVOX_URL": "http://localhost:50021",
234
- "VOICEVOX_DEFAULT_SPEAKER": "1"
235
- }
236
- }
237
- }
238
- }
239
- ```
240
-
241
- ## 環境変数
242
-
243
- ### VOICEVOX 設定
244
-
245
- - `VOICEVOX_URL`: VOICEVOX エンジンの URL(デフォルト: `http://localhost:50021`)
246
- - `VOICEVOX_DEFAULT_SPEAKER`: デフォルト話者 ID(デフォルト: `1`)
247
- - `VOICEVOX_DEFAULT_SPEED_SCALE`: デフォルト再生速度(デフォルト: `1.0`)
248
-
249
- ### 再生オプション設定
250
-
251
- - `VOICEVOX_DEFAULT_IMMEDIATE`: キュー追加時に即座に再生開始するか(デフォルト: `true`)
252
- - `VOICEVOX_DEFAULT_WAIT_FOR_START`: 再生開始まで待機するか(デフォルト: `false`)
253
- - `VOICEVOX_DEFAULT_WAIT_FOR_END`: 再生終了まで待機するか(デフォルト: `false`)
254
-
255
- **使用例:**
256
-
257
- ```bash
258
- # 例1: 全ての音声再生で完了まで待機(同期処理)
259
- export VOICEVOX_DEFAULT_WAIT_FOR_END=true
260
- npx @kajidog/mcp-tts-voicevox
261
-
262
- # 例2: 再生開始と終了の両方を待機
263
- export VOICEVOX_DEFAULT_WAIT_FOR_START=true
264
- export VOICEVOX_DEFAULT_WAIT_FOR_END=true
265
- npx @kajidog/mcp-tts-voicevox
266
-
267
- # 例3: 手動制御(自動再生無効)
268
- export VOICEVOX_DEFAULT_IMMEDIATE=false
269
- npx @kajidog/mcp-tts-voicevox
270
- ```
271
-
272
- これらのオプションにより、アプリケーションの要件に応じて音声再生の挙動を細かく制御できます。
273
-
274
- ### サーバー設定
275
-
276
- - `MCP_HTTP_MODE`: HTTP サーバーモードの有効化(`true` で有効)
277
- - `MCP_HTTP_PORT`: HTTP サーバーのポート番号(デフォルト: `3000`)
278
- - `MCP_HTTP_HOST`: HTTP サーバーのホスト(デフォルト: `0.0.0.0`)
279
-
280
- ## トラブルシューティング
281
-
282
- ### よくある問題
283
-
284
- 1. **VOICEVOX エンジンが起動していない**
285
-
286
- ```bash
287
- curl http://localhost:50021/speakers
288
- ```
289
-
290
- 2. **音声が再生されない**
291
-
292
- - システムの音声出力デバイスを確認
293
- - プラットフォーム固有の音声再生ツールの確認:
294
- - **Linux**: `aplay`, `paplay`, `play`, `ffplay` のいずれかが必要
295
- - **macOS**: `afplay` (標準でインストール済み)
296
- - **Windows**: PowerShell (標準でインストール済み)
297
-
298
- 3. **MCP クライアントで認識されない**
299
- - パッケージのインストールを確認:`npm list -g @kajidog/mcp-tts-voicevox`
300
- - 設定ファイルの JSON 構文を確認
301
-
302
- ## ライセンス
303
-
304
- ISC
305
-
306
- [![MseeP.ai Security Assessment Badge](https://mseep.net/pr/kajidog-mcp-tts-voicevox-badge.png)](https://mseep.ai/app/kajidog-mcp-tts-voicevox)
1
+ # MCP TTS VOICEVOX
2
+
3
+ VOICEVOX を使用した音声合成 MCP サーバー
4
+
5
+ ## 特徴
6
+
7
+ - **高度な再生制御** - キュー管理・即時再生・同期/非同期制御による柔軟な音声処理
8
+ - **プリフェッチ** - 次の音声を事前に生成し、再生をスムーズに
9
+ - **クロスプラットフォーム対応** - Windows、macOS、Linux で動作(WSL環境での音声再生にも対応)
10
+ - **Stdio/HTTP 対応** - Stdio SSE、StreamableHttp に対応
11
+ - **複数話者対応** - セグメント単位での個別話者指定が可能
12
+ - **テキスト自動分割** - 長文の自動分割による安定した音声合成
13
+ - **独立したクライアントライブラリ** - [`@kajidog/voicevox-client`](https://www.npmjs.com/package/@kajidog/voicevox-client) として別パッケージで提供
14
+
15
+ ## 必要条件
16
+
17
+ - Node.js 18.0.0 以上
18
+ - [VOICEVOX エンジン](https://voicevox.hiroshiba.jp/) または互換エンジン
19
+
20
+ ## インストール
21
+
22
+ ```bash
23
+ npm install -g @kajidog/mcp-tts-voicevox
24
+ ```
25
+
26
+ ## 使い方
27
+
28
+ ### MCP サーバーとして
29
+
30
+ #### 1. VOICEVOX エンジンを起動
31
+
32
+ VOICEVOX エンジンを起動し、デフォルトポート(`http://localhost:50021`)で待機状態にします。
33
+
34
+ #### 2. MCP サーバーを起動
35
+
36
+ **標準入出力モード(推奨):**
37
+
38
+ ```bash
39
+ npx @kajidog/mcp-tts-voicevox
40
+ ```
41
+
42
+ **HTTP サーバーモード:**
43
+
44
+ ```bash
45
+ # Linux/macOS
46
+ MCP_HTTP_MODE=true npx @kajidog/mcp-tts-voicevox
47
+
48
+ # Windows PowerShell
49
+ $env:MCP_HTTP_MODE='true'; npx @kajidog/mcp-tts-voicevox
50
+ ```
51
+
52
+ ## MCP ツール
53
+
54
+ ### `speak` - テキスト読み上げ
55
+
56
+ テキストを音声に変換して再生します。
57
+
58
+ **パラメータ:**
59
+
60
+ - `text`: 文字列(改行区切りで複数テキスト、話者指定は「1:テキスト」形式)
61
+ - `speaker` (オプション): 話者 ID
62
+ - `speedScale` (オプション): 再生速度
63
+ - `immediate` (オプション): 即座に再生開始するか(デフォルト: true)
64
+ - `waitForStart` (オプション): 再生開始まで待機するか(デフォルト: false)
65
+ - `waitForEnd` (オプション): 再生終了まで待機するか(デフォルト: false)
66
+
67
+ **使用例:**
68
+
69
+ ```javascript
70
+ // シンプルなテキスト
71
+ { "text": "こんにちは\n今日はいい天気ですね" }
72
+
73
+ // 話者指定
74
+ { "text": "こんにちは", "speaker": 3 }
75
+
76
+ // セグメント別話者指定
77
+ { "text": "1:こんにちは\n3:今日はいい天気ですね" }
78
+
79
+ // 即座に再生(キューを迂回)
80
+ {
81
+ "text": "緊急メッセージです",
82
+ "immediate": true,
83
+ "waitForEnd": true
84
+ }
85
+
86
+ // 再生終了まで待機(同期処理)
87
+ {
88
+ "text": "この音声の再生が完了するまで次の処理を待機",
89
+ "waitForEnd": true
90
+ }
91
+
92
+ // キューに追加するが自動再生しない
93
+ {
94
+ "text": "手動で再生開始するまで待機",
95
+ "immediate": false
96
+ }
97
+ ```
98
+
99
+ ### 高度な再生制御機能
100
+
101
+ #### 即時再生(`immediate: true`)
102
+
103
+ キューを迂回して音声を即座に再生:
104
+
105
+ - **通常のキューと並行動作**: 既存のキュー再生を妨げません
106
+ - **複数同時再生**: 複数の即時再生を同時に実行可能
107
+ - **緊急通知に最適**: 重要なメッセージを優先的に再生
108
+
109
+ #### 同期再生制御(`waitForEnd: true`)
110
+
111
+ 再生完了まで待機して処理を同期化:
112
+
113
+ - **順次処理**: 音声再生後に次の処理を実行
114
+ - **タイミング制御**: 音声と他の処理の連携が可能
115
+ - **UI 同期**: 画面表示と音声のタイミングを合わせる
116
+
117
+ ```javascript
118
+ // 例1: 緊急メッセージを即座に再生し、完了まで待機
119
+ {
120
+ "text": "緊急!すぐに確認してください",
121
+ "immediate": true,
122
+ "waitForEnd": true
123
+ }
124
+
125
+ // 例2: ステップバイステップの音声ガイド
126
+ {
127
+ "text": "手順1: ファイルを開いてください",
128
+ "waitForEnd": true
129
+ }
130
+ // 上記の音声が完了してから次の処理が実行される
131
+ ```
132
+
133
+ ### その他のツール
134
+
135
+ - `generate_query` - 音声合成用クエリを生成
136
+ - `synthesize_file` - 音声ファイルを生成
137
+ - `stop_speaker` - 再生停止・キュークリア
138
+ - `get_speakers` - 話者一覧取得
139
+ - `get_speaker_detail` - 話者詳細取得
140
+
141
+ ## パッケージ構成
142
+
143
+ ### @kajidog/mcp-tts-voicevox (このパッケージ)
144
+
145
+ - **MCP サーバー** - Claude Desktop 等の MCP クライアントと通信
146
+ - **HTTP サーバー** - SSE/StreamableHTTP によるリモート MCP 通信
147
+
148
+ ### [@kajidog/voicevox-client](https://www.npmjs.com/package/@kajidog/voicevox-client) (独立パッケージ)
149
+
150
+ - **汎用ライブラリ** - VOICEVOX エンジンとの通信機能
151
+ - **クロスプラットフォーム** - Node.js、ブラウザ環境対応
152
+ - **高度な再生制御** - 即時再生・同期再生・キュー管理機能
153
+
154
+ ## MCP 設定例
155
+
156
+ ### Claude Desktop での設定
157
+
158
+ `claude_desktop_config.json` ファイルに以下の設定を追加:
159
+
160
+ ```json
161
+ {
162
+ "mcpServers": {
163
+ "tts-mcp": {
164
+ "command": "npx",
165
+ "args": ["-y", "@kajidog/mcp-tts-voicevox"]
166
+ }
167
+ }
168
+ }
169
+ ```
170
+
171
+ #### SSE モードが必要な場合
172
+
173
+ SSE モードでの音声合成が必要な場合は、`mcp-remote` を使用して SSE↔Stdio 変換を行えます:
174
+
175
+ 1. **Claude Desktop 設定**
176
+
177
+ ```json
178
+ {
179
+ "mcpServers": {
180
+ "tts-mcp-proxy": {
181
+ "command": "npx",
182
+ "args": ["-y", "mcp-remote", "http://localhost:3000/sse"]
183
+ }
184
+ }
185
+ }
186
+ ```
187
+
188
+ 2. **SSE サーバーの起動**
189
+
190
+ **Mac/Linux:**
191
+
192
+ ```bash
193
+ MCP_HTTP_MODE=true MCP_HTTP_PORT=3000 npx @kajidog/mcp-tts-voicevox
194
+ ```
195
+
196
+ **Windows:**
197
+
198
+ ```powershell
199
+ $env:MCP_HTTP_MODE='true'; $env:MCP_HTTP_PORT='3000'; npx @kajidog/mcp-tts-voicevox
200
+ ```
201
+
202
+ ````
203
+
204
+ ### AivisSpeech での設定例
205
+
206
+ ```json
207
+ {
208
+ "mcpServers": {
209
+ "tts-mcp": {
210
+ "command": "npx",
211
+ "args": ["-y", "@kajidog/mcp-tts-voicevox"],
212
+ "env": {
213
+ "VOICEVOX_URL": "http://127.0.0.1:10101",
214
+ "VOICEVOX_DEFAULT_SPEAKER": "888753764"
215
+ }
216
+ }
217
+ }
218
+ }
219
+ ````
220
+
221
+ ### HTTP モードでの設定
222
+
223
+ ```json
224
+ {
225
+ "mcpServers": {
226
+ "tts-mcp-http": {
227
+ "command": "npx",
228
+ "args": ["-y", "@kajidog/mcp-tts-voicevox"],
229
+ "env": {
230
+ "MCP_HTTP_MODE": "true",
231
+ "MCP_HTTP_PORT": "3000",
232
+ "MCP_HTTP_HOST": "0.0.0.0",
233
+ "VOICEVOX_URL": "http://localhost:50021",
234
+ "VOICEVOX_DEFAULT_SPEAKER": "1"
235
+ }
236
+ }
237
+ }
238
+ }
239
+ ```
240
+
241
+ ## 環境変数
242
+
243
+ ### VOICEVOX 設定
244
+
245
+ - `VOICEVOX_URL`: VOICEVOX エンジンの URL(デフォルト: `http://localhost:50021`)
246
+ - `VOICEVOX_DEFAULT_SPEAKER`: デフォルト話者 ID(デフォルト: `1`)
247
+ - `VOICEVOX_DEFAULT_SPEED_SCALE`: デフォルト再生速度(デフォルト: `1.0`)
248
+
249
+ ### 再生オプション設定
250
+
251
+ - `VOICEVOX_DEFAULT_IMMEDIATE`: キュー追加時に即座に再生開始するか(デフォルト: `true`)
252
+ - `VOICEVOX_DEFAULT_WAIT_FOR_START`: 再生開始まで待機するか(デフォルト: `false`)
253
+ - `VOICEVOX_DEFAULT_WAIT_FOR_END`: 再生終了まで待機するか(デフォルト: `false`)
254
+
255
+ **使用例:**
256
+
257
+ ```bash
258
+ # 例1: 全ての音声再生で完了まで待機(同期処理)
259
+ export VOICEVOX_DEFAULT_WAIT_FOR_END=true
260
+ npx @kajidog/mcp-tts-voicevox
261
+
262
+ # 例2: 再生開始と終了の両方を待機
263
+ export VOICEVOX_DEFAULT_WAIT_FOR_START=true
264
+ export VOICEVOX_DEFAULT_WAIT_FOR_END=true
265
+ npx @kajidog/mcp-tts-voicevox
266
+
267
+ # 例3: 手動制御(自動再生無効)
268
+ export VOICEVOX_DEFAULT_IMMEDIATE=false
269
+ npx @kajidog/mcp-tts-voicevox
270
+ ```
271
+
272
+ これらのオプションにより、アプリケーションの要件に応じて音声再生の挙動を細かく制御できます。
273
+
274
+ ### サーバー設定
275
+
276
+ - `MCP_HTTP_MODE`: HTTP サーバーモードの有効化(`true` で有効)
277
+ - `MCP_HTTP_PORT`: HTTP サーバーのポート番号(デフォルト: `3000`)
278
+ - `MCP_HTTP_HOST`: HTTP サーバーのホスト(デフォルト: `0.0.0.0`)
279
+
280
+ ## WSL(Windows Subsystem for Linux)での使用
281
+
282
+ WSL環境から WindowsホストのMCPサーバーに接続する場合の設定方法です。
283
+
284
+ ### 1. Windowsホストでの設定
285
+
286
+ **PowerShellでAivisSpeechとMCPサーバーを起動:**
287
+
288
+ ```powershell
289
+ # 環境変数の設定とMCPサーバー起動
290
+ $env:MCP_HTTP_MODE='true'; $env:MCP_HTTP_PORT='3000'; $env:VOICEVOX_URL='http://127.0.0.1:10101'; $env:VOICEVOX_DEFAULT_SPEAKER='888753764'; npx @kajidog/mcp-tts-voicevox
291
+ ```
292
+
293
+ ### 2. WSL環境での設定
294
+
295
+ **WindowsホストのIPアドレスを確認:**
296
+
297
+ ```bash
298
+ # WSLからWindowsホストのIPアドレスを取得
299
+ ip route show | grep default | awk '{print $3}'
300
+ ```
301
+
302
+ 通常は `172.x.x.1` の形式になります。
303
+
304
+ ** Claude Code の .mcp.json の設定例:**
305
+
306
+ ```json
307
+ {
308
+ "mcpServers": {
309
+ "tts": {
310
+ "type": "sse",
311
+ "url": "http://172.29.176.1:3000/sse"
312
+ }
313
+ }
314
+ }
315
+ ```
316
+
317
+ **重要なポイント:**
318
+ - WSL内では `localhost` や `127.0.0.1` はWSL内部を指すため、Windowsホストのサービスにはアクセスできません
319
+ - WSLのゲートウェイIP(通常 `172.x.x.1`)を使用してWindowsホストにアクセスします
320
+ - Windowsのファイアウォールでポートがブロックされていないことを確認してください
321
+
322
+ **接続テスト:**
323
+
324
+ ```bash
325
+ # WSL内でWindowsホストのMCPサーバーへの接続確認
326
+ curl http://172.29.176.1:3000
327
+ ```
328
+
329
+ 正常な場合は `404 Not Found` が返されます(ルートパスが存在しないため)。
330
+
331
+ ## トラブルシューティング
332
+
333
+ ### よくある問題
334
+
335
+ 1. **VOICEVOX エンジンが起動していない**
336
+
337
+ ```bash
338
+ curl http://localhost:50021/speakers
339
+ ```
340
+
341
+ 2. **音声が再生されない**
342
+
343
+ - システムの音声出力デバイスを確認
344
+ - プラットフォーム固有の音声再生ツールの確認:
345
+ - **Linux**: `aplay`, `paplay`, `play`, `ffplay` のいずれかが必要
346
+ - **macOS**: `afplay` (標準でインストール済み)
347
+ - **Windows**: PowerShell (標準でインストール済み)
348
+
349
+ 3. **MCP クライアントで認識されない**
350
+ - パッケージのインストールを確認:`npm list -g @kajidog/mcp-tts-voicevox`
351
+ - 設定ファイルの JSON 構文を確認
352
+
353
+ ## ライセンス
354
+
355
+ ISC
356
+
357
+ [![MseeP.ai Security Assessment Badge](https://mseep.net/pr/kajidog-mcp-tts-voicevox-badge.png)](https://mseep.ai/app/kajidog-mcp-tts-voicevox)
package/dist/server.js CHANGED
@@ -39,7 +39,7 @@ const PlaybackOptionsSchema = {
39
39
  // サーバー初期化
40
40
  exports.server = new mcp_js_1.McpServer({
41
41
  name: "MCP TTS Voicevox",
42
- version: "0.2.0",
42
+ version: "0.2.2",
43
43
  description: "A Voicevox server that converts text to speech for playback and saving.",
44
44
  });
45
45
  // Voicevoxクライアント初期化
package/dist/sse.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAsW5B,QAAA,MAAM,GAAG,4EAAa,CAAC;AAUvB,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAqT5B,QAAA,MAAM,GAAG,4EAAa,CAAC;AAUvB,eAAe,GAAG,CAAC"}
package/dist/sse.js CHANGED
@@ -3,50 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const hono_1 = require("hono");
4
4
  const sse_js_1 = require("@modelcontextprotocol/sdk/server/sse.js");
5
5
  const streamableHttp_js_1 = require("@modelcontextprotocol/sdk/server/streamableHttp.js");
6
+ const fetch_to_node_1 = require("fetch-to-node");
6
7
  const server_1 = require("./server");
7
- // Helper functions to convert between Hono and Node.js request/response
8
- const toReqRes = (request) => {
9
- // Create a mock IncomingMessage and ServerResponse
10
- const req = {
11
- headers: Object.fromEntries(request.headers.entries()),
12
- method: request.method,
13
- url: request.url,
14
- };
15
- const res = {
16
- statusCode: 200,
17
- headers: {},
18
- setHeader: function (name, value) {
19
- this.headers[name] = value;
20
- },
21
- writeHead: function (statusCode, headers) {
22
- this.statusCode = statusCode;
23
- if (headers) {
24
- Object.assign(this.headers, headers);
25
- }
26
- },
27
- write: function (chunk) {
28
- if (!this._body)
29
- this._body = [];
30
- this._body.push(chunk);
31
- },
32
- end: function (chunk) {
33
- if (chunk)
34
- this.write(chunk);
35
- this._ended = true;
36
- },
37
- _body: [],
38
- _ended: false,
39
- };
40
- return { req, res };
41
- };
42
- const toFetchResponse = (res) => {
43
- // Convert ServerResponse back to Fetch Response
44
- const body = res._body ? Buffer.concat(res._body.map((b) => Buffer.isBuffer(b) ? b : Buffer.from(b))) : null;
45
- return new Response(body, {
46
- status: res.statusCode || 200,
47
- headers: res.headers || {},
48
- });
49
- };
50
8
  /**
51
9
  * JSONRPCエラーレスポンスを生成するヘルパー関数
52
10
  */
@@ -138,12 +96,11 @@ class TransportManager {
138
96
  this.sseTransports.set(transport.sessionId, transport);
139
97
  // エラーハンドリング
140
98
  transport.onerror = console.error.bind(console);
141
- // クリーンアップ
142
- res.on("close", () => {
99
+ // クリーンアップ - SSEServerTransportの終了時に処理
100
+ transport.onclose = () => {
143
101
  console.log(`SSE connection closed for session: ${transport.sessionId}`);
144
102
  this.sseTransports.delete(transport.sessionId);
145
- transport.close();
146
- });
103
+ };
147
104
  // サーバー接続
148
105
  await server_1.server.connect(transport);
149
106
  return transport;
@@ -175,7 +132,7 @@ class TransportManager {
175
132
  sessionIdGenerator: () => {
176
133
  const newSessionId = `session-${Date.now()}-${Math.random()
177
134
  .toString(36)
178
- .substr(2, 9)}`;
135
+ .substring(2, 11)}`;
179
136
  console.log(`Generated new session ID: ${newSessionId}`);
180
137
  return newSessionId;
181
138
  },
@@ -206,7 +163,7 @@ class RouteHandlers {
206
163
  */
207
164
  async handleStreamableHTTP(c) {
208
165
  console.log(`Received ${c.req.method} request for StreamableHTTP`);
209
- const { req, res } = toReqRes(c.req.raw);
166
+ const { req, res } = (0, fetch_to_node_1.toReqRes)(c.req.raw);
210
167
  try {
211
168
  const sessionId = req.headers["mcp-session-id"];
212
169
  let body = null;
@@ -231,7 +188,7 @@ class RouteHandlers {
231
188
  }
232
189
  // リクエスト処理
233
190
  await transport.handleRequest(req, res, body);
234
- return toFetchResponse(res);
191
+ return (0, fetch_to_node_1.toFetchResponse)(res);
235
192
  }
236
193
  catch (e) {
237
194
  console.error("StreamableHTTP connection error:", e);
@@ -243,10 +200,10 @@ class RouteHandlers {
243
200
  */
244
201
  async handleSSE(c) {
245
202
  console.log("Received GET SSE request for SSE connection (legacy)");
246
- const { req, res } = toReqRes(c.req.raw);
203
+ const { res } = (0, fetch_to_node_1.toReqRes)(c.req.raw);
247
204
  try {
248
205
  await this.transportManager.createSSETransport(res);
249
- return toFetchResponse(res);
206
+ return (0, fetch_to_node_1.toFetchResponse)(res);
250
207
  }
251
208
  catch (e) {
252
209
  console.error("SSE connection error:", e);
@@ -258,7 +215,7 @@ class RouteHandlers {
258
215
  */
259
216
  async handleSSEMessage(c) {
260
217
  console.log("Received POST message request (legacy SSE)");
261
- const { req, res } = toReqRes(c.req.raw);
218
+ const { req, res } = (0, fetch_to_node_1.toReqRes)(c.req.raw);
262
219
  const sessionId = c.req.query("sessionId");
263
220
  if (!sessionId) {
264
221
  return c.json(ErrorResponseBuilder.missingSessionId(), { status: 400 });
@@ -270,7 +227,7 @@ class RouteHandlers {
270
227
  try {
271
228
  const body = await c.req.json();
272
229
  await transport.handlePostMessage(req, res, body);
273
- return toFetchResponse(res);
230
+ return (0, fetch_to_node_1.toFetchResponse)(res);
274
231
  }
275
232
  catch (e) {
276
233
  console.error("Message handling error:", e);
package/dist/sse.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sse.js","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sse.js","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,87 +1,88 @@
1
- {
2
- "name": "@kajidog/mcp-tts-voicevox",
3
- "version": "0.2.0",
4
- "description": "VOICEVOX integration for MCP - Text-to-Speech server using VOICEVOX engine",
5
- "main": "./dist/index.js",
6
- "module": "./dist/index.js",
7
- "types": "./dist/index.d.ts",
8
- "exports": {
9
- ".": {
10
- "require": "./dist/index.js",
11
- "import": "./dist/index.js",
12
- "types": "./dist/index.d.ts"
13
- },
14
- "./client": {
15
- "require": "./dist/client.js",
16
- "import": "./dist/client.js",
17
- "types": "./dist/client.d.ts"
18
- }
19
- },
20
- "bin": {
21
- "mcp-tts-voicevox": "./dist/index.js"
22
- },
23
- "type": "commonjs",
24
- "scripts": {
25
- "test": "jest",
26
- "start": "node dist/index.js",
27
- "start:stdio": "node dist/stdio.js",
28
- "start:http": "MCP_HTTP_MODE=true node dist/index.js",
29
- "start:http:win": "powershell -Command \"$env:MCP_HTTP_MODE='true'; node dist/index.js\"",
30
- "dev": "NODE_ENV=development ts-node src/index.ts",
31
- "dev:stdio": "NODE_ENV=development ts-node src/stdio.ts",
32
- "dev:http": "NODE_ENV=development MCP_HTTP_MODE=true ts-node src/index.ts",
33
- "dev:http:win": "powershell -Command \"$env:NODE_ENV='development'; $env:MCP_HTTP_MODE='true'; ts-node src/index.ts\"",
34
- "build": "tsc && node scripts/fix-permissions.js",
35
- "build:clean": "rm -rf dist && npm run build",
36
- "lint": "tsc --noEmit",
37
- "prepare": "npm run build",
38
- "prepublishOnly": "npm test && npm run lint"
39
- },
40
- "files": [
41
- "dist",
42
- "README.md",
43
- "LICENSE",
44
- "scripts"
45
- ],
46
- "keywords": [
47
- "voicevox",
48
- "tts",
49
- "text-to-speech",
50
- "mcp",
51
- "mcp-server"
52
- ],
53
- "author": {
54
- "name": "kajidog",
55
- "email": "dev@kajidog.com"
56
- },
57
- "repository": {
58
- "type": "git",
59
- "url": "git+https://github.com/kajidog/mcp-tts-voicevox.git"
60
- },
61
- "bugs": {
62
- "url": "https://github.com/kajidog/mcp-tts-voicevox/issues"
63
- },
64
- "homepage": "https://github.com/kajidog/mcp-tts-voicevox#readme",
65
- "license": "ISC",
66
- "engines": {
67
- "node": ">=18.0.0"
68
- },
69
- "dependencies": {
70
- "@hono/node-server": "^1.14.2",
71
- "@kajidog/voicevox-client": "0.2.0",
72
- "@modelcontextprotocol/sdk": "^1.8.0",
73
- "hono": "^4.7.10",
74
- "zod": "^3.22.4"
75
- },
76
- "devDependencies": {
77
- "@types/jest": "^29.5.14",
78
- "@types/node": "^20.0.0",
79
- "jest": "^29.7.0",
80
- "ts-jest": "^29.3.1",
81
- "ts-node": "^10.9.0",
82
- "typescript": "^5.0.0"
83
- },
84
- "peerDependencies": {
85
- "typescript": ">=4.5.0"
86
- }
1
+ {
2
+ "name": "@kajidog/mcp-tts-voicevox",
3
+ "version": "0.2.2",
4
+ "description": "VOICEVOX integration for MCP - Text-to-Speech server using VOICEVOX engine",
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "require": "./dist/index.js",
11
+ "import": "./dist/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ },
14
+ "./client": {
15
+ "require": "./dist/client.js",
16
+ "import": "./dist/client.js",
17
+ "types": "./dist/client.d.ts"
18
+ }
19
+ },
20
+ "bin": {
21
+ "mcp-tts-voicevox": "./dist/index.js"
22
+ },
23
+ "type": "commonjs",
24
+ "scripts": {
25
+ "test": "jest",
26
+ "start": "node dist/index.js",
27
+ "start:stdio": "node dist/stdio.js",
28
+ "start:http": "MCP_HTTP_MODE=true node dist/index.js",
29
+ "start:http:win": "powershell -Command \"$env:MCP_HTTP_MODE='true'; node dist/index.js\"",
30
+ "dev": "NODE_ENV=development ts-node src/index.ts",
31
+ "dev:stdio": "NODE_ENV=development ts-node src/stdio.ts",
32
+ "dev:http": "NODE_ENV=development MCP_HTTP_MODE=true ts-node src/index.ts",
33
+ "dev:http:win": "powershell -Command \"$env:NODE_ENV='development'; $env:MCP_HTTP_MODE='true'; ts-node src/index.ts\"",
34
+ "build": "tsc && node scripts/fix-permissions.js",
35
+ "build:clean": "rm -rf dist && npm run build",
36
+ "lint": "tsc --noEmit",
37
+ "prepare": "npm run build",
38
+ "prepublishOnly": "npm test && npm run lint"
39
+ },
40
+ "files": [
41
+ "dist",
42
+ "README.md",
43
+ "LICENSE",
44
+ "scripts"
45
+ ],
46
+ "keywords": [
47
+ "voicevox",
48
+ "tts",
49
+ "text-to-speech",
50
+ "mcp",
51
+ "mcp-server"
52
+ ],
53
+ "author": {
54
+ "name": "kajidog",
55
+ "email": "dev@kajidog.com"
56
+ },
57
+ "repository": {
58
+ "type": "git",
59
+ "url": "git+https://github.com/kajidog/mcp-tts-voicevox.git"
60
+ },
61
+ "bugs": {
62
+ "url": "https://github.com/kajidog/mcp-tts-voicevox/issues"
63
+ },
64
+ "homepage": "https://github.com/kajidog/mcp-tts-voicevox#readme",
65
+ "license": "ISC",
66
+ "engines": {
67
+ "node": ">=18.0.0"
68
+ },
69
+ "dependencies": {
70
+ "@hono/node-server": "^1.14.2",
71
+ "@kajidog/voicevox-client": "0.2.0",
72
+ "@modelcontextprotocol/sdk": "^1.8.0",
73
+ "fetch-to-node": "^2.1.0",
74
+ "hono": "^4.7.10",
75
+ "zod": "^3.22.4"
76
+ },
77
+ "devDependencies": {
78
+ "@types/jest": "^29.5.14",
79
+ "@types/node": "^20.0.0",
80
+ "jest": "^29.7.0",
81
+ "ts-jest": "^29.3.1",
82
+ "ts-node": "^10.9.0",
83
+ "typescript": "^5.0.0"
84
+ },
85
+ "peerDependencies": {
86
+ "typescript": ">=4.5.0"
87
+ }
87
88
  }