Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Voice Soundboard

БесплатноНе проверен

A text-to-speech MCP server with 48 voices across 9 languages, supporting emotion spans, SFX tags, and multi-speaker dialogue. Deployable via a single npx comma

GitHubEmbed

Описание

A text-to-speech MCP server with 48 voices across 9 languages, supporting emotion spans, SFX tags, and multi-speaker dialogue. Deployable via a single npx command with built-in guardrails and swappable backends.

README

日本語 | 中文 | Español | Français | हिन्दी | Italiano | Português (BR)

MCP Voice Soundboard

CI npm Coverage MIT License Landing Page

48 voices • 9 languages • 5 presets • 8 emotions • SSML-lite • SFX tags • multi-speaker dialogue
Swappable TTS backends. Guardrails built in. Ships as a single npx command.


Highlights

  • MCP native — stdio transport, works with Claude Desktop, Cursor, and any MCP client
  • 5 toolsvoice_speak, voice_dialogue, voice_status, voice_interrupt, voice_inner_monologue
  • 48 approved voices, 9 languages — English (American + British), Japanese, Mandarin, Spanish, French, Hindi, Italian, Brazilian Portuguese. Curated presets: narrator, announcer, whisper, storyteller, assistant
  • Emotion spans — 8 emotions via {joy}...{/joy} inline markup
  • SSML-lite<break>, <emphasis>, <prosody> without full SSML complexity
  • SFX tags[ding], [chime], [whoosh], [tada], [pop], [click] inline sound effects
  • Multi-speaker dialogueSpeaker: line format with auto-cast and pause directives
  • Guardrails — rate limiting, concurrency semaphore, request timeouts, path traversal protection, secret redaction
  • Swappable backends — Mock (built-in), HTTP proxy, Python bridge, or bring your own

Quick Start

npx @mcptoolshop/voice-soundboard-mcp

Or install globally:

npm install -g @mcptoolshop/voice-soundboard-mcp
voice-soundboard-mcp

Claude Desktop / MCP Client Config

Add to your MCP client configuration (e.g. claude_desktop_config.json):

{
  "mcpServers": {
    "voice-soundboard": {
      "command": "npx",
      "args": ["-y", "@mcptoolshop/voice-soundboard-mcp"]
    }
  }
}

With options:

{
  "mcpServers": {
    "voice-soundboard": {
      "command": "npx",
      "args": [
        "-y", "@mcptoolshop/voice-soundboard-mcp",
        "--artifact=path",
        "--output-dir=/tmp/voice-output",
        "--timeout=30000",
        "--max-concurrent=2"
      ]
    }
  }
}

MCP Tools

voice_speak

Synthesize speech from text.

text:         "Hello world!"
voice?:       "am_fenrir"          # Voice ID or preset name
speed?:       1.0                  # 0.5 - 2.0
mood?:        "dry"                # Humor mood (sensor-humor integration)
format?:      "wav"                # wav | mp3 | ogg | raw
artifactMode?: "path"             # path | base64
outputDir?:   "subdir"            # Subdirectory within output root
sfx?:         true                # Enable [ding], [chime] etc.

voice_dialogue

Multi-speaker dialogue synthesis.

script:       "Alice: Hello!\nBob: Hey there!"
cast?:        { "Alice": "af_sky", "Bob": "am_fenrir" }
speed?:       1.0
concat?:      true                 # Combine into single file
debug?:       true                 # Include cue_sheet
artifactMode?: "path"             # path | base64
outputDir?:   "subdir"            # Subdirectory within output root

voice_status

Returns engine health, available voices, presets, and backend info. No arguments.

voice_interrupt

Stop or rollback active synthesis.

streamId?:    "stream-123"
reason?:      "user_spoke"         # user_spoke | context_change | timeout | manual

voice_inner_monologue

Ephemeral micro-utterances for ambient narration. Requires --ambient flag or VOICE_SOUNDBOARD_AMBIENT_ENABLED=1.

text:         "Interesting..."     # Max 500 chars, auto-redacted
category?:    "thinking"           # general | thinking | observation | debug

Voices

48 voices across 9 languages. Language is auto-inferred from the voice ID prefix — no configuration required.

Prefix Language
af_ / am_ English (American)
bf_ / bm_ English (British)
jf_ / jm_ Japanese
zf_ / zm_ Mandarin Chinese
ef_ / em_ Spanish
ff_ French
hf_ / hm_ Hindi
if_ / im_ Italian
pf_ / pm_ Brazilian Portuguese

English — American

ID Name Gender Style
af_aoede Aoede Female Musical
af_bella Bella Female Warm
af_heart Heart Female Caring
af_jessica Jessica Female Professional
af_kore Kore Female Youthful
af_nicole Nicole Female Soft
af_sarah Sarah Female Clear
af_sky Sky Female Airy
am_eric Eric Male Confident
am_fenrir Fenrir Male Powerful
am_liam Liam Male Friendly
am_michael Michael Male Deep
am_onyx Onyx Male Smooth
am_puck Puck Male Playful

English — British

ID Name Gender Style
bf_alice Alice Female Proper
bf_emma Emma Female Refined
bf_isabella Isabella Female Warm
bm_fable Fable Male Storytelling
bm_george George Male Authoritative
bm_lewis Lewis Male Friendly

Japanese

ID Name Gender Style
jf_alpha Alpha Female Clear
jf_gongitsune Gongitsune Female Storytelling
jf_nezuko Nezuko Female Gentle
jf_tebukuro Tebukuro Female Warm
jm_kumo Kumo Male Calm

