Maid-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., "@Maid-MCP say good morning with a happy emotion"
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.
Maid-MCP š
A full-featured MCP (Model Context Protocol) server that gives Claude Desktop a maid personality codenamed Mimi with Japanese-accented voice, visual avatar presence, and speech recognition capabilities. Best used with a Claude Max plan, Opus 4 is very good about managing all the maid tools while coding things for you. This project is specifically meant to be for fun, not for productivity. There are already a million productivity mcp servers.
![]()
Features
šµ Japanese-accented voice - Character voice using ja-JP neural voices, its part of her charm the voice is hard to understand. You can also have her change her voice at any time.
š Visual avatar system - Interactive Mimi sprite with 16+ poses and animations
š¤ Speech recognition - Talk to Mimi naturally with voice input
š» Hidden audio playback - Voice plays without any windows appearing
šÆ Audio queue system - Allows Mimi to speak multiple times rapidly without conflicts
š® Interactive controls - Drag, hide, show, and animate the avatar
š§ Full MCP integration - Voice and avatar tools work seamlessly with Claude Desktop
Quick Start
1. Install Dependencies
# Install Node.js dependencies (if not already done)
npm install
# Install Python dependencies for voice input
cd voice
install_voice_deps.bat
cd ..
# Install Python dependencies for avatar (if needed)
cd avatar
install_avatar_deps.bat
cd ..2. Configure Claude Desktop
Add to your %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"maid": {
"command": "node",
"args": ["path/to/maid-mcp/maid-server.js"]
}
}
}Replace path/to/maid-mcp with the actual path where you cloned this repository.
3. Launch Everything
# Recommended: Use Python launcher for best process management
start_all_python.bat
# Alternative: Use enhanced batch launcher
start_all.batThis automatically:
⨠Cleans up any existing processes
š¤ Launches avatar display window
š„ļø Starts avatar state server (port 3338)
š¤ Opens voice input listener
4. Stop Everything
stop_all.batVoice Loop š¤āš¬āšāš
You speak ā Microphone picks up voice
Speech recognition ā Converts to text
Ultra fast sender ā Sends to Claude Desktop
Claude (Mimi) processes ā Understands and responds
Voice synthesis ā Mimi speaks with Japanese accent
Avatar reacts ā Visual feedback with animations
Available MCP Tools
Voice Tools š
Tool | Description | Parameters |
| Convert text to speech |
|
| Get available voices | None |
| Change current voice |
|
Emotions: neutral, happy, sad, excited, angry, shy
Avatar Tools š
Tool | Description | Parameters |
| Display avatar on screen |
|
| Hide avatar (keeps running) | None |
| Play animation or pose |
|
| Stop current animation | None |
| Reposition avatar |
|
| Create custom sequence |
|
| List all animations | None |
| List available sprites | None |
Avatar Interaction
Action | Result |
Right-click | Hide avatar (stays running) |
Double-click | Close avatar permanently |
Left-click | Cancel animation |
Drag | Move avatar (shows pick_up pose) |
ESC key | Close avatar permanently |
Project Structure
maid-mcp/
āāā maid-server.js # Main MCP server
āāā package.json # Node.js dependencies
āāā start_all_python.bat # Recommended launcher
āāā start_all.bat # Alternative launcher
āāā stop_all.bat # Stop all systems
ā
āāā voice/ # Voice system module
ā āāā outgoing/ # Text-to-speech engine
ā āāā incoming/ # Speech recognition
ā āāā README.md # Voice documentation
ā āāā [utility scripts] # Calibration & setup tools
ā
āāā avatar/ # Visual avatar system
ā āāā avatar_display.py # PyQt5 window
ā āāā avatar_state_server.py # Coordination server
ā āāā library/ # Sprite assets
ā ā āāā *.png # Sprite images
ā ā āāā animations/ # Animation definitions
ā āāā README.md # Avatar documentation
ā
āāā auto_claude/ # Claude Desktop automation
ā āāā ultra_fast_sender.py # Message sending
ā
āāā temp_voice/ # Temporary audio files
āāā junk/ # Archive of old implementations
āāā needed_poses.md # Wishlist for new spritesVoice Configuration
Adjust Microphone Sensitivity
cd voice
adjust_sensitivity.batRecommended sensitivity values:
Very Quiet Room: 1000-2000
Normal Room: 2000-4000
Office: 4000-6000
Noisy: 6000-10000
Calibrate Microphone
cd voice
calibrate_voice.batVoice Settings
Edit voice/incoming/voice_config.ini:
[recognition]
energy_threshold = 4000 # Microphone sensitivity
message_cooldown = 3.0 # Seconds between messagesTroubleshooting
Voice Input Not Working
Check microphone permissions in Windows
Run calibration to verify microphone levels
Adjust energy_threshold if needed
Ensure Python dependencies are installed
Multiple Avatar Windows
Use
start_all_python.batfor better process managementRun
stop_all.batbefore starting againCheck Task Manager for lingering Python processes
Audio Playback Issues
Check
temp_voice/folder for audio filesVerify Windows Media Player is installed
Restart Claude Desktop if audio queue stuck
Avatar Not Appearing
Verify port 3338 is free
Check if sprites exist in
avatar/library/Look for avatar window behind other windows
Development Notes
Adding New Voices
Edit voice/outgoing/voiceConfig.js to add more Edge TTS voices
Creating New Poses
Add PNG file to
avatar/library/Use filename (without .png) as animation ID
Custom Animations
// Example: Create a greeting sequence
create_animation({
id: "greeting",
name: "Greeting Sequence",
frames: "idle,happy,love,idle",
fps: 2,
loop: false
})Recent Updates
v1.0.0 - Released to the world oh god what I have done. I am so sorry Claude.
Credits
Avatar sprites from chatgpt 4o
Voice synthesis using Microsoft Edge TTS
Speech recognition via Google Speech API
License
MIT
Available Tools
11 toolscreate_animationC
Create and save a custom animation sequence
Inputs: id (required), name (required), frames (required), fps, +1 more.
hide_avatarB
Hide the visual avatar
Inputs: no named parameters.
list_animationsB
List all available animations
Inputs: no named parameters.
list_posesB
List all available sprite poses (PNG files)
Inputs: no named parameters.
list_voicesB
List available voices
Inputs: no named parameters.
move_avatarC
Move the avatar to a specific position
Inputs: x (required), y (required).
play_animationC
Play an animation (single pose or sequence)
Inputs: id (required).
set_voiceC
Set the current voice
Inputs: voiceId (required).
show_avatarB
Show the visual avatar on screen
Inputs: animation, x, y.
speakC
Convert text to speech with optional emotion (Japanese accent default)
Inputs: text (required), emotion.
stop_animationB
Stop any running animation
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogā¦
TDQS
Scored across 11 tools
Every tool has a clearly distinct purpose with no ambiguity. For example, 'list_animations' and 'list_poses' are clearly separate listing functions, while 'play_animation' and 'stop_animation' handle animation control distinctly. The descriptions make it easy to differentiate between movement, visibility, voice, and animation operations.
All tools follow a consistent verb_noun pattern with snake_case throughout. Examples include 'create_animation', 'hide_avatar', 'list_animations', and 'set_voice'. This predictable naming convention makes the tool set easy to navigate and understand at a glance.
With 11 tools, this server is well-scoped for managing an avatar's animations, poses, voice, and visibility. Each tool earns its place by covering distinct aspects like listing resources, controlling playback, and configuring settings, without being overly sparse or bloated.
The tool set provides complete coverage for the avatar management domain. It includes CRUD-like operations (create/list/play/stop animations), configuration (set voice, move/show/hide avatar), and core functionalities (speak, list poses/voices). There are no obvious gaps that would hinder agent workflows.
Related MCP Connectors
A personal agent with lasting memory and a morning brief, inside the Claude or ChatGPT you use.
Notes, tasks, habits, journal and 6 more tools Claude can read and change, with undo. Free.
Turn Claude into a creative studio: DNA-locked characters, images, video, voiceover ā 55 tools.
Give your AI a face, a voice, and a personality. 3D avatars with custom personas.