voiceroid_daemon-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@voiceroid_daemon-mcpSpeak 'こんにちは、今日はいい天気ですね' with speed 1.2"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
voiceroid_daemon-mcp
MCP (Model Context Protocol) server for VOICEROID2 text-to-speech via voiceroid_daemon.
Features
Text-to-speech generation with VOICEROID2 voices
Text-to-kana phonetic conversion
Customizable voice parameters (volume, speed, pitch, emphasis)
Audio playback support for macOS, Windows, and Linux
Basic authentication support
Related MCP server: Bouyomi-chan MCP Server
Prerequisites
Node.js 18 or higher
voiceroid_daemon running on your system
VOICEROID2 installed (for voiceroid_daemon)
Installation
# Clone the repository
git clone https://github.com/mohemohe/voiceroid_daemon-mcp.git
cd voiceroid_daemon-mcp
# Install dependencies
npm installConfiguration
Create a .env file in the project root (optional):
# voiceroid_daemon server URL (default: http://127.0.0.1:8080)
VOICEROID_DAEMON_URL=http://127.0.0.1:8080
# Basic authentication (if required)
VOICEROID_DAEMON_USERNAME=your_username
VOICEROID_DAEMON_PASSWORD=your_password
# Default voice parameters (optional)
VOICEROID_DEFAULT_VOLUME=1.0 # 0-2
VOICEROID_DEFAULT_SPEED=1.3 # 0.5-4
VOICEROID_DEFAULT_PITCH=1.0 # 0.5-2
VOICEROID_DEFAULT_EMPHASIS=1.1 # 0-2
VOICEROID_DEFAULT_PAUSE_MIDDLE=150 # 80-500
VOICEROID_DEFAULT_PAUSE_LONG=370 # 100-2000
VOICEROID_DEFAULT_PAUSE_SENTENCE=800 # 0-10000Usage
Running the MCP Server
# Run directly with tsx (no build required)
npm start
# Or for development with auto-reload
npm run devConfiguring with Claude Desktop
Add the following to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"voiceroid-daemon": {
"command": "npx",
"args": ["tsx", "/path/to/voiceroid_daemon-mcp/src/index.ts"],
"env": {
"VOICEROID_DAEMON_URL": "http://127.0.0.1:8080"
}
}
}
}Available Tools
test_connection
Test the connection to voiceroid_daemon server.
No parameters requiredconvert_text
Convert Japanese text to phonetic kana reading.
Parameters:
text(string, required): Text to convert to kana
speak_text
Generate and play speech audio from text.
Parameters:
text(string, required): Text to speakkana(string, optional): Phonetic reading in kanavolume(number, optional): Voice volume (0-2, default: 1)speed(number, optional): Speech speed (0.5-4, default: 1)pitch(number, optional): Voice pitch (0.5-2, default: 1)emphasis(number, optional): Emphasis level (0-2, default: 1)
Example Usage in Claude
Once configured, you can use the tools in Claude:
Use the test_connection tool to check if voiceroid_daemon is running.
Convert "こんにちは" to kana using the convert_text tool.
Use speak_text to say "こんにちは、今日はいい天気ですね" with speed 1.2.Troubleshooting
Connection Failed
Ensure voiceroid_daemon is running
Check the URL in your configuration
Verify firewall settings allow connections
Test with curl:
curl http://127.0.0.1:8080/
Audio Playback Issues
macOS: Uses
afplay(built-in)Windows: Uses PowerShell's
Media.SoundPlayerLinux: Requires
aplay(usually part of alsa-utils)
Authentication Errors
If voiceroid_daemon requires authentication, ensure you've set:
VOICEROID_DAEMON_USERNAMEVOICEROID_DAEMON_PASSWORD
Development
# Type checking
npm run typecheck
# Linting
npm run lint
# Run in development mode
npm run devLicense
MIT
Available Tools
3 toolsconvert_textB
Convert text to phonetic kana reading
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to convert to kana |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the conversion action but lacks details on traits like rate limits, error handling, or output format (e.g., whether it returns a string or structured data). This leaves significant gaps in understanding how the tool behaves beyond its basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without any wasted words. It is appropriately sized for a simple tool with one parameter, making it easy to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for a conversion tool. It doesn't explain what the output looks like (e.g., kana format, potential errors), nor does it address behavioral aspects like performance or limitations. For a tool with no structured support, more context is needed to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'text' parameter clearly documented. The description adds no additional meaning beyond what the schema provides, such as examples or constraints on the text input. However, with high schema coverage, the baseline score of 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('convert') and target resource ('text to phonetic kana reading'), with precise differentiation from sibling tools like 'speak_text' (which likely produces audio) and 'test_connection' (which is unrelated). It uses a verb+resource structure that leaves no ambiguity about the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. While it implicitly suggests usage for text-to-kana conversion, it doesn't mention scenarios where it might be preferred over other methods or tools, nor does it specify prerequisites or exclusions. The description assumes context without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
speak_textC
Generate speech audio from text and play it
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to speak | |
| kana | No | Optional phonetic reading in kana | |
| volume | No | Voice volume (0-2, default: 1) | |
| speed | No | Speech speed (0.5-4, default: 1) | |
| pitch | No | Voice pitch (0.5-2, default: 1) | |
| emphasis | No | Emphasis level (0-2, default: 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'play it' which implies an audio output action, but fails to describe critical behaviors like whether this is a read-only or mutative operation, potential side effects (e.g., audio playback on the system), error handling, or performance characteristics. This is inadequate for a tool with audio generation and playback.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just one sentence that efficiently conveys the core functionality. It's front-loaded with the essential action ('Generate speech audio from text') and includes the additional behavior ('and play it') without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that generates and plays audio with 6 parameters and no output schema, the description is insufficient. It lacks information about the audio format, playback mechanism, error conditions, or what happens on success. With no annotations to provide behavioral context, this leaves significant gaps for the agent to understand the tool's full behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, providing clear documentation for all 6 parameters including ranges and defaults. The description adds no additional parameter semantics beyond what's in the schema, so it meets the baseline of 3 where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Generate speech audio from text') and resource ('speech audio'), making it immediately understandable. However, it doesn't distinguish itself from sibling tools like 'convert_text' which might have overlapping functionality, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'convert_text' or 'test_connection'. It lacks context about prerequisites, limitations, or scenarios where this tool is preferred, leaving the agent with minimal usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_connectionB
Test connection to voiceroid_daemon server
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions testing connection but doesn't disclose behavioral traits like what constitutes a successful test, error conditions, timeout behavior, or whether this performs any network operations. For a connection-testing tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero waste—it directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate but lacks details on what the test entails or expected outcomes. It covers the basic purpose but doesn't provide enough context for an agent to fully understand the tool's behavior without additional inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100% (empty schema). The description doesn't need to add parameter semantics, so it meets the baseline of 4 for tools with no parameters, as it appropriately doesn't discuss nonexistent inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as testing connection to a specific server (voiceroid_daemon), using a specific verb ('Test connection') and resource ('voiceroid_daemon server'). However, it doesn't explicitly differentiate from sibling tools (convert_text, speak_text), which are presumably for different operations rather than connection testing alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (testing server connection), but doesn't provide explicit guidance on when to use this tool versus alternatives or prerequisites. Given the sibling tools are for text conversion and speaking, the context suggests this is for connectivity verification before using those tools, but this isn't stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v1.0.0- First observed
convert_text - First observed
speak_text - First observed
test_connection
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose with no overlap: convert_text handles phonetic conversion, speak_text handles speech generation and playback, and test_connection handles server connectivity testing. An agent can easily distinguish between these three functions.
All tools follow a consistent verb_noun pattern with snake_case naming: convert_text, speak_text, and test_connection. The naming is predictable and readable throughout the set.
Three tools is reasonable for a voiceroid daemon server, covering core text-to-speech operations and connectivity. It's slightly minimal but functional for the apparent scope, lacking only minor enhancements like configuration or status tools.
The toolset covers essential text-to-speech workflows: phonetic conversion, speech generation/playback, and server connectivity. Minor gaps exist, such as no tools for managing voice parameters, listing available voices, or controlling playback (e.g., stop/pause), but core functionality is present.
Maintenance
Related MCP Connectors
MCP server for Text-to-Speech
MCP server exposing the AceDataCloud Fish Audio API (text-to-speech with voice conditioning)
AI voice generation: text-to-speech and voice cloning from any MCP client.
MCP server for Speech-to-Text
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that enables LLMs to generate spoken audio from text using OpenAI's Text-to-Speech API, supporting various voices, models, and audio formats.14 npm1MIT
- AlicenseBqualityDmaintenanceA Node.js server that enables AI assistants to interact with Bouyomi-chan's text-to-speech functionality through Model Context Protocol (MCP), allowing for voice reading of text with adjustable parameters.12MIT
- AlicenseAqualityBmaintenanceA text-to-speech MCP server that enables AI assistants to speak using the VOICEVOX engine with support for multi-character conversations. It features queue management, low-latency streaming via FFplay, and cross-platform playback across Windows, macOS, and Linux.7149 npm16ISC
- AlicenseAqualityDmaintenanceMCP server that synthesizes Claude Code responses into Japanese speech using VOICEVOX, enabling audible feedback during development.31MIT