Mandarin Chinese

ID Name Gender Style
zf_xiaobei Xiaobei Female Bright
zf_xiaoni Xiaoni Female Gentle
zf_xiaoxiao Xiaoxiao Female Clear
zf_xiaoyi Xiaoyi Female Warm
zm_yunjian Yunjian Male Authoritative
zm_yunxi Yunxi Male Friendly
zm_yunxia Yunxia Male Calm
zm_yunyang Yunyang Male Confident

Spanish

ID Name Gender Style
ef_dora Dora Female Warm
em_alex Alex Male Confident
em_santa Santa Male Jolly

French

ID Name Gender Style
ff_siwis Siwis Female Refined

Hindi

ID Name Gender Style
hf_alpha Alpha Female Clear
hf_beta Beta Female Warm
hm_omega Omega Male Deep
hm_psi Psi Male Calm

Italian

ID Name Gender Style
if_sara Sara Female Warm
im_nicola Nicola Male Confident

Brazilian Portuguese

ID Name Gender Style
pf_dora Dora Female Warm
pm_alex Alex Male Confident
pm_santa Santa Male Jolly

Presets

Preset Voice Speed Description
narrator bm_george 0.95 Calm, clear, documentary style
announcer am_eric 1.1 Bold, energetic, broadcast style
whisper af_sky 0.85 Soft, intimate, gentle
storyteller bf_emma 0.90 Expressive, varied pacing
assistant af_jessica 1.0 Friendly, helpful, conversational

Emotion Spans

Wrap text in emotion tags to control prosody and voice routing:

{joy}Great news!{/joy} But {calm}let me explain.{/calm}

Supported: neutral, serious, friendly, professional, calm, joy, urgent, whisper

CLI Flags

Flag Default Description
--artifact=path|base64 path Audio delivery mode
--output-dir=<path> <tmpdir>/voice-soundboard/ Output directory
--backend=mock|http|python mock Backend selection
--ambient off Enable inner-monologue system
--max-concurrent=<n> 3 Max concurrent synthesis requests
--timeout=<ms> 60000 Per-request timeout
--retention-minutes=<n> 240 Auto-cleanup age (0 to disable)

Packages

This is a pnpm monorepo with two publishable packages:

Package Description npm
@mcptoolshop/voice-soundboard-core Backend-agnostic core library (validation, SSML, chunking, schemas) npm
@mcptoolshop/voice-soundboard-mcp MCP server with CLI, guardrails, and transport npm

Development

# Install
pnpm install

# Build
pnpm build

# Test (363 tests)
pnpm test

# Build + test in one step
pnpm verify

Part of MCP Tool Shop

Project Structure

mcp-voice-soundboard/
  packages/
    core/               @mcptoolshop/voice-soundboard-core
      src/
        limits.ts         SHIP_LIMITS, text/chunk limits
        schemas.ts        VoiceRequest, VoiceResponse, error codes
        artifact.ts       resolveOutputDir, path sandbox
        voices.ts         Approved voice registry + presets
        emotion.ts        Emotion span parser
        ssml/             SSML-lite parser + limits
        chunking/         Text chunker
        sfx/              SFX tag parser + registry
        sandbox.ts        Safe filenames, symlink checks
        ambient.ts        AmbientEmitter for inner monologue
        redact.ts         PII/secret redaction
    mcp-server/         @mcptoolshop/voice-soundboard-mcp
      src/
        server.ts         MCP tool registration + guardrail wiring
        cli.ts            CLI entrypoint (stdio transport)
        backend.ts        Backend abstraction + mock/HTTP
        concurrency.ts    SynthesisSemaphore
        rateLimit.ts      ToolRateLimiter (sliding window)
        timeout.ts        withTimeout utility
        retention.ts      Output file cleanup timer
        redact.ts         Server-level redaction
        validation.ts     Synthesis result validation
        tools/            Individual tool handlers
  assets/               Logo, audio event manifests
  docs/                 Architecture docs

Privacy

No telemetry. This tool collects no usage data, sends no analytics, and makes no network requests except to the TTS backend you configure. All processing is local.

Security

See SECURITY.md for vulnerability reporting.

See THREAT_MODEL.md for the full threat surface analysis.

Related

Project Description
soundboard-plugin Claude Code plugin — slash commands, emotion-aware narration

Support

Scorecard

Category Score Notes
A. Security 10/10 SECURITY.md, THREAT_MODEL.md, redaction, no telemetry
B. Error Handling 8/10 Structured error contract (code/hint/retryable), toToolError pattern
C. Operator Docs 9/10 README, CHANGELOG, HANDBOOK, tool docs
D. Shipping Hygiene 9/10 CI, verify script, dependabot, lockfile
E. Identity 10/10 Logo, translations, landing page, metadata
Total 46/50

License

MIT


Built by MCP Tool Shop

from github.com/mcp-tool-shop-org/mcp-voice-soundboard

Установка Voice Soundboard

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/mcp-tool-shop-org/mcp-voice-soundboard

FAQ

Voice Soundboard MCP бесплатный?

Да, Voice Soundboard MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Voice Soundboard?

Нет, Voice Soundboard работает без API-ключей и переменных окружения.

Voice Soundboard — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Voice Soundboard в Claude Desktop, Claude Code или Cursor?

Открой Voice Soundboard на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Voice Soundboard with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории development