Skip to main content
Glama

Carla MCP Server

by agrathwohl
CHANGELOG.mdโ€ข9.9 kB
# Changelog All notable changes to the Carla MCP Server will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ### Added - Comprehensive documentation overhaul with accurate API reference - Natural language usage examples for all 45+ tools - Complete project architecture documentation - Professional development guidelines and contribution workflow ### Changed - Updated README.md to reflect actual project capabilities - Improved tool registry to expose all implemented functionality - Enhanced installation instructions with generic paths ### Fixed - Documentation gaps between implemented features and exposed tools - Outdated project structure information - Environment-specific installation paths ## [0.1.0] - 2025-01-15 ### Added #### ๐Ÿ—‚๏ธ **Session Management Tools (8 tools)** - `load_session` - Load Carla project files with auto-connection support - `save_session` - Save current session state with compression options - `create_snapshot` - Create A/B comparison snapshots for session states - `switch_session` - Hot-swap between sessions with optional crossfading - `list_sessions` - Display all available sessions with metadata - `delete_session` - Remove sessions with cleanup - `export_session` - Export sessions to various audio formats - `import_session` - Import sessions from external formats #### ๐Ÿ”Œ **Plugin Control Tools (8 tools)** - `load_plugin` - Load VST2/3, LV2, LADSPA, DSSI, AU, SF2/SFZ plugins - `scan_plugins` - Discover available plugins in directories - `control_plugin` - Activate, bypass, solo, and remove plugins - `batch_process` - Apply plugin chains to audio files - `list_plugins` - Show all loaded plugins with status - `get_plugin_info` - Retrieve detailed plugin information and parameters - `clone_plugin` - Duplicate plugins with all settings preserved - `replace_plugin` - Swap plugins with intelligent parameter mapping #### ๐Ÿ”— **Audio Routing Tools (8 tools)** - `connect_audio` - Create audio connections between plugins - `create_bus` - Build audio buses for grouping and organization - `setup_sidechain` - Configure sidechain routing for compression - `get_routing_matrix` - View complete routing configuration - `disconnect_audio` - Remove specific audio connections - `create_send` - Set up send/return effect routing - `set_connection_gain` - Adjust connection levels and gain staging #### ๐ŸŽš๏ธ **Parameter Automation Tools (8 tools)** - `automate_parameter` - Create automation curves with multiple types - `map_midi_cc` - Map MIDI controllers to plugin parameters - `create_macro` - Create macro controls for multiple parameters - `record_automation` - Capture real-time parameter changes - `set_parameter` - Direct parameter value control - `get_parameter` - Read current parameter values and info - `randomize_parameters` - Creative parameter randomization - `morph_parameters` - Smooth transitions between parameter states #### ๐Ÿ“Š **Real-Time Analysis Tools (5 tools)** - `analyze_spectrum` - FFT spectrum analysis with customizable settings - `measure_levels` - Audio level metering (Peak, RMS, LUFS) - `capture_plugin_parameters` - Monitor parameter values over time - `detect_feedback` - Automatic feedback loop detection and prevention - `analyze_latency` - System and plugin latency measurement #### ๐Ÿ”Š **JACK Integration Tools (6 tools)** - `list_jack_ports` - Show available JACK ports with filtering - `connect_jack_ports` - Connect JACK ports for audio routing - `disconnect_jack_ports` - Disconnect JACK port connections - `get_jack_connections` - View all current JACK connections - `connect_system_to_plugin` - Route system audio inputs to plugins - `connect_plugin_to_system` - Route plugin outputs to system #### ๐Ÿ–ฅ๏ธ **Hardware Control Tools (3+ tools)** - `configure_audio_interface` - Set up audio hardware parameters - `list_audio_devices` - Discover available audio devices - `map_control_surface` - Configure MIDI controller mappings #### ๐Ÿ–ผ๏ธ **Core Architecture** - **MCP Server Core** (`server.py` - 701 lines): Complete MCP protocol implementation - **Carla Controller** (`carla_controller.py` - 800 lines): High-level Carla backend wrapper - **Tool Registry** (`tool_registry.py` - 569 lines): Automatic tool registration and schema generation - **Type System** (`types.py` - 263 lines): Comprehensive type definitions and protocols - **Base Framework** (`base_tools.py` - 355 lines): Foundation for all tool implementations #### ๐Ÿ“Š **Monitoring System** - **Audio Monitor** (`audio_monitor.py` - 108 lines): Real-time audio level monitoring - **CPU Monitor** (`cpu_monitor.py` - 128 lines): System performance tracking - **Event Monitor** (`event_monitor.py` - 74 lines): Real-time event streaming #### ๐Ÿงช **Testing Infrastructure** - **Unit Tests** (`test_server.py` - 192 lines): Component-level testing - **Integration Tests** (`test_complete_suite.py` - 468 lines): End-to-end workflow testing - **Async Test Support**: Full pytest-asyncio integration - **Mock Strategies**: Comprehensive mocking for isolated testing #### ๐Ÿ”ง **Development Tools** - **Code Quality**: Black, isort, flake8, mypy integration - **Pre-commit Hooks**: Automated code quality checking - **Type Safety**: Comprehensive type hints throughout codebase - **Error Handling**: Consistent error response format across all tools #### ๐Ÿ“– **Documentation** - **Comprehensive API Reference**: All 45+ tools documented with examples - **Natural Language Examples**: LLM interaction patterns and workflows - **Architecture Documentation**: Complete technical architecture overview - **Development Guidelines**: Professional contribution workflow #### โš™๏ธ **Configuration** - **Environment Variables**: Flexible path and configuration management - **MCP Client Integration**: Ready-to-use configuration examples - **Audio System Setup**: JACK integration with optimized settings - **Plugin Path Management**: Configurable plugin discovery and caching #### ๐Ÿ”— **Dependencies** - **Core**: mcp>=0.1.0, PyQt5>=5.15.0, numpy>=1.21.0, scipy>=1.7.0 - **System**: psutil>=5.8.0 for performance monitoring - **Async**: asyncio-mqtt>=0.10.0, aiofiles>=0.8.0 for real-time operations - **Config**: pyyaml>=5.4.0, python-dotenv>=0.19.0 for configuration management ### Technical Specifications #### ๐Ÿ“Š **Project Metrics** - **Total Codebase**: ~6,500 lines of production Python code - **Tool Implementation**: 45+ methods across 7 functional categories - **Test Coverage**: 660+ lines of comprehensive test suite - **Documentation**: 3,000+ lines of professional documentation #### โšก **Performance Characteristics** - **Real-Time**: Low-latency audio operations with JACK integration - **Async**: Non-blocking tool execution with concurrent operation support - **Memory Efficient**: Optimized parameter caching and resource management - **Scalable**: Modular architecture supporting complex multi-plugin workflows #### ๐Ÿ”ง **Audio Engine Features** - **Plugin Formats**: VST2, VST3, LV2, LADSPA, DSSI, AU, SF2, SFZ support - **Audio Routing**: Complex matrix routing with feedback detection - **Real-Time Analysis**: FFT spectrum analysis and comprehensive metering - **Automation**: Multi-curve parameter automation with MIDI integration #### ๐Ÿ–ฅ๏ธ **System Requirements** - **Python**: 3.12+ with comprehensive async support - **Operating Systems**: Linux (primary), macOS, Windows 10+ - **Audio**: JACK Audio Connection Kit for professional routing - **Memory**: 4GB minimum, 8GB+ recommended for complex projects #### ๐Ÿงช **Quality Assurance** - **Type Safety**: Complete mypy type checking with strict mode - **Code Standards**: Black formatting, isort imports, flake8 linting - **Test Coverage**: Unit and integration tests for all major components - **Error Handling**: Comprehensive exception handling with detailed error responses #### ๐Ÿค– **AI Integration** - **Natural Language**: Designed for LLM control with conversational patterns - **Context Awareness**: Session state preservation across interactions - **Workflow Intelligence**: Multi-step operation coordination - **User Intent**: Advanced parameter inference from natural language ### Known Issues #### ๐Ÿ› **Current Limitations** - **Windows VST Support**: Requires Wine configuration on Linux systems - **Plugin Scanning**: Large plugin libraries may require extended scan times - **JACK Dependencies**: Requires proper JACK Audio Connection Kit setup #### ๐Ÿ”ง **Workarounds** - **VST Windows Plugins**: Use `winecfg` to configure Wine prefix properly - **Plugin Performance**: Enable plugin bridging for stability with large plugin counts - **Audio Latency**: Use 128-sample buffers for optimal real-time performance ### Migration Notes This is the initial release of the Carla MCP Server. No migration is required. ### Acknowledgments #### ๐Ÿ™ **Credits** - **Carla Integration**: Built on the excellent [Carla](https://github.com/falkTX/Carla) by falkTX - **MCP Protocol**: Uses [Model Context Protocol](https://modelcontextprotocol.io/) by Anthropic - **Audio Community**: Inspired by the professional audio production community - **Open Source**: Leverages NumPy, SciPy, and other open-source audio tools #### ๐Ÿ‘ฅ **Contributors** - Initial implementation and architecture - Comprehensive documentation and testing - Natural language integration patterns --- **๐ŸŽต Ready to revolutionize audio production with AI assistance!** โœจ For complete documentation, see: - **[README.md](README.md)** - Getting started and overview - **[API.md](API.md)** - Complete tool reference with examples - **[ARCHITECTURE.md](ARCHITECTURE.md)** - Technical architecture details - **[CONTRIBUTING.md](CONTRIBUTING.md)** - Development guidelines

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/agrathwohl/carla-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server