@kajidog/mcp-tts-voicevox 0.1.1 → 0.2.0

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
@@ -4,13 +4,10 @@ VOICEVOX を使用した音声合成 MCP サーバー
4
4
 
5
5
  ## 特徴
6
6
 
7
- - **キュー管理機能** - 複数の音声合成リクエストを効率的に処理
7
+ - **高度な再生制御** - キュー管理・即時再生・同期/非同期制御による柔軟な音声処理
8
8
  - **プリフェッチ** - 次の音声を事前に生成し、再生をスムーズに
9
- - **クロスプラットフォーム対応** - Windows、macOS で動作
10
- - **Stdio 対応** - 標準入出力による MCP プロトコル通信(Claude Desktop 等で推奨)
11
- - **SSE 対応** - Server-Sent Events によるリアルタイム対話形式音声再生
12
- - **StreamableHTTP 対応** - ストリーミング形式での HTTP 通信による高速音声合成
13
- - **対話形式音声再生** - チャット形式でのリアルタイム音声合成・再生機能
9
+ - **クロスプラットフォーム対応** - Windows、macOS、Linux で動作
10
+ - **Stdio/HTTP 対応** - Claude Desktop(Stdio)や Web API(HTTP)に対応
14
11
  - **複数話者対応** - セグメント単位での個別話者指定が可能
15
12
  - **テキスト自動分割** - 長文の自動分割による安定した音声合成
