@mcptoolshop/voice-soundboard-mcp 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.
Files changed (3) hide show
  1. package/README.md +119 -21
  2. package/dist/server.js +1 -1
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -1,3 +1,7 @@
1
+ <p align="center">
2
+ <strong>English</strong> | <a href="README.ja.md">日本語</a> | <a href="README.zh.md">中文</a> | <a href="README.es.md">Español</a> | <a href="README.fr.md">Français</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.it.md">Italiano</a> | <a href="README.pt-BR.md">Português</a>
3
+ </p>
4
+
1
5
  <p align="center">
2
6
  <img src="https://raw.githubusercontent.com/mcp-tool-shop-org/mcp-voice-soundboard/main/assets/logo-dark.jpg" alt="MCP Voice Soundboard" width="420" />
3
7
  </p>
@@ -5,7 +9,7 @@
5
9
  <h3 align="center">Text-to-speech MCP server for AI agents.</h3>
6
10
 
7
11
  <p align="center">
8
- <a href="https://github.com/mcp-tool-shop-org/mcp-voice-soundboard/actions"><img src="https://img.shields.io/github/actions/workflow/status/mcp-tool-shop-org/mcp-voice-soundboard/ci.yml?style=flat-square&label=CI" alt="CI"></a>
12
+ <a href="https://github.com/mcp-tool-shop-org/mcp-voice-soundboard/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/mcp-tool-shop-org/mcp-voice-soundboard/ci.yml?branch=main&style=flat-square&label=CI" alt="CI"></a>
9
13
  <a href="https://www.npmjs.com/package/@mcptoolshop/voice-soundboard-mcp"><img src="https://img.shields.io/npm/v/@mcptoolshop/voice-soundboard-mcp?style=flat-square&color=cb3837&logo=npm" alt="npm"></a>
10
14
  <img src="https://img.shields.io/badge/node-%E2%89%A520-339933?style=flat-square&logo=node.js&logoColor=white" alt="Node.js 20+">
11
15
  <img src="https://img.shields.io/badge/TypeScript-5.7-3178c6?style=flat-square&logo=typescript&logoColor=white" alt="TypeScript">
@@ -13,7 +17,7 @@
13
17
  </p>
14
18
 
15
19
  <p align="center">
16
- 12 voices &bull; 5 presets &bull; 8 emotions &bull; SSML-lite &bull; SFX tags &bull; multi-speaker dialogue<br>
20
+ 48 voices &bull; 9 languages &bull; 5 presets &bull; 8 emotions &bull; SSML-lite &bull; SFX tags &bull; multi-speaker dialogue<br>
17
21
  Swappable TTS backends. Guardrails built in. Ships as a single <code>npx</code> command.
18
22
  </p>
19
23
 
@@ -23,7 +27,7 @@
23
27
 
24
28
  - **MCP native** &mdash; stdio transport, works with Claude Desktop, Cursor, and any MCP client
25
29
  - **5 tools** &mdash; `voice_speak`, `voice_dialogue`, `voice_status`, `voice_interrupt`, `voice_inner_monologue`
26
- - **12 approved voices** &mdash; curated set with presets (`narrator`, `announcer`, `whisper`, `storyteller`, `assistant`)
30
+ - **48 approved voices, 9 languages** &mdash; English (American + British), Japanese, Mandarin, Spanish, French, Hindi, Italian, Brazilian Portuguese. Curated presets: `narrator`, `announcer`, `whisper`, `storyteller`, `assistant`
27
31
  - **Emotion spans** &mdash; 8 emotions via `[happy]...[/happy]` inline markup
28
32
  - **SSML-lite** &mdash; `<break>`, `<emphasis>`, `<prosody>` without full SSML complexity
29
33
  - **SFX tags** &mdash; `[ding]`, `[chime]`, `[whoosh]`, `[tada]`, `[error]`, `[click]` inline sound effects
@@ -129,20 +133,110 @@ category?: "thinking" # general | thinking | observation | debug
129
133
 
