@kajidog/mcp-tts-voicevox 0.2.1 → 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 +357 -306
- package/dist/server.js +1 -1
- package/dist/sse.d.ts.map +1 -1
- package/dist/sse.js +5 -6
- package/dist/sse.js.map +1 -1
- package/package.json +87 -87
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 対応** -
|
|
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 サーバー** -
|
|
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.
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
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
|
+
[](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.
|
|
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;
|
|
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
|
@@ -96,12 +96,11 @@ class TransportManager {
|
|
|
96
96
|
this.sseTransports.set(transport.sessionId, transport);
|
|
97
97
|
// エラーハンドリング
|
|
98
98
|
transport.onerror = console.error.bind(console);
|
|
99
|
-
// クリーンアップ
|
|
100
|
-
|
|
99
|
+
// クリーンアップ - SSEServerTransportの終了時に処理
|
|
100
|
+
transport.onclose = () => {
|
|
101
101
|
console.log(`SSE connection closed for session: ${transport.sessionId}`);
|
|
102
102
|
this.sseTransports.delete(transport.sessionId);
|
|
103
|
-
|
|
104
|
-
});
|
|
103
|
+
};
|
|
105
104
|
// サーバー接続
|
|
106
105
|
await server_1.server.connect(transport);
|
|
107
106
|
return transport;
|
|
@@ -133,7 +132,7 @@ class TransportManager {
|
|
|
133
132
|
sessionIdGenerator: () => {
|
|
134
133
|
const newSessionId = `session-${Date.now()}-${Math.random()
|
|
135
134
|
.toString(36)
|
|
136
|
-
.
|
|
135
|
+
.substring(2, 11)}`;
|
|
137
136
|
console.log(`Generated new session ID: ${newSessionId}`);
|
|
138
137
|
return newSessionId;
|
|
139
138
|
},
|
|
@@ -201,7 +200,7 @@ class RouteHandlers {
|
|
|
201
200
|
*/
|
|
202
201
|
async handleSSE(c) {
|
|
203
202
|
console.log("Received GET SSE request for SSE connection (legacy)");
|
|
204
|
-
const {
|
|
203
|
+
const { res } = (0, fetch_to_node_1.toReqRes)(c.req.raw);
|
|
205
204
|
try {
|
|
206
205
|
await this.transportManager.createSSETransport(res);
|
|
207
206
|
return (0, fetch_to_node_1.toFetchResponse)(res);
|
package/dist/sse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":";;AAAA,+BAA4B;AAC5B,oEAA6E;AAC7E,0FAAmG;AAEnG,iDAA0D;AAC1D,qCAAkC;AAqBlC;;GAEG;AACH,MAAM,oBAAoB;IACxB,MAAM,CAAC,gBAAgB;QACrB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,CAAC,KAAK;gBACZ,OAAO,EAAE,6BAA6B;aACvC;YACD,EAAE,EAAE,IAAI;SACT,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,eAAe;QACpB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,CAAC,KAAK;gBACZ,OAAO,EAAE,kCAAkC;aAC5C;YACD,EAAE,EAAE,IAAI;SACT,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,UAAU,CACf,UAAkB,2CAA2C;QAE7D,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,CAAC,KAAK;gBACZ,OAAO;aACR;YACD,EAAE,EAAE,IAAI;SACT,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,aAAa;QAClB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,CAAC,KAAK;gBACZ,OAAO,EAAE,uBAAuB;aACjC;YACD,EAAE,EAAE,IAAI;SACT,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,gBAAgB;QACrB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,CAAC,KAAK;gBACZ,OAAO,EAAE,qBAAqB;aAC/B;YACD,EAAE,EAAE,IAAI;SACT,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,gBAAgB;IAAtB;QACU,yBAAoB,GAAG,IAAI,GAAG,EAGnC,CAAC;QACI,kBAAa,GAAG,IAAI,GAAG,EAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,88 +1,88 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@kajidog/mcp-tts-voicevox",
|
|
3
|
-
"version": "0.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
|
-
}
|
|
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
|
+
}
|
|
88
88
|
}
|