16
13
  - **独立したクライアントライブラリ** - [`@kajidog/voicevox-client`](https://www.npmjs.com/package/@kajidog/voicevox-client) として別パッケージで提供
@@ -52,237 +49,112 @@ MCP_HTTP_MODE=true npx @kajidog/mcp-tts-voicevox
52
49
  $env:MCP_HTTP_MODE='true'; npx @kajidog/mcp-tts-voicevox
53
50
  ```
54
51
 
55
- ### MCP ツール一覧
52
+ ## MCP ツール
56
53
 
57
- MCP サーバーは以下のツールを提供します:
58
-
59
- #### `speak` - テキスト読み上げ
54
+ ### `speak` - テキスト読み上げ
60
55
 
61
56
  テキストを音声に変換して再生します。
62
57
 
63
58
  **パラメータ:**
64
59
 
65
- - `text`: 文字列配列、またはテキストと話者ペアの配列
60
+ - `text`: 文字列(改行区切りで複数テキスト、話者指定は「1:テキスト」形式)
66
61
  - `speaker` (オプション): 話者 ID
67
62
  - `speedScale` (オプション): 再生速度
68
- - `query` (オプション): 事前生成済みクエリ
63
+ - `immediate` (オプション): 即座に再生開始するか(デフォルト: true)
64
+ - `waitForStart` (オプション): 再生開始まで待機するか(デフォルト: false)
65
+ - `waitForEnd` (オプション): 再生終了まで待機するか(デフォルト: false)
69
66
 
70
67
  **使用例:**
71
68
 
72
69
  ```javascript
73
70
  // シンプルなテキスト
74
- { "text": ["こんにちは", "今日はいい天気ですね"] }
71
+ { "text": "こんにちは\n今日はいい天気ですね" }
75
72
 
76
73
  // 話者指定
77
- { "text": ["こんにちは", "今日はいい天気ですね"], "speaker": 3 }
74
+ { "text": "こんにちは", "speaker": 3 }
78
75
 
79
76
  // セグメント別話者指定
80
- { "text": [{"text": "こんにちは", "speaker": 1}, {"text": "今日はいい天気ですね", "speaker": 3}] }
81
- ```
82
-
83
- #### `generate_query` - クエリ生成
84
-
85
- 音声合成用クエリを生成します。
86
-
87
- **パラメータ:**
88
-
89
- - `text`: 合成するテキスト
90
- - `speaker` (オプション): 話者 ID
91
- - `speedScale` (オプション): 再生速度
92
-
93
- #### `synthesize_file` - ファイル生成
94
-
95
- 音声ファイルを生成し、パスを返します。
96
-
97
- **パラメータ:**
98
-
99
- - `text` (オプション): 合成するテキスト
100
- - `query` (オプション): 事前生成済みクエリ
101
- - `output`: 出力ファイルパス
102
- - `speaker` (オプション): 話者 ID
103
- - `speedScale` (オプション): 再生速度
104
-
105
- #### `stop_speaker` - 再生停止
77
+ { "text": "1:こんにちは\n3:今日はいい天気ですね" }
106
78
 
107
- 現在の音声合成キューをクリアします。
108
-
109
- #### `get_speakers` - 話者一覧取得
110
-
111
- 利用可能な話者一覧を取得します。
112
-
113
- #### `get_speaker_detail` - 話者詳細取得
79
+ // 即座に再生(キューを迂回)
80
+ {
81
+ "text": "緊急メッセージです",
82
+ "immediate": true,
83
+ "waitForEnd": true
84
+ }
114
85
 
115
- 指定した UUID の話者詳細情報を取得します。
86
+ // 再生終了まで待機(同期処理)
87
+ {
88
+ "text": "この音声の再生が完了するまで次の処理を待機",
89
+ "waitForEnd": true
90
+ }
116
91
 
117
- **パラメータ:**
92
+ // キューに追加するが自動再生しない
93
+ {
94
+ "text": "手動で再生開始するまで待機",
95
+ "immediate": false
96
+ }
97
+ ```
118
98
 
119
- - `uuid`: 話者 UUID
99
+ ### 高度な再生制御機能
120
100
 
121
- ### 対話形式音声再生の使用例
101
+ #### 即時再生(`immediate: true`)
122
102
 
123
- #### StreamableHTTP を使用した対話形式再生
103
+ キューを迂回して音声を即座に再生:
124
104
 
125
- ```javascript
126
- // セッション初期化
127
- const response = await fetch("http://localhost:3000/mcp", {
128
- method: "POST",
129
- headers: {
130
- "Content-Type": "application/json",
131
- },
132
- body: JSON.stringify({
133
- jsonrpc: "2.0",
134
- method: "initialize",
135
- params: {
136
- protocolVersion: "2024-11-05",
137
- capabilities: {},
138
- },
139
- id: 1,
140
- }),
141
- });
142
-
143
- const sessionData = await response.json();
144
- const sessionId = response.headers.get("mcp-session-id");
145
-
146
- // 音声合成・再生リクエスト
147
- const speakResponse = await fetch("http://localhost:3000/mcp", {
148
- method: "POST",
149
- headers: {
150
- "Content-Type": "application/json",
151
- "mcp-session-id": sessionId,
152
- },
153
- body: JSON.stringify({
154
- jsonrpc: "2.0",
155
- method: "tools/call",
156
- params: {
157
- name: "speak",
158
- arguments: {
159
- text: ["こんにちは、対話形式で音声を再生します"],
160
- speaker: 1,
161
- speedScale: 1.0,
162
- },
163
- },
164
- id: 2,
165
- }),
166
- });
167
-
168
- const result = await speakResponse.json();
169
- console.log("結果:", result);
170
- ```
105
+ - **通常のキューと並行動作**: 既存のキュー再生を妨げません
106
+ - **複数同時再生**: 複数の即時再生を同時に実行可能
107
+ - **緊急通知に最適**: 重要なメッセージを優先的に再生
171
108
 
172
- #### 複数話者を使用した対話例
109
+ #### 同期再生制御(`waitForEnd: true`)
173
110
 
174
- ```javascript
175
- // 複数話者での会話例
176
- const conversationResponse = await fetch("http://localhost:3000/mcp", {
177
- method: "POST",
178
- headers: {
179
- "Content-Type": "application/json",
180
- "mcp-session-id": sessionId,
181
- },
182
- body: JSON.stringify({
183
- jsonrpc: "2.0",
184
- method: "tools/call",
185
- params: {
186
- name: "speak",
187
- arguments: {
188
- text: [
189
- { text: "こんにちは!", speaker: 1 },
190
- { text: "お元気ですか?", speaker: 3 },
191
- { text: "とても元気です!", speaker: 1 },
192
- ],
193
- },
194
- },
195
- id: 3,
196
- }),
197
- });
198
- ```
111
+ 再生完了まで待機して処理を同期化:
199
112
 
200
- #### SSE を使用した対話形式再生(レガシー)
113
+ - **順次処理**: 音声再生後に次の処理を実行
114
+ - **タイミング制御**: 音声と他の処理の連携が可能
115
+ - **UI 同期**: 画面表示と音声のタイミングを合わせる
201
116
 
202
117
  ```javascript
203
- // SSE接続の確立
204
- const eventSource = new EventSource("http://localhost:3000/sse");
205
- let sessionId = null;
206
-
207
- eventSource.onopen = function (event) {
208
- console.log("SSE接続が確立されました");
209
- };
210
-
211
- eventSource.onmessage = function (event) {
212
- const data = JSON.parse(event.data);
213
-
214
- if (data.type === "session") {
215
- sessionId = data.sessionId;
216
- console.log("セッションID:", sessionId);
118
+ // 例1: 緊急メッセージを即座に再生し、完了まで待機
119
+ {
120
+ "text": "緊急!すぐに確認してください",
121
+ "immediate": true,
122
+ "waitForEnd": true
123
+ }
217
124
 
218
- // 音声合成リクエストを送信
219
- sendSpeakRequest();
220
- }
221
- };
222
-
223
- async function sendSpeakRequest() {
224
- await fetch(`http://localhost:3000/messages?sessionId=${sessionId}`, {
225
- method: "POST",
226
- headers: {
227
- "Content-Type": "application/json",
228
- },
229
- body: JSON.stringify({
230
- jsonrpc: "2.0",
231
- method: "tools/call",
232
- params: {
233
- name: "speak",
234
- arguments: {
235
- text: ["SSEを使用した音声再生です"],
236
- speaker: 1,
237
- },
238
- },
239
- id: 1,
240
- }),
241
- });
125
+ // 例2: ステップバイステップの音声ガイド
126
+ {
127
+ "text": "手順1: ファイルを開いてください",
128
+ "waitForEnd": true
242
129
  }