130
134
  ## Voices
131
135
 
132
- | ID | Name | Accent | Gender |
133
- |----|------|--------|--------|
134
- | `af_aoede` | Aoede | American | Female |
135
- | `af_jessica` | Jessica | American | Female |
136
- | `af_sky` | Sky | American | Female |
137
- | `am_eric` | Eric | American | Male |
138
- | `am_fenrir` | Fenrir | American | Male |
139
- | `am_liam` | Liam | American | Male |
140
- | `am_onyx` | Onyx | American | Male |
141
- | `bf_alice` | Alice | British | Female |
142
- | `bf_emma` | Emma | British | Female |
143
- | `bf_isabella` | Isabella | British | Female |
144
- | `bm_george` | George | British | Male |
145
- | `bm_lewis` | Lewis | British | Male |
136
+ 48 voices across 9 languages. Language is auto-inferred from the voice ID prefix — no configuration required.
137
+
138
+ | Prefix | Language |
139
+ |--------|----------|
140
+ | `af_` / `am_` | English (American) |
141
+ | `bf_` / `bm_` | English (British) |
142
+ | `jf_` / `jm_` | Japanese |
143
+ | `zf_` / `zm_` | Mandarin Chinese |
144
+ | `ef_` / `em_` | Spanish |
145
+ | `ff_` | French |
146
+ | `hf_` / `hm_` | Hindi |
147
+ | `if_` / `im_` | Italian |
148
+ | `pf_` / `pm_` | Brazilian Portuguese |
149
+
150
+ ### English — American
151
+
152
+ | ID | Name | Gender | Style |
153
+ |----|------|--------|-------|
154
+ | `af_aoede` | Aoede | Female | Musical |
155
+ | `af_bella` | Bella | Female | Warm |
156
+ | `af_heart` | Heart | Female | Caring |
157
+ | `af_jessica` | Jessica | Female | Professional |
158
+ | `af_kore` | Kore | Female | Youthful |
159
+ | `af_nicole` | Nicole | Female | Soft |
160
+ | `af_sarah` | Sarah | Female | Clear |
161
+ | `af_sky` | Sky | Female | Airy |
162
+ | `am_eric` | Eric | Male | Confident |
163
+ | `am_fenrir` | Fenrir | Male | Powerful |
164
+ | `am_liam` | Liam | Male | Friendly |
165
+ | `am_michael` | Michael | Male | Deep |
166
+ | `am_onyx` | Onyx | Male | Smooth |
167
+ | `am_puck` | Puck | Male | Playful |
168
+
169
+ ### English — British
170
+
171
+ | ID | Name | Gender | Style |
172
+ |----|------|--------|-------|
173
+ | `bf_alice` | Alice | Female | Proper |
174
+ | `bf_emma` | Emma | Female | Refined |
175
+ | `bf_isabella` | Isabella | Female | Warm |
176
+ | `bm_fable` | Fable | Male | Storytelling |
177
+ | `bm_george` | George | Male | Authoritative |
178
+ | `bm_lewis` | Lewis | Male | Friendly |
179
+
180
+ ### Japanese
181
+
182
+ | ID | Name | Gender | Style |
183
+ |----|------|--------|-------|
184
+ | `jf_alpha` | Alpha | Female | Clear |
185
+ | `jf_gongitsune` | Gongitsune | Female | Storytelling |
186
+ | `jf_nezuko` | Nezuko | Female | Gentle |
187
+ | `jf_tebukuro` | Tebukuro | Female | Warm |
188
+ | `jm_kumo` | Kumo | Male | Calm |
189
+
190
+ ### Mandarin Chinese
191
+
192
+ | ID | Name | Gender | Style |
193
+ |----|------|--------|-------|
194
+ | `zf_xiaobei` | Xiaobei | Female | Bright |
195
+ | `zf_xiaoni` | Xiaoni | Female | Gentle |
196
+ | `zf_xiaoxiao` | Xiaoxiao | Female | Clear |
197
+ | `zf_xiaoyi` | Xiaoyi | Female | Warm |
198
+ | `zm_yunjian` | Yunjian | Male | Authoritative |
199
+ | `zm_yunxi` | Yunxi | Male | Friendly |
200
+ | `zm_yunxia` | Yunxia | Male | Calm |
201
+ | `zm_yunyang` | Yunyang | Male | Confident |
202
+
203
+ ### Spanish
204
+
205
+ | ID | Name | Gender | Style |
206
+ |----|------|--------|-------|
207
+ | `ef_dora` | Dora | Female | Warm |
208
+ | `em_alex` | Alex | Male | Confident |
209
+ | `em_santa` | Santa | Male | Jolly |
210
+
211
+ ### French
212
+
213
+ | ID | Name | Gender | Style |
214
+ |----|------|--------|-------|
215
+ | `ff_siwis` | Siwis | Female | Refined |
216
+
217
+ ### Hindi
218
+
219
+ | ID | Name | Gender | Style |
220
+ |----|------|--------|-------|
221
+ | `hf_alpha` | Alpha | Female | Clear |
222
+ | `hf_beta` | Beta | Female | Warm |
223
+ | `hm_omega` | Omega | Male | Deep |
224
+ | `hm_psi` | Psi | Male | Calm |
225
+
226
+ ### Italian
227
+
228
+ | ID | Name | Gender | Style |
229
+ |----|------|--------|-------|
230
+ | `if_sara` | Sara | Female | Warm |
231
+ | `im_nicola` | Nicola | Male | Confident |
232
+
233
+ ### Brazilian Portuguese
234
+
235
+ | ID | Name | Gender | Style |
236
+ |----|------|--------|-------|
237
+ | `pf_dora` | Dora | Female | Warm |
238
+ | `pm_alex` | Alex | Male | Confident |
239
+ | `pm_santa` | Santa | Male | Jolly |
146
240
 
