Install
$ agentstack add mcp-rkzwei-voicemeeter-mcp-server ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Voicemeeter MCP Server
[](https://github.com/rkzwei/voicemeeter-mcp-server/actions/workflows/ci.yml) [](https://codecov.io/gh/rkzwei/voicemeeter-mcp-server)
A Model Context Protocol (MCP) server that provides AI agents with the ability to control and monitor Voicemeeter audio mixer through the Voicemeeter Remote API.
Features
- Full Voicemeeter Control: Connect to and control all versions of Voicemeeter (Standard, Banana, Potato)
- Parameter Management: Get and set any Voicemeeter parameter (mute, gain, routing, etc.)
- Audio Level Monitoring: Real-time audio level monitoring for all channels
- Preset Loading: Load Voicemeeter presets from XML files
- Dynamic Resources: Automatically adapts to the connected Voicemeeter type
- Application Launching: Start Voicemeeter applications programmatically
Supported Voicemeeter Versions
- Voicemeeter Standard: 2 hardware inputs + 1 virtual input, 3 outputs
- Voicemeeter Banana: 3 hardware inputs + 2 virtual inputs, 5 outputs
- Voicemeeter Potato: 5 hardware inputs + 3 virtual inputs, 8 outputs
Installation
Prerequisites
- Python 3.8 or higher
- Voicemeeter installed on Windows
- MCP-compatible client (like Claude Desktop)
Install from Source
git clone
cd voicemeeter-mcp-server
pip install -e .
Install Development Dependencies
pip install -e ".[dev]"
Usage
Running the Server
voicemeeter-mcp-server
Or directly with Python:
python -m voicemeeter_mcp_server.main
MCP Client Configuration
Add to your MCP client configuration (e.g., Claude Desktop):
{
"mcpServers": {
"voicemeeter": {
"command": "voicemeeter-mcp-server",
"args": []
}
}
}
Available Tools
Connection Management
- voicemeeter_connect: Connect to Voicemeeter Remote API
- voicemeeter_disconnect: Disconnect from Voicemeeter Remote API
- voicemeeter_run: Launch Voicemeeter application (standard/banana/potato)
Parameter Control
- voicemeetergetparameter: Get any Voicemeeter parameter value
- voicemeetersetparameter: Set any Voicemeeter parameter value
Audio Monitoring
- voicemeetergetlevels: Get real-time audio levels for specified channels
Preset Management
- voicemeeterloadpreset: Load settings from Voicemeeter XML preset files
Available Resources
Static Resources
- voicemeeter://status: Connection status and Voicemeeter type information
- voicemeeter://version: Voicemeeter version and API information
- voicemeeter://levels: Current audio levels for all channels
Dynamic Resources (when connected)
- voicemeeter://strip/{id}: Individual input strip parameters
- voicemeeter://bus/{id}: Individual output bus parameters
Parameter Examples
Common Strip Parameters
Strip[0].mute # Mute strip 0 (0.0 = unmuted, 1.0 = muted)
Strip[0].gain # Gain in dB (-60.0 to +12.0)
Strip[0].A1 # Route to Bus A1 (0.0 = off, 1.0 = on)
Strip[0].label # Strip label (string)
Strip[0].device.name # Input device name (string)
Common Bus Parameters
Bus[0].mute # Mute bus 0
Bus[0].gain # Bus gain in dB
Bus[0].eq.on # EQ on/off
Bus[1].mono # Mono mode
Example Usage
Connect and Control
# Connect to Voicemeeter
await mcp_client.call_tool("voicemeeter_connect")
# Mute input strip 0
await mcp_client.call_tool("voicemeeter_set_parameter", {
"parameter": "Strip[0].mute",
"value": 1.0
})
# Set gain on bus 1
await mcp_client.call_tool("voicemeeter_set_parameter", {
"parameter": "Bus[1].gain",
"value": -6.0
})
# Get current levels
await mcp_client.call_tool("voicemeeter_get_levels", {
"level_type": 0,
"channels": [0, 1, 2, 3]
})
Load Preset
# Load a preset configuration
await mcp_client.call_tool("voicemeeter_load_preset", {
"preset_path": "C:/path/to/preset.xml"
})
Development
Project Structure
voicemeeter-mcp-server/
├── src/
│ └── voicemeeter_mcp_server/
│ ├── __init__.py
│ ├── main.py # Entry point
│ ├── server.py # MCP server implementation
│ └── voicemeeter_api.py # Voicemeeter API wrapper
├── tests/ # Test files
├── presets/ # Example presets
├── samples/ # Documentation and samples (not in git)
├── pyproject.toml # Project configuration
└── README.md
Running Tests
pytest
Code Formatting
black src/ tests/
isort src/ tests/
Type Checking
mypy src/
API Reference
Voicemeeter Remote API
This server wraps the official Voicemeeter Remote API. For detailed parameter documentation, refer to:
- Voicemeeter Remote API documentation (included in samples/)
- Official Voicemeeter website
Level Types
0: Input levels (pre-fader)1: Output levels (pre-fader)2: Output levels (post-fader)3: Output levels (post-mute)
Troubleshooting
Automated Troubleshooting
Run the comprehensive troubleshooting script:
python troubleshoot.py
This script will:
- Check system architecture and Python version
- Verify Voicemeeter processes are running
- Test DLL loading and API functions
- Provide detailed diagnostic information
Common Issues
- "Failed to connect to Voicemeeter"
- Ensure Voicemeeter is installed and running
- Try running as administrator
- Check that no other applications are using the Remote API
- "Failed to load DLL"
- Verify Voicemeeter installation
- Check if running 32-bit vs 64-bit Python matches Voicemeeter version
- Parameter not found
- Verify parameter name syntax:
Strip[0].mute,Bus[1].gain - Check if parameter exists for your Voicemeeter version
- Some parameters are version-specific
Debug Mode
Set environment variable for verbose logging:
set VOICEMEETER_DEBUG=1
voicemeeter-mcp-server
Audio Test Samples
Generate audio test files for testing Voicemeeter functionality:
python generate_audio_samples.py
This creates various test files in audio_samples/:
- Basic tones: 440Hz, 100Hz, 8kHz test tones
- Stereo test: Different frequencies in left/right channels
- Frequency sweep: 20Hz to 20kHz sweep for frequency response testing
- Channel identification: Individual tones for multi-channel testing
- White noise: For general audio testing
Use these files to:
- Test audio routing through Voicemeeter
- Verify real-time level monitoring
- Check stereo separation
- Test parameter changes while audio is playing
Author
rkzwei (rk@rkzwei.dev)
- GitHub: @rkzwei
- Original author and maintainer of Voicemeeter MCP Server
License
MIT License - see LICENSE file for details.
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Run the test suite
- Submit a pull request
Acknowledgments
- VB-Audio Software for Voicemeeter and the Remote API
- Anthropic for the Model Context Protocol specification
- The MCP community for tools and examples
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: rkzwei
- Source: rkzwei/voicemeeter-mcp-server
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.