130
+ // 上記の音声が完了してから次の処理が実行される
243
131
  ```
244
132
 
133
+ ### その他のツール
245
134
 
246
- ## パッケージ構成
135
+ - `generate_query` - 音声合成用クエリを生成
136
+ - `synthesize_file` - 音声ファイルを生成
137
+ - `stop_speaker` - 再生停止・キュークリア
138
+ - `get_speakers` - 話者一覧取得
139
+ - `get_speaker_detail` - 話者詳細取得
247
140
 
248
- このプロジェクトは以下の2つのパッケージで構成されています:
141
+ ## パッケージ構成
249
142
 
250
143
  ### @kajidog/mcp-tts-voicevox (このパッケージ)
251
- - **MCPサーバー** - Claude Desktop等のMCPクライアントと通信するサーバー
252
- - **Node.js専用** - デスクトップ環境やCLI環境での使用を想定
253
- - **ツール提供** - `speak`, `generate_query`, `synthesize_file` 等のMCPツール
254
- - **HTTPサーバー** - SSE/StreamableHTTP対応のWebサーバー
255
-
256
- ### [@kajidog/voicevox-client](https://www.npmjs.com/package/@kajidog/voicevox-client) (独立パッケージ)
257
- - **汎用ライブラリ** - VOICEVOXエンジンとの通信機能を提供
258
- - **クロスプラットフォーム** - Node.js とブラウザ環境の両方で動作
259
- - **キュー管理** - 複数の音声合成リクエストを効率的に処理
260
- - **プリフェッチ機能** - 次の音声を事前に生成し、再生をスムーズに
261
144
 
262
- ### 使い分けガイド
145
+ - **MCP サーバー** - Claude Desktop 等の MCP クライアントと通信
146
+ - **HTTP サーバー** - REST API 提供
263
147
 
264
- **MCPサーバーを使用する場合 (`@kajidog/mcp-tts-voicevox`)**:
265
- - Claude Desktop でTTSツールを使いたい
266
- - コマンドラインからMCPサーバーを起動したい
267
- - Webアプリケーション向けのHTTP APIが必要
268
-
269
- **クライアントライブラリを使用する場合 (`@kajidog/voicevox-client`)**:
270
- - 独自のNode.jsアプリケーションにTTS機能を組み込みたい
271
- - ブラウザアプリケーションでVOICEVOXを使いたい
272
- - MCPプロトコルを使わずに直接VOICEVOX機能を利用したい
148
+ ### [@kajidog/voicevox-client](https://www.npmjs.com/package/@kajidog/voicevox-client) (独立パッケージ)
273
149
 
274
- 詳細な使用方法は [`@kajidog/voicevox-client` のドキュメント](https://www.npmjs.com/package/@kajidog/voicevox-client) を参照してください。
150
+ - **汎用ライブラリ** - VOICEVOX エンジンとの通信機能
151
+ - **クロスプラットフォーム** - Node.js、ブラウザ環境対応
152
+ - **高度な再生制御** - 即時再生・同期再生・キュー管理機能
275
153
 
276
154
  ## MCP 設定例
277
155
 
278
156
  ### Claude Desktop での設定
279
157
 
280
- **⚠️ 重要: Claude Desktop の通信モードについて**
281
-
282
- Claude Desktop は現在 **Stdio モードのみ** をサポートしており、SSE/HTTP モードは直接サポートされていません。
283
-
284
- #### 推奨設定(Stdio モード)
285
-
286
158
  `claude_desktop_config.json` ファイルに以下の設定を追加:
287
159
 
288
160
  ```json
@@ -290,7 +162,7 @@ Claude Desktop は現在 **Stdio モードのみ** をサポートしており
290
162
  "mcpServers": {
291
163
  "tts-mcp": {
292
164
  "command": "npx",
293
- "args": ["-y", "@kajidog/mcp-tts-voicevox"],
165
+ "args": ["-y", "@kajidog/mcp-tts-voicevox"]
294
166
  }
295
167
  }
296
168
  }
@@ -327,6 +199,8 @@ SSE モードでの音声合成が必要な場合は、`mcp-remote` を使用し
327
199
  $env:MCP_HTTP_MODE='true'; $env:MCP_HTTP_PORT='3000'; npx @kajidog/mcp-tts-voicevox
328
200
  ```
329
201
 
202
+ ````
203
+
330
204
  ### AivisSpeech での設定例
331
205
 
332
206
  ```json
@@ -342,7 +216,7 @@ SSE モードでの音声合成が必要な場合は、`mcp-remote` を使用し
342
216
  }
343
217
  }
344
218
  }
