voicevox_speakLABSCO SUMMARY
Japanese speech from an assistant, with an in-chat player that makes the output editable rather than final.
Server-side playback is one call and needs nothing else. The player is the part worth the setup: audio plays in the client, so it survives a remote connection and a machine with no sound card, and every segment can be re-voiced, re-timed or re-accented after you have heard it. The user dictionary matters more than it sounds — VOICEVOX will mispronounce names until it is taught, and here teaching it is a tool call instead of a trip to another application.
What it is
A text-to-speech server driving a local VOICEVOX Engine. It speaks text on the machine running the server, writes a WAV file, or opens an interactive player inside the conversation where each segment can be re-voiced, re-timed and re-accented.
What you get
- voicevox_speak plays text immediately with a chosen speaker and speedScale, and can wait for playback to start or finish before it returns
- Several speakers in one call, switched per segment, so a two-character dialogue is a single request rather than a queue of them
- voicevox_speak_player renders a player in the chat through MCP Apps: audio plays on the client side, so the machine running the server needs no audio device and a remote connection still works
- Inside that player — play and pause, track navigation, per-segment speed, volume, intonation and pause length, accent-position editing, drag-and-drop reordering, and WAV export of every track
- voicevox_resynthesize_player re-renders one track by index with a different speaker or new parameters, and voicevox_get_player_state reads the segments back, paginated, so the model can tune them
- voicevox_synthesize_file writes an audio file and returns its absolute path
- voicevox_get_accent_phrases returns the reading and accent positions in inline notation, so a pronunciation can be checked before it is spoken aloud
- The VOICEVOX user dictionary managed from the conversation: add, update and delete words singly or in batches with pronunciations in the same inline accent notation, plus voicevox_open_dictionary_ui for the manager
- voicevox_get_speakers lists the available voices with the exact IDs to pass, and voicevox_ping says whether the engine is reachable at all
Requirements
Node.js 20.0.0 or newer, or Bun, or the bundled Docker Compose setup — plus a VOICEVOX Engine already running, since this server is a client to it. ffplay is optional and recommended: with it on PATH, playback streams over stdin at low latency; without it, audio falls back to a temporary file played by PowerShell on Windows, afplay on macOS or aplay on Linux. The in-chat player needs a host that supports MCP Apps: Claude Desktop over stdio works as-is, ChatGPT connects over HTTP and needs VOICEVOX_PLAYER_DOMAIN set, and that variable should stay unset when bridging Claude Desktop through mcp-remote. Where MCP Apps is unavailable the player tool simply is not offered and server-side speaking still works.
Setup effort
One command — npx -y @kajidog/mcp-tts-voicevox
USE CASES
Having the assistant read something out loud
List the speakers to get an exact ID, then speak the text at the speed you want, waiting for it to finish if the next step depends on that.
Producing a two-character dialogue
One player call carries both voices as separate tracks, and a follow-up re-renders any single track with a different speaker or timing.
Fixing a name it keeps mispronouncing
Read back the accent phrases to see what it thinks the reading is, then add the word to the user dictionary with the pronunciation and accent you want.
Getting an audio file rather than playback
voicevox_synthesize_file renders the text and hands back an absolute path you can use elsewhere.
Using it over a remote connection
The player plays audio in the client, so nothing depends on the server having an audio device; the player state can be read back and adjusted from the model side.
Working out why nothing is coming out
voicevox_ping answers whether the VOICEVOX Engine is running and reachable, which is the usual cause.
16 tools
Listed in project docs. Your client may show a different list.
voicevox_speak_playervoicevox_resynthesize_playervoicevox_get_player_statevoicevox_open_dictionary_uivoicevox_pingvoicevox_get_speakersvoicevox_stop_speakervoicevox_synthesize_filevoicevox_get_accent_phrasesvoicevox_get_user_dictionaryvoicevox_add_user_dictionary_wordvoicevox_update_user_dictionary_wordvoicevox_delete_user_dictionary_wordvoicevox_add_user_dictionary_wordsvoicevox_update_user_dictionary_wordsBEFORE YOU INSTALL
What to know first
Tools you get
16 tools named in the project's documentation. A connection also lists 13 underscore-prefixed _for_player tools that the built-in audio player calls itself. VOICEVOX_DISABLED_TOOLS and VOICEVOX_DISABLED_GROUPS remove tools, and in Docker voicevox_speak is off by default for lack of an audio device.
Requires
- npx on PATH
- Node.js 20.0.0 or later
- A running VOICEVOX Engine (default http://localhost:50021)
Where it runs
All 3 documented setups run the server on your machine.
INSTALLATION
Connect your client
Server setup
npx -y @kajidog/mcp-tts-voicevoxMCP Clients
Claude Desktop — stdio
{
"mcpServers": {
"tts-mcp": {
"command": "npx",
"args": [
"-y",
"@kajidog/mcp-tts-voicevox"
]
}
}
}Claude Desktop — HTTP
Start the server in HTTP mode first and leave it running (the VOICEVOX Engine must already be running). On Linux/macOS: MCP_HTTP_MODE=true MCP_HTTP_PORT=3000 npx @kajidog/mcp-tts-voicevox; in Windows PowerShell: $env:MCP_HTTP_MODE='true'; $env:MCP_HTTP_PORT='3000'; npx @kajidog/mcp-tts-voicevox. Then add this block, which connects Claude Desktop to that server through mcp-remote:
{
"mcpServers": {
"tts-mcp": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"http://localhost:3000/mcp"
]
}
}
}Any MCP client — Bun
{
"mcpServers": {
"mcp-tts-voicevox": {
"command": "bunx",
"args": [
"@kajidog/mcp-tts-voicevox"
]
}
}
}