MCP Simple AivisSpeech
This server integrates AivisSpeech for Japanese text-to-speech synthesis and engine monitoring. Key capabilities include:
Text-to-Speech Conversion: Transform text to high-quality Japanese speech with customizable parameters
Voice Selection: Choose from multiple voice characters and styles (default: Anneli ノーマル)
Speech Customization: Adjust speed, pitch, volume, and intonation for precise voice tuning
Task Notifications: Voice-based notifications for process completion
Engine Monitoring: Check status and version of the AivisSpeech engine
Cross-Platform Support: Works on macOS, Windows, and Linux with automatic audio playback
Easy Integration: Simple MCP protocol for AI assistant integration
Utilizes ESLint for code quality and maintaining consistent code style in the MCP server implementation
Requires Node.js 18.0.0+ as runtime environment for the MCP server that connects to the AivisSpeech engine
Uses TypeScript for type-safe implementation of the MCP server and AivisSpeech API client
Employs Vitest for testing the MCP server functionality and AivisSpeech client integration
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., "@MCP Simple AivisSpeechsay 'おはようございます' with a cheerful voice"
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.
MCP Simple AivisSpeech

🙏 Special Thanks
This project is based on mcp-simple-voicevox by @t09tanaka.
We deeply appreciate their excellent work in creating the original MCP server for VOICEVOX, which served as the foundation for this AivisSpeech adaptation.
A Model Context Protocol (MCP) server for seamless integration with AivisSpeech text-to-speech engine. This project enables AI assistants and applications to convert text to natural-sounding Japanese speech with customizable voice parameters.
✨ Features
Text-to-Speech Conversion - High-quality Japanese speech synthesis using AivisSpeech
Multiple Voice Characters - Support for various speakers and voice styles (default: Anneli ノーマル)
Configurable Parameters - Adjust speed, pitch, volume, and intonation
Cross-Platform Audio - Automatic audio playback on macOS, Windows, and Linux
Task Notifications - Voice notifications for process completion
Easy Integration - Simple MCP protocol for AI assistant integration
Engine Status Monitoring - Real-time status checking of AivisSpeech engine
Smart Error Handling - Helpful error messages with speaker suggestions
Related MCP server: AivisSpeech MCP Server
📋 Prerequisites
Node.js - Version 18.0.0 or higher
AivisSpeech Engine - Running on
http://127.0.0.1:10101(default port)Audio System - System audio capabilities for playback
MCP Simple AivisSpeech Configuration
Using Claude Code
When using Claude Code, start the MCP server manually before using it.
Using npx ensures you always get the latest version automatically. No manual updates needed.
Start the AivisSpeech MCP server manually in a separate terminal from the one where you're using Claude Code
npx @shinshin86/mcp-simple-aivisspeech@latestRegister the MCP server with Claude Code
claude mcp add aivisspeech -e AIVISSPEECH_URL=http://127.0.0.1:10101 -- npx @shinshin86/mcp-simple-aivisspeech@latestBy default, the server is added to the local scope (current project only). To make it available across all projects, use the -s user option:
claude mcp add aivisspeech -s user -e AIVISSPEECH_URL=http://127.0.0.1:10101 -- npx @shinshin86/mcp-simple-aivisspeech@latestYou can also add voice notifications to your CLAUDE.md file to automate task completion notifications:
## Task Completion Behavior
- When all tasks are completed, always use the aivisspeech mcp tool to announce "Tasks completed" via voice
- When user input or decision is needed, use the aivisspeech mcp tool to announce "Awaiting your decision" via voice
### Notification Timings
- When asking the user a question
- When all tasks are completed
- When errors or issues occurVerify the tools are recognized
claude mcp list
# Or launch Claude Code and use
/mcpIf aivisspeech is displayed, the setup was successful.
💡 Tip: Claude Code doesn't auto-execute commands for safety. If you forget to start the server, the tools won't appear. During development, keep the above
npxcommand running in a terminal, or use process managers likepm2orsystemd --userfor persistent operation.
Using Claude Desktop
For manual configuration with Claude Desktop, you can simply add the following configuration:
Using npx ensures you always get the latest version automatically. No manual updates needed.
{
"mcpServers": {
"aivisspeech": {
"command": "npx",
"args": ["@shinshin86/mcp-simple-aivisspeech@latest"],
"env": {
"AIVISSPEECH_URL": "http://127.0.0.1:10101"
}
}
}
}⚙️ AivisSpeech Engine Setup
Before using this MCP server, complete these setup steps to ensure AivisSpeech is running locally.
Download AivisSpeech from https://aivis-project.com/
Launch AivisSpeech on your local machine
The engine will start on the default port 10101
Verify the engine is running by visiting
http://127.0.0.1:10101/docs
📖 Other Usage Methods
For Local Development
# Run the MCP server
npm start
# For development with hot reload
npm run dev
# Check if everything is working
npm testFor cloning the repository, installing dependencies, and building:
# Clone repository
git clone https://github.com/shinshin86/mcp-simple-aivisspeech.git
cd mcp-simple-aivisspeech
# Install dependencies
npm install
# Build the project
npm run build🛠️ Available Tools
🎤 speak
Convert text to speech and play audio with customizable voice parameters.
This tool accepts several configuration parameters, including the following options:
text(required): Text to convert to speechspeaker(optional): Speaker/voice ID (default:888753760- Anneli ノーマル)speedScale(optional): Speech speed multiplier (0.5-2.0, default:1.0)pitchScale(optional): Pitch adjustment (-0.15-0.15, default:0.0)volumeScale(optional): Volume level (0.0-2.0, default:1.0)playAudio(optional): Whether to play the generated audio (default:true)
Example usage:
{
"text": "こんにちは、世界!",
"speaker": 888753760,
"speedScale": 1.2,
"pitchScale": 0.05,
"volumeScale": 1.5
}👥 get_speakers
Retrieve a list of all available voice characters and their styles.
This function returns: List of speakers with their IDs, names, and available voice styles.
🔔 notify_completion
Play a voice notification when tasks are completed.
This tool accepts several configuration parameters, including the following options:
message(optional): Completion message to announce (default:"処理が完了しました")speaker(optional): Speaker ID for the notification voice (default:888753760- Anneli ノーマル)
Example usage:
{
"message": "データ処理が完了しました",
"speaker": 888753760
}📊 check_engine_status
Check the current status and version of the AivisSpeech engine.
This function returns: Engine status, version information, and connectivity details.
🖥️ Platform Support
Audio Playback Systems
Platform | Audio Command | Requirements |
macOS |
| Built-in (no additional setup) |
Windows | PowerShell Media.SoundPlayer | Windows PowerShell |
Linux |
| ALSA utils ( |
Tested Environments
macOS 12+ (Intel & Apple Silicon)
Windows 10/11
Ubuntu 20.04+
Node.js 18.x, 20.x, 21.x
🧪 Development
Available Scripts
# Development & Building
npm run dev # Run with hot reload (tsx)
npm run build # Compile TypeScript to dist/
npm start # Run compiled server
# Code Quality
npm run lint # Run ESLint
npm run test # Run Vitest tests (single run)
npm run test:watch # Run tests in watch mode
npm run test:ui # Run tests with UI
npm run test:coverage # Run tests with coverage
# Utilities
npm run clean # Clean dist/ directoryLocal vs NPX Usage
When using MCP clients in production, use npx @shinshin86/mcp-simple-aivisspeech@latest in your MCP configuration. No local setup is required, and you always get the latest version.
For development, clone the repository and use npm run dev for hot reload, or npm run build && npm start for testing production builds.
Project Architecture
mcp-simple-aivisspeech/
├── src/
│ ├── index.ts # MCP server & tool handlers
│ └── aivisspeech-client.ts # AivisSpeech API client
├── tests/
│ └── aivisspeech-client.test.ts # Unit tests
├── dist/ # Compiled output
├── docs/ # Documentation
└── config files # TS, ESLint, Vitest configsAPI Client Architecture
The AivisSpeechClient class offers comprehensive functionality, providing several key capabilities:
HTTP Client - Axios-based API communication
Error Handling - Comprehensive error catching and reporting
Type Safety - Full TypeScript interfaces for all API responses
Connection Management - Health checks and status monitoring
Adding New Features
New Tool: Add handler in
src/index.tsCallToolRequestSchemaAPI Methods: Extend
AivisSpeechClientclassTypes: Update interfaces in
aivisspeech-client.tsTests: Add corresponding test cases
🔧 Troubleshooting
Common Issues
AivisSpeech Engine Not Found
Error: Failed to get version: connect ECONNREFUSED 127.0.0.1:10101Consider these troubleshooting approaches to resolve this issue: Ensure AivisSpeech Engine is running on the correct port.
Audio Playback Fails
Error: Audio player exited with code 1Consider these troubleshooting approaches to resolve this issue:
macOS - Check if
afplayis availableLinux - Install ALSA utils (
sudo apt install alsa-utils)Windows - Ensure PowerShell execution policy allows scripts
Permission Denied
Error: spawn afplay EACCESConsider these troubleshooting approaches to resolve this issue: Check file permissions and system audio settings.
Debug Mode
To enable verbose logging, run the following command:
DEBUG=mcp-aivisspeech npm run dev📄 License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
🤝 Contributing
We welcome contributions from the community. Contributors can get started by completing these essential steps:
Fork the repository
Create a feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
Development Guidelines
Follow existing TypeScript/ESLint configurations
Add tests for new functionality
Update documentation for API changes
Ensure cross-platform compatibility
🙏 Acknowledgments
AivisSpeech Project for the excellent TTS engine
Model Context Protocol for the integration framework
VOICEVOX MCP for inspiration and reference
📞 Support
Issues - GitHub Issues
Discussions - GitHub Discussions
Documentation - AivisSpeech API Docs
Made with ❤️ for the Japanese TTS community
Available Tools
1 toolcheck_engine_statusB
Check if AivisSpeech engine is running
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 checking engine status but fails to describe what 'running' means, potential error conditions, response format, or any side effects. This leaves significant gaps for an agent to understand the tool's behavior.
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 no wasted words. It directly states the tool's purpose without redundancy or unnecessary elaboration, making it optimally concise and well-structured.
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 with no annotations and no output schema, the description is insufficient. It doesn't explain what the check returns (e.g., boolean status, detailed metrics, error messages), leaving the agent without crucial information to interpret results.
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 zero parameters with 100% schema description coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, earning a high baseline score for not adding unnecessary information.
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 ('Check') and resource ('AivisSpeech engine'), making it immediately understandable. However, with no sibling tools mentioned, there's no opportunity to differentiate from alternatives, 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, prerequisites, or contextual constraints. It merely states what the tool does without indicating appropriate scenarios or limitations.
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.
1 tool update
- First observed
check_engine_status
TDQS
Scored across 1 tool
With only one tool, there is no possibility of ambiguity or overlap between tools. The tool's purpose is clearly distinct as it is the only one available.
A single tool inherently has perfect naming consistency, as there are no other tools to compare against. The tool name follows a clear verb_noun pattern (check_engine_status).
One tool is too few for a server named 'MCP Simple AivisSpeech', which implies speech-related functionality. The scope appears thin, lacking basic operations like text-to-speech or speech-to-text that would be expected in this domain.
The tool set is severely incomplete for a speech-related server. It only checks engine status, missing core functionalities such as generating speech, processing audio, or managing speech settings, which are essential for the apparent purpose.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
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 AI dialogue using various LLM models via AceDataCloud
Related MCP Servers
- AlicenseBqualityDmaintenanceA Model Context Protocol server that provides text-to-speech capabilities using the Kokoro TTS model, offering multiple voice options and customizable speech parameters.425 npm2MIT
- FlicenseDqualityDmaintenanceA Model Context Protocol server that enables AI assistants to utilize AivisSpeech Engine's high-quality voice synthesis capabilities through a standardized API interface.11-
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol server that integrates high-quality text-to-speech capabilities with Claude Desktop and other MCP-compatible clients, supporting multiple voice options and audio formats.7 npm1MIT
- AlicenseBqualityFmaintenanceA server that enables Claude 3.7 and other AI agents to access VOICEVOX-compatible speech synthesis engines (AivisSpeech, VOICEVOX, COEIROINK) through the Model Context Protocol.112MIT