345
- ```
219
+ ````
346
220
 
347
221
  ### HTTP モードでの設定
348
222
 
@@ -372,12 +246,36 @@ SSE モードでの音声合成が必要な場合は、`mcp-remote` を使用し
372
246
  - `VOICEVOX_DEFAULT_SPEAKER`: デフォルト話者 ID(デフォルト: `1`)
373
247
  - `VOICEVOX_DEFAULT_SPEED_SCALE`: デフォルト再生速度(デフォルト: `1.0`)
374
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
+
375
274
  ### サーバー設定
376
275
 
377
276
  - `MCP_HTTP_MODE`: HTTP サーバーモードの有効化(`true` で有効)
378
277
  - `MCP_HTTP_PORT`: HTTP サーバーのポート番号(デフォルト: `3000`)
379
278
  - `MCP_HTTP_HOST`: HTTP サーバーのホスト(デフォルト: `0.0.0.0`)
380
- - `NODE_ENV`: 開発モード(`development` で有効)
381
279
 
382
280
  ## トラブルシューティング
383
281
 
@@ -389,22 +287,18 @@ SSE モードでの音声合成が必要な場合は、`mcp-remote` を使用し
389
287
  curl http://localhost:50021/speakers
390
288
  ```
391
289
 
392
- 2. **ポートが既に使用されている (EADDRINUSE エラー)**
290
+ 2. **音声が再生されない**
393
291
 
394
- - 別のポート番号を使用するか、既存のプロセスを終了してください
292
+ - システムの音声出力デバイスを確認
293
+ - プラットフォーム固有の音声再生ツールの確認:
294
+ - **Linux**: `aplay`, `paplay`, `play`, `ffplay` のいずれかが必要
295
+ - **macOS**: `afplay` (標準でインストール済み)
296
+ - **Windows**: PowerShell (標準でインストール済み)
395
297
 
396
298
  3. **MCP クライアントで認識されない**
397
-
398
299
  - パッケージのインストールを確認:`npm list -g @kajidog/mcp-tts-voicevox`
399
300
  - 設定ファイルの JSON 構文を確認
400
301
 
401
- 4. **音声が再生されない**
402
- - システムの音声出力デバイスを確認
403
- - VOICEVOX エンジンの動作確認:
404
- ```bash
405
- curl -X POST "http://localhost:50021/audio_query?text=テスト&speaker=1"
406
- ```
407
-
408
302
  ## ライセンス
409
303
 
410
304
  ISC
package/dist/index.js CHANGED
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4BpE,eAAO,MAAM,MAAM,WAKjB,CAAC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA2CpE,eAAO,MAAM,MAAM,WAKjB,CAAC"}
package/dist/server.js CHANGED
@@ -13,8 +13,8 @@ const TextSegmentSchema = zod_1.z.object({
13
13
  .describe("Speaker ID for this specific text segment"),
14
14
  });
15
15
  const TextInputSchema = zod_1.z
16
- .union([zod_1.z.array(zod_1.z.string()), zod_1.z.array(TextSegmentSchema)])
17
- .describe('Array of strings ["Hello", "World"] or objects [{"text": "Hello"}, {"text": "World", "speaker": 3}] for individual speaker control. For faster playback start, make the first element short.');
16
+ .string()
17
+ .describe('Text string with line breaks and optional speaker prefix "1:Hello\\n2:World". For faster playback start, make the first element short.');
18
18
  const CommonParametersSchema = {
19
19
  speaker: zod_1.z.number().optional().describe("Default speaker ID (optional)"),
20
20
  speedScale: zod_1.z
@@ -22,10 +22,24 @@ const CommonParametersSchema = {
22
22
  .optional()
23
23
  .describe("Playback speed (optional, default from environment)"),
24
24
  };
25
+ const PlaybackOptionsSchema = {
26
+ immediate: zod_1.z
27
+ .boolean()
28
+ .optional()
29
+ .describe("Start playback immediately (optional, default: true)"),
30
+ waitForStart: zod_1.z
31
+ .boolean()
32
+ .optional()
33
+ .describe("Wait for playback to start (optional, default: false)"),
34
+ waitForEnd: zod_1.z
35
+ .boolean()
36
+ .optional()
37
+ .describe("Wait for playback to end (optional, default: false)"),
38
+ };
25
39
  // サーバー初期化
26
40
  exports.server = new mcp_js_1.McpServer({
27
41
  name: "MCP TTS Voicevox",
28
- version: "0.1.1",
42
+ version: "0.2.0",
29
43
  description: "A Voicevox server that converts text to speech for playback and saving.",
30
44
  });
31
45
  // Voicevoxクライアント初期化
@@ -53,32 +67,45 @@ const parseAudioQuery = (query, speedScale) => {
53
67
  }
54
68
  return audioQuery;
55
69
  };
56
- const processTextInput = async (text, speaker, speedScale) => {
57
- if (!Array.isArray(text) || text.length === 0) {
58
- throw new Error("Invalid text format. Provide non-empty array.");
59
- }
60
- if (typeof text[0] === "string") {
61
- return await voicevoxClient.speak(text, speaker, speedScale);
62
- }
63
- else if (typeof text[0] === "object" && "text" in text[0]) {
64
- const segments = text;
65
- return await voicevoxClient.speak(segments, speaker, speedScale);
66
- }
67
- throw new Error("Invalid text format. Provide array of strings or objects with 'text' property.");
70
+ const parseStringInput = (input) => {
71
+ // \n \\n の両方に対応するため、まず \\n を \n に変換してから分割
72
+ const normalizedInput = input.replace(/\\n/g, "\n");
73
+ const lines = normalizedInput.split("\n").filter((line) => line.trim());
74
+ return lines.map((line) => {
75
+ const match = line.match(/^(\d+):(.*)$/);
76
+ if (match) {
77
+ return { text: match[2].trim(), speaker: parseInt(match[1], 10) };
78
+ }
79
+ return { text: line };
80
+ });
81
+ };
82
+ const processTextInput = async (text, speaker, speedScale, playbackOptions) => {
83
+ const segments = parseStringInput(text);
84
+ return await voicevoxClient.speak(segments, speaker, speedScale, playbackOptions);
68
85
  };
69
86
  // ツール定義
70
87
  exports.server.tool("speak", "Convert text to speech and play it", {
71
88
  text: TextInputSchema,
72
89
  ...CommonParametersSchema,
90
+ ...PlaybackOptionsSchema,
73
91
  query: zod_1.z.string().optional().describe("Voice synthesis query"),
74
- }, async ({ text, speaker, query, speedScale }) => {
92
+ }, async ({ text, speaker, query, speedScale, immediate, waitForStart, waitForEnd, }) => {
75
93
  try {
94
+ // 環境変数からデフォルトの再生オプションを取得
95
+ const defaultImmediate = process.env.VOICEVOX_DEFAULT_IMMEDIATE !== "false";
96
+ const defaultWaitForStart = process.env.VOICEVOX_DEFAULT_WAIT_FOR_START === "true";
97
+ const defaultWaitForEnd = process.env.VOICEVOX_DEFAULT_WAIT_FOR_END === "true";
98
+ const playbackOptions = {
99
+ immediate: immediate ?? defaultImmediate,
100
+ waitForStart: waitForStart ?? defaultWaitForStart,
101
+ waitForEnd: waitForEnd ?? defaultWaitForEnd,
102
+ };
76
103
  if (query) {
77
104
  const audioQuery = parseAudioQuery(query, speedScale);
78
- const result = await voicevoxClient.enqueueAudioGeneration(audioQuery, speaker);
105
+ const result = await voicevoxClient.enqueueAudioGeneration(audioQuery, speaker, speedScale, playbackOptions);
79
106
  return createSuccessResponse(result);
80
107
  }
81
- const result = await processTextInput(text, speaker, speedScale);
108
+ const result = await processTextInput(text, speaker, speedScale, playbackOptions);
82
109
  return createSuccessResponse(result);
83
110
  }
84
111
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
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;AAsT5B,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;AAsW5B,QAAA,MAAM,GAAG,4EAAa,CAAC;AAUvB,eAAe,GAAG,CAAC"}
package/dist/sse.js CHANGED
@@ -3,8 +3,50 @@ 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");
7
6
  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
+ };
8
50
  /**
9
51
  * JSONRPCエラーレスポンスを生成するヘルパー関数
10
52
  */
@@ -164,7 +206,7 @@ class RouteHandlers {
164
206
  */
165
207
  async handleStreamableHTTP(c) {
166
208
  console.log(`Received ${c.req.method} request for StreamableHTTP`);
167
- const { req, res } = (0, fetch_to_node_1.toReqRes)(c.req.raw);
209
+ const { req, res } = toReqRes(c.req.raw);
168
210
  try {
169
211
  const sessionId = req.headers["mcp-session-id"];
170
212
  let body = null;
@@ -189,7 +231,7 @@ class RouteHandlers {
189
231
  }
190
232
  // リクエスト処理
191
233
  await transport.handleRequest(req, res, body);
192
- return (0, fetch_to_node_1.toFetchResponse)(res);
234
+ return toFetchResponse(res);
193
235
  }
194
236
  catch (e) {
195
237
  console.error("StreamableHTTP connection error:", e);
@@ -201,10 +243,10 @@ class RouteHandlers {
201
243
  */
202
244
  async handleSSE(c) {
203
245
  console.log("Received GET SSE request for SSE connection (legacy)");
204
- const { req, res } = (0, fetch_to_node_1.toReqRes)(c.req.raw);
246
+ const { req, res } = toReqRes(c.req.raw);
205
247
  try {
206
248
  await this.transportManager.createSSETransport(res);
207
- return (0, fetch_to_node_1.toFetchResponse)(res);
249
+ return toFetchResponse(res);
208
250
  }
209
251
  catch (e) {
210
252
  console.error("SSE connection error:", e);
@@ -216,7 +258,7 @@ class RouteHandlers {
216
258
  */
217
259
  async handleSSEMessage(c) {
218
260
  console.log("Received POST message request (legacy SSE)");
219
- const { req, res } = (0, fetch_to_node_1.toReqRes)(c.req.raw);
261
+ const { req, res } = toReqRes(c.req.raw);
220
262
  const sessionId = c.req.query("sessionId");
221
263
  if (!sessionId) {
222
264
  return c.json(ErrorResponseBuilder.missingSessionId(), { status: 400 });
@@ -228,7 +270,7 @@ class RouteHandlers {
228
270
  try {
229
271
  const body = await c.req.json();
230
272
  await transport.handlePostMessage(req, res, body);
231
- return (0, fetch_to_node_1.toFetchResponse)(res);
273
+ return toFetchResponse(res);
232
274
  }
233
275
  catch (e) {
234
276
  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,6 +1,6 @@
1
1
  {
2
2
  "name": "@kajidog/mcp-tts-voicevox",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "VOICEVOX integration for MCP - Text-to-Speech server using VOICEVOX engine",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -23,7 +23,6 @@
23
23
  "type": "commonjs",
24
24
  "scripts": {
25
25
  "test": "jest",
26
- "test:sound": "ts-node src/test.ts",
27
26
  "start": "node dist/index.js",
28
27
  "start:stdio": "node dist/stdio.js",
29
28
  "start:http": "MCP_HTTP_MODE=true node dist/index.js",
@@ -69,9 +68,8 @@
69
68
  },
70
69
  "dependencies": {
71
70
  "@hono/node-server": "^1.14.2",
72
- "@kajidog/voicevox-client": "^0.0.1",
71
+ "@kajidog/voicevox-client": "0.2.0",
73
72
  "@modelcontextprotocol/sdk": "^1.8.0",
74
- "fetch-to-node": "^2.1.0",
75
73
  "hono": "^4.7.10",
76
74
  "zod": "^3.22.4"
77
75
  },
package/dist/test.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":""}
package/dist/test.js DELETED
@@ -1,347 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- const voicevox_client_1 = require("@kajidog/voicevox-client");
37
- const path_1 = require("path");
38
- const os_1 = require("os");
39
- const fs = __importStar(require("fs/promises"));
40
- const soundPlay = require("sound-play");
41
- // ----- ユーティリティ関数 -----
42
- /**
43
- * 音声ファイルを再生するユーティリティ関数
44
- * @param filePath 再生する音声ファイルのパス
45
- * @param description 再生内容の説明
46
- */
47
- async function playAudioFile(filePath, description = "") {
48
- try {
49
- const displayText = description ? `${description} (${filePath})` : filePath;
50
- console.log(`🔊 音声ファイル「${displayText}」の再生を開始します...`);
51
- await soundPlay.play(filePath);
52
- console.log(`✅ 音声ファイル「${displayText}」の再生が完了しました`);
53
- }
54
- catch (error) {
55
- console.error(`❌ 音声再生中にエラーが発生しました: ${error}`);
56
- throw error;
57
- }
58
- }
59
- /**
60
- * ヘッダーを出力する関数
61
- * @param title セクションタイトル
62
- */
63
- function printHeader(title) {
64
- console.log(`\n${"=".repeat(80)}`);
65
- console.log(`📌 ${title}`);
66
- console.log(`${"=".repeat(80)}`);
67
- }
68
- /**
69
- * サブセクションのヘッダーを出力する関数
70
- * @param title セクションタイトル
71
- */
72
- function printSubHeader(title) {
73
- console.log(`\n${"- ".repeat(40)}`);
74
- console.log(`🔹 ${title}`);
75
- console.log(`${"- ".repeat(40)}`);
76
- }
77
- // ----- クライアントテスト関数 -----
78
- /**
79
- * VoicevoxClientの基本機能をテストする
80
- */
81
- async function testTextToSpeech(client, speaker) {
82
- printSubHeader("テキストから音声再生のテスト");
83
- const testText = "これはテストです。VOICEVOXの機能を検証します。";
84
- // 1. speak テスト - テキストからの音声再生
85
- console.log("➡️ テキストから直接音声再生");
86
- const speakResult = await client.speak(testText, speaker);
87
- console.log("✅ 結果:", speakResult);
88
- // 2. generateQuery テスト - テキストから音声合成用クエリを生成
89
- console.log("\n➡️ テキストから音声合成用クエリ生成");
90
- const query = await client.generateQuery(testText, speaker);
91
- console.log("✅ クエリ生成結果 (一部):", JSON.stringify(query).substring(0, 100) + "...");
92
- return query;
93
- }
94
- /**
95
- * 音声ファイル生成機能をテストする
96
- */
97
- async function testAudioFileGeneration(client, query, speaker) {
98
- printSubHeader("音声ファイル生成のテスト");
99
- // 1. クエリから音声ファイルを生成
100
- console.log("➡️ クエリから音声ファイル生成");
101
- const outputPath = (0, path_1.join)((0, os_1.tmpdir)(), `voicevox-${Date.now()}.wav`);
102
- const filePath = await client.generateAudioFile(query, outputPath, speaker);
103
- console.log(`✅ 音声ファイル生成: ${filePath}`);
104
- // ファイルが存在するか確認
105
- const fileExists = await fs
106
- .stat(filePath)
107
- .then(() => true)
108
- .catch(() => false);
109
- console.log(`📂 ファイルの存在確認: ${fileExists ? "✅ 存在します" : "❌ 存在しません"}`);
110
- // 生成した音声ファイルを再生
111
- if (fileExists) {
112
- await playAudioFile(filePath, "クエリから生成した音声");
113
- }
114
- // 2. テキストから直接音声ファイルを生成
115
- console.log("\n➡️ テキストから直接音声ファイル生成");
116
- const directFilePath = await client.generateAudioFile("直接ファイルに変換するテスト。", undefined, speaker);
117
- console.log(`✅ 直接音声ファイル生成: ${directFilePath}`);
118
- await playAudioFile(directFilePath, "テキストから直接生成した音声");
119
- }
120
- /**
121
- * 再生速度変更機能をテストする
122
- */
123
- async function testSpeedScale(client, speaker) {
124
- printSubHeader("再生速度の変更テスト");
125
- // 1. 速い再生速度のテスト
126
- console.log("➡️ 再生速度を1.5倍に設定したテスト");
127
- const speedTestFilePath = await client.generateAudioFile("これは再生速度を1.5倍に設定したテストです。", (0, path_1.join)((0, os_1.tmpdir)(), `voicevox-speed-${Date.now()}.wav`), speaker, 1.5 // 速度を1.5倍に設定
128
- );
129
- console.log(`✅ 再生速度1.5倍: ${speedTestFilePath}`);
130
- await playAudioFile(speedTestFilePath, "速度を1.5倍に設定した音声");
131
- // 遅い再生速度のテストはタイムアウトを起こしやすいため、条件付きでスキップ
132
- const doSlowTest = process.env.TEST_SLOW_SPEED === "true";
133
- if (doSlowTest) {
134
- // 2. 遅い再生速度のテスト
135
- console.log("\n➡️ 再生速度を0.8倍に設定したテスト");
136
- try {
137
- const slowSpeedTestFilePath = await client.generateAudioFile("これは再生速度を0.8倍に設定したテストです。ゆっくり話します。", (0, path_1.join)((0, os_1.tmpdir)(), `voicevox-slow-${Date.now()}.wav`), speaker, 0.8 // 速度を0.8倍に設定
138
- );
139
- console.log(`✅ 再生速度0.8倍: ${slowSpeedTestFilePath}`);
140
- await playAudioFile(slowSpeedTestFilePath, "速度を0.8倍に設定した音声");
141
- }
142
- catch (error) {
143
- console.warn(`⚠️ 遅い再生速度のテストはスキップされました: ${error}`);
144
- }
145
- }
146
- else {
147
- console.log("\n⏭️ 再生速度0.8倍のテストはスキップします (タイムアウト防止のため)");
148
- }
149
- }
150
- /**
151
- * 音声生成キュー機能をテストする
152
- */
153
- async function testAudioQueue(client, query, speaker) {
154
- printSubHeader("音声生成キューテスト");
155
- // クエリを使って音声生成キューに追加
156
- console.log("➡️ クエリを使って音声生成キューへの追加");
157
- const enqueueResult = await client.enqueueAudioGeneration(query, speaker);
158
- console.log(`✅ キュー追加結果:`, enqueueResult);
159
- }
160
- /**
161
- * VoicevoxClientの基本機能をテストする統合関数
162
- */
163
- async function testClient() {
164
- try {
165
- printHeader("VoicevoxClient直接テスト");
166
- const client = new voicevox_client_1.VoicevoxClient({
167
- url: "http://localhost:50021",
168
- defaultSpeaker: 1,
169
- defaultSpeedScale: 1.0,
170
- });
171
- // テスト用の話者
172
- const speaker = 5; // 四国めたん (ノーマル)
173
- // 1. 基本的なテキスト読み上げとクエリ生成
174
- const query = await testTextToSpeech(client, speaker);
175
- // 2. 音声ファイル生成
176
- await testAudioFileGeneration(client, query, speaker);
177
- // 3. 再生速度変更
178
- await testSpeedScale(client, speaker);
179
- // 4. 音声生成キュー
180
- await testAudioQueue(client, query, speaker);
181
- return query; // 後のテストで使用するためにクエリを返す
182
- }
183
- catch (error) {
184
- console.error("❌ クライアントテスト中にエラーが発生しました:", error);
185
- throw error;
186
- }
187
- }
188
- // ----- MCPツール関数 -----
189
- /**
190
- * speak MCPツールをテストする
191
- */
192
- async function testSpeakTool(client) {
193
- printSubHeader("speak ツールのテスト");
194
- // speak ツールハンドラ
195
- const speakHandler = async (args) => {
196
- try {
197
- const { text, speaker, speedScale } = args;
198
- console.log(`➡️ テキスト「${text}」を話者${speaker}、速度${speedScale || 1.0}で発話`);
199
- const result = await client.speak(text, speaker, speedScale);
200
- console.log("✅ speak 結果:", result);
201
- return {
202
- content: [{ type: "text", text: result }],
203
- };
204
- }
205
- catch (error) {
206
- const errorMessage = error instanceof Error ? error.message : String(error);
207
- console.error("❌ エラーが発生しました:", error);
208
- return {
209
- content: [{ type: "text", text: `エラー: ${errorMessage}` }],
210
- };
211
- }
212
- };
213
- // 通常のテスト
214
- await speakHandler({ text: "MCPツールからのテスト発話です。", speaker: 1 });
215
- // 速度を変更したテスト
216
- await speakHandler({
217
- text: "MCPツールから速度を1.3倍に設定したテスト発話です。",
218
- speaker: 1,
219
- speedScale: 1.3,
220
- });
221
- }
222
- /**
223
- * generate_query MCPツールをテストする
224
- */
225
- async function testGenerateQueryTool(client) {
226
- printSubHeader("generate_query ツールのテスト");
227
- // generate_query ツールハンドラ
228
- const generateQueryHandler = async (args) => {
229
- try {
230
- const { text, speaker, speedScale } = args;
231
- console.log(`➡️ テキスト「${text}」を話者${speaker}、速度${speedScale || 1.0}でクエリ生成`);
232
- const generatedQuery = await client.generateQuery(text, speaker, speedScale);
233
- const queryJson = JSON.stringify(generatedQuery);
234
- console.log("✅ クエリ生成結果 (一部):", queryJson.substring(0, 100) + "...");
235
- return {
236
- content: [{ type: "text", text: queryJson }],
237
- };
238
- }
239
- catch (error) {
240
- const errorMessage = error instanceof Error ? error.message : String(error);
241
- console.error("❌ エラーが発生しました:", error);
242
- return {
243
- content: [{ type: "text", text: `エラー: ${errorMessage}` }],
244
- };
245
- }
246
- };
247
- // 実行
248
- const queryResponse = await generateQueryHandler({
249
- text: "MCPツールからのクエリ生成テスト。",
250
- speaker: 1,
251
- speedScale: 1.2,
252
- });
253
- // テキストからJSONに変換
254
- return JSON.parse(queryResponse.content[0].text);
255
- }
256
- /**
257
- * synthesize_file MCPツールをテストする
258
- */
259
- async function testSynthesizeFileTool(client, query) {
260
- printSubHeader("synthesize_file ツールのテスト");
261
- // synthesize_file ツールハンドラ
262
- const synthesizeFileHandler = async (args) => {
263
- try {
264
- const { query: testQuery, output, speaker, speedScale } = args;
265
- console.log(`➡️ クエリから音声ファイルを生成: 出力パス=${output}`);
266
- const filePath = await client.generateAudioFile(testQuery, output, speaker, speedScale);
267
- console.log("✅ ファイル生成結果:", filePath);
268
- return {
269
- content: [{ type: "text", text: filePath }],
270
- };
271
- }
272
- catch (error) {
273
- const errorMessage = error instanceof Error ? error.message : String(error);
274
- console.error("❌ エラーが発生しました:", error);
275
- return {
276
- content: [{ type: "text", text: `エラー: ${errorMessage}` }],
277
- };
278
- }
279
- };
280
- // 実行
281
- const testOutputPath = "";
282
- const fileResponse = await synthesizeFileHandler({
283
- query: query,
284
- output: testOutputPath,
285
- speaker: 1,
286
- speedScale: 0.9,
287
- });
288
- return fileResponse.content[0].text;
289
- }
290
- /**
291
- * MCPツールをテストする統合関数
292
- */
293
- async function testMcpTools(query) {
294
- try {
295
- printHeader("MCPツールテスト");
296
- // VoicevoxClientを初期化
297
- const client = new voicevox_client_1.VoicevoxClient({
298
- url: process.env.VOICEVOX_URL ?? "http://localhost:50021",
299
- defaultSpeaker: 1,
300
- defaultSpeedScale: Number(process.env.VOICEVOX_DEFAULT_SPEED_SCALE || "1.0"),
301
- });
302
- // 1. speak ツールのテスト
303
- await testSpeakTool(client);
304
- // 2. generate_query ツールのテスト
305
- const generatedQuery = await testGenerateQueryTool(client);
306
- // 3. synthesize_file ツールのテスト
307
- const filePath = await testSynthesizeFileTool(client, generatedQuery);
308
- // 生成したファイルを再生
309
- printSubHeader("生成したファイルの再生テスト");
310
- console.log(`➡️ ファイル ${filePath} を再生します...`);
311
- await playAudioFile(filePath, "MCPツールで生成した音声ファイル");
312
- console.log("✅ ファイルの再生が完了しました");
313
- // 待機してキューの処理が完了するのを待つ
314
- console.log("\n⏳ MCP音声再生を待機しています...");
315
- await new Promise((resolve) => setTimeout(resolve, 3000));
316
- }
317
- catch (error) {
318
- console.error("❌ MCPツールテスト中にエラーが発生しました:", error);
319
- throw error;
320
- }
321
- }
322
- // ----- メイン実行関数 -----
323
- /**
324
- * メイン実行関数
325
- */
326
- async function main() {
327
- try {
328
- console.log("🚀 VOICEVOXテストを開始します...");
329
- // クライアントテスト実行
330
- const query = await testClient();
331
- // MCPツールテスト実行
332
- await testMcpTools(query);
333
- console.log("\n🎉 すべてのテストが完了しました!");
334
- }
335
- catch (error) {
336
- console.error("❌ テスト中にエラーが発生しました:", error);
337
- process.exit(1);
338
- }
339
- finally {
340
- // 強制的にプロセスを終了
341
- console.log("👋 プロセスを終了します...");
342
- setTimeout(() => process.exit(0), 1000);
343
- }
344
- }
345
- // プログラム実行
346
- main();
347
- //# sourceMappingURL=test.js.map
package/dist/test.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"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"}