147
241
  ### Presets
148
242
 
@@ -197,12 +291,10 @@ pnpm build
197
291
 
198
292
  # Test (342 tests)
199
293
  pnpm test
200
-
201
- # Lint
202
- pnpm --filter @mcptoolshop/voice-soundboard-core exec ruff check . # Python legacy
203
- pnpm exec ruff check voice_soundboard/ tests/ --ignore=E501 # Python legacy
204
294
  ```
205
295
 
296
+ > Part of [MCP Tool Shop](https://mcp-tool-shop.github.io/)
297
+
206
298
  ### Project Structure
207
299
 
208
300
  ```
@@ -249,6 +341,12 @@ See [THREAT_MODEL.md](THREAT_MODEL.md) for the full threat surface analysis.
249
341
  |---------|-------------|
250
342
  | [soundboard-plugin](https://github.com/mcp-tool-shop-org/soundboard-plugin) | Claude Code plugin &mdash; slash commands, emotion-aware narration |
251
343
 
344
+ ## Support
345
+
346
+ - **Questions / help:** [Discussions](https://github.com/mcp-tool-shop-org/mcp-voice-soundboard/discussions)
347
+ - **Bug reports:** [Issues](https://github.com/mcp-tool-shop-org/mcp-voice-soundboard/issues)
348
+ - **Security:** [SECURITY.md](SECURITY.md)
349
+
252
350
  ## License
253
351
 
254
352
  [MIT](LICENSE)
package/dist/server.js CHANGED
@@ -61,7 +61,7 @@ export function createServer(options) {
61
61
  }
62
62
  const server = new McpServer({
63
63
  name: "voice-soundboard",
64
- version: "0.2.0",
64
+ version: "0.2.1",
65
65
  }, {
66
66
  capabilities: { tools: {} },
67
67
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcptoolshop/voice-soundboard-mcp",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "MCP server for text-to-speech — 48 voices, 9 languages, 5 presets, emotion spans, SSML-lite, multi-speaker dialogue, SFX tags, and built-in guardrails.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",