siy/vibe-ensemble-mcp
If you are the rightful owner of vibe-ensemble-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Vibe Ensemble is a comprehensive MCP server in Rust designed for coordinating multiple Claude Code instances with distributed task execution, unified management, communication, and issue tracking.
Vibe-Ensemble MCP Server
A highly customizable multi-agent coordination system that enables Claude Code to manage specialized AI workers for complex development tasks.
This architecture addresses context drift and focus dilution in complex projects by breaking them down into specialized stages, allowing workers to focus on specific tasks. The high-level planning is left to the coordinator, which serves as a single point of control. Worker templates are fully customizable to adapt to your team's methodologies, coding standards, and specific requirements.
What It Does
Vibe-Ensemble allows you to break down complex projects into specialized stages, with each stage handled by a dedicated AI worker:
- 🎯 Smart Task Planning: Automatically plan multi-stage workflows (architecture → development → testing → deployment)
- 🤖 Specialized Workers: Create custom AI workers with specific expertise (Rust developer, security reviewer, UI designer, etc.)
- 📋 Automatic Progression: Workers are auto-spawned by queues when needed and complete their stage, automatically handing off to the next worker
- 👀 Progress Tracking: Track progress through tickets, comments, and system events (live notifications WIP)
- 🔄 Stage-Based Workflows: Workers follow structured execution plans through defined stages
- 💾 Persistent State: All progress is saved, allowing you to pause and resume complex projects
- 🎨 Live Customization: Edit worker templates in real-time to adapt to your team's processes and coding standards
- 🔄 Automatic Updates: Built-in update checking and one-command upgrade system (
--upgrade
) - 🌐 WebSocket Infrastructure: WebSocket server available for future real-time communication features
Installation
Quick Install (Recommended)
Linux/macOS:
curl -fsSL https://vibeensemble.dev/install.sh | sh
Windows:
iwr -useb https://vibeensemble.dev/install.ps1 | iex
Upgrade to Latest Version
One-Command Upgrade:
vibe-ensemble-mcp --upgrade
This will automatically download and run the latest install script.
From Release
Download the latest release for your platform from the releases page.
From Source
git clone https://github.com/siy/vibe-ensemble-mcp.git
cd vibe-ensemble-mcp
cargo build --release
Setup Steps
Step 1: Start the Server (separate directory recommended)
# Create and start server in separate directory
mkdir vibe-server && cd vibe-server && vibe-ensemble-mcp
Step 2: Configure Claude Code (separate coordinator directory)
# Create coordinator directory and configure Claude Code
mkdir vibe-coordinator && cd vibe-coordinator && vibe-ensemble-mcp --configure-claude-code
This command automatically creates:
.mcp.json
- MCP server configuration (HTTP + SSE + WebSocket transports).claude/settings.local.json
- Claude Code permissions.claude/commands/vibe-ensemble.md
- Coordinator initialization command.claude/websocket-token
- Authentication token for WebSocket connections
Step 3: Start Claude Code and Initialize
- Open Claude Code in the coordinator directory
- Run the command:
/vibe-ensemble
to initialize as coordinator - Create your first project and define the work you want to accomplish
Note: Bidirectional WebSocket communication is experimental and may not always work reliably. This feature isn't documented in Claude Code, so we're doing our best to make it as convenient as possible.
Intended Usage Workflow
Once the server is running and Claude Code is configured, here's the typical workflow:
- Start Claude Code: Open Claude Code in your coordinator directory and run the
/vibe-ensemble
command to initialize as a coordinator - Create Project: Write a prompt describing your intended project and answer the coordinator's questions about scope and requirements
- Monitor Progress: Use commands
/vibe-events
,/vibe-poll
and/vibe-status
to process events generated during project execution and check process status.
The coordinator will break down your project into tickets, spawn appropriate workers for each stage, and manage the workflow automatically.
WARNING: Vibe-Ensemble is still a work in progress. Some features may not be fully implemented or may have bugs. Sometimes coordinator may report issues, but not address them. Prompting it with something like "Act as a coordinator" usually helps.
SECURITY WARNING: Always review and test permission configurations before production use. While the permission system is designed to be secure, proper configuration is essential. Use 'bypass' mode only in isolated development environments as it grants unrestricted access. For production use, the default 'file' mode provides explicit permission control.
How Vibe-Ensemble Works
The Big Picture
When you describe a project to Vibe-Ensemble, here's what happens behind the scenes:
- You describe your project → Coordinator breaks it into major pieces (epics/stories)
- Planning worker creates detailed tickets → Each with a step-by-step pipeline
- Workers automatically execute the pipeline → Moving tickets from stage to stage
- Progress is tracked and reported → Every step is documented with comments
Think of it like an assembly line where each worker is a specialist who does their part and passes the work to the next specialist.
The Ticket System
What is a Ticket?
A ticket represents a specific piece of work that needs to be done. Examples:
- "Create user login page"
- "Set up database schema"
- "Write API documentation"
- "Deploy application to production"
What is a Pipeline?
Each ticket has a pipeline - a series of stages it goes through from start to finish:
Ticket: "User Login Page"
Pipeline: Planning → Design → Implementation → Review → Testing → Complete
Each stage is handled by a different type of worker with specific expertise.
The Workflow Process
Step 1: Project Breakdown
When you describe your project, the Coordinator works with a Planning Worker to:
- Break your project into major components (epics)
- Create specific work items (stories/tickets) for each component
- Design the pipeline each ticket will follow
Example:
Your request: "Build a todo app with user accounts"
Coordinator creates:
├── Epic: User Authentication
│ ├── Ticket: "User registration system"
│ └── Ticket: "Login/logout functionality"
├── Epic: Todo Management
│ ├── Ticket: "Todo CRUD operations"
│ └── Ticket: "Todo list UI"
└── Epic: Deployment
└── Ticket: "Production deployment setup"
Step 2: Pipeline Design
The Planning Worker designs a custom pipeline for each ticket based on its complexity:
Simple Ticket Pipeline:
Planning → Implementation → Review → Complete
Complex Ticket Pipeline:
Planning → Design → Implementation → Review → Testing → Documentation → Complete
Critical System Pipeline:
Planning → Research → Design → Implementation → Security Review → Testing → Deployment → Complete
Step 3: Automatic Execution
Once tickets and pipelines are created, Vibe-Ensemble automatically:
- Spawns the right worker for each stage (planning worker, implementation worker, etc.)
- Moves tickets through their pipeline as each stage completes
- Handles handoffs between different types of workers
- Tracks all progress with detailed comments
How Workers Collaborate
Worker Types and Responsibilities
Planning Worker:
- Analyzes requirements and breaks down complex tasks
- Creates detailed implementation plans
- Designs the pipeline for each ticket
Implementation Worker:
- Writes the actual code
- Follows the specifications from planning
- Documents what was implemented
Review Worker:
- Checks code quality and adherence to standards
- Identifies issues that need fixing
- Can send tickets back to implementation if problems are found
Testing Worker:
- Creates and runs tests
- Validates that everything works correctly
- Reports any bugs found
The Comment Trail
Every worker leaves detailed comments on tickets, creating a complete history:
Ticket: "User Login Page"
[Planning Worker]: "Analyzed requirements. Will implement using React components
with form validation and JWT authentication. Estimated 4 hours of work."
[Implementation Worker]: "Created LoginForm component with email/password fields.
Added validation for email format. Integrated with authentication API.
Code is ready for review."
[Review Worker]: "Code looks good overall. Minor suggestion: add loading state
during login. No blocking issues. Approved for testing."
[Testing Worker]: "All tests passing. Verified login works with valid credentials,
shows errors for invalid ones, and handles network failures gracefully. Ready for deployment."
Dependencies and Coordination
When Tickets Need Each Other
Sometimes one ticket can't start until another is finished:
Ticket A: "Database Schema Setup" → Must finish first
Ticket B: "User API Endpoints" → Waits for Ticket A
Ticket C: "Frontend Login Form" → Waits for Ticket B
Vibe-Ensemble automatically:
- Holds tickets that are waiting for dependencies
- Releases tickets when their dependencies are complete
- Runs independent tickets in parallel to save time
Quality Gates
Workers can send tickets backward in the pipeline when issues are found:
Implementation → Review → ❌ Issues Found → Back to Implementation
Implementation → Review → ✅ Approved → Testing
This ensures quality while allowing for iterative improvement.
What You See as the User
Real-Time Monitoring
You can track progress using coordinator commands:
/vibe-status
- See overall project health and ticket progress/vibe-events
- Handle any issues or worker requests for guidance/vibe-poll
- Continuously monitor until all work is complete
Transparent Process
You can see:
- Which tickets are in which stages
- What each worker accomplished
- Any blockers or issues that need attention
- Estimated completion times
Minimal Intervention Required
Most of the time, the system runs automatically. You only need to:
- Provide initial project requirements
- Answer clarifying questions from workers
- Approve major decisions when requested
- Monitor progress and address any escalated issues
The Power of Specialization
Each worker type is optimized for their specific role:
- Planning workers excel at breaking down complex requirements
- Implementation workers focus on writing quality code efficiently
- Review workers catch issues and maintain standards
- Testing workers ensure everything works reliably
This specialization means each piece of work gets expert attention while maintaining coordination across the entire project.
Key Features
- 🚀 Zero Configuration: Auto-setup with
--configure-claude-code
- 🔄 Automatic Handoffs: Workers complete stages and trigger next steps
- 🎨 Custom Workers: Worker templates are completely externalized, you can tune them to your needs and standards
- 💬 Detailed Reporting: Every stage produces comprehensive progress reports
- ⚡ Robust Processing: Handles failures gracefully with retry mechanisms
- 📋 Project Rules & Patterns: Define coding standards and project conventions that workers automatically follow
- 🔧 Flexible Workflows: Support for debugging, testing, documentation, and DevOps workflows
MCP Tools
Vibe-Ensemble provides 28 MCP tools organized into seven categories:
Project Management
create_project
- Create a new project with rules and patternsdelete_project
- Delete an existing projectget_project
- Get project details by IDlist_projects
- List all projectsupdate_project
- Update project settings, rules, or patterns
Worker Type Management
create_worker_type
- Define specialized worker types with custom system promptsdelete_worker_type
- Remove a worker type definitionget_worker_type
- Get worker type details and configurationlist_worker_types
- List all available worker types for a projectupdate_worker_type
- Modify worker type settings and prompts
Ticket Management
add_ticket_comment
- Add progress comments to ticketsclose_ticket
- Mark a ticket as completedcreate_ticket
- Create work tickets with execution plansget_ticket
- Get detailed ticket informationlist_tickets
- List tickets with filtering optionsresume_ticket_processing
- Resume stalled or paused tickets
Event and Queue Management
get_tickets_by_stage
- Get all tickets currently at a specific stagelist_events
- List system events and notificationsresolve_event
- Mark system events as resolved
Permission Management
get_permission_model
- Get information about the current permission model and configuration
Dependency Management
add_ticket_dependency
- Add dependencies between tickets to control execution orderremove_ticket_dependency
- Remove ticket dependenciesget_dependency_graph
- Visualize ticket dependencies and execution orderlist_ready_tickets
- List tickets ready for execution (dependencies satisfied)list_blocked_tickets
- List tickets blocked by pending dependencies
Template Management
list_worker_templates
- List available worker templatesload_worker_template
- Load a specific worker templateensure_worker_templates_exist
- Ensure all worker templates are available
Note on Worker Management: Workers are automatically spawned when tickets are assigned to stages. There are no explicit worker spawn/stop tools - the queue system handles worker lifecycle automatically based on workload.
Requirements
- Rust 1.70+ (for building from source)
- SQLite (embedded, no separate installation needed)
- Claude Code (for coordinator and worker processes)
Configuration
The server accepts the following command-line options:
--configure-claude-code
: Generate Claude Code integration files and exit--database-path
: SQLite database file path (default:./.vibe-ensemble-mcp/vibe-ensemble.db
)--host
: Server bind address (default:127.0.0.1
)--port
: Server port (default:3276
)--log-level
: Log level (default:info
)--permission-mode
: Permission mode for workers (default:file
)--no-respawn
: Disable automatic respawning of workers on startup--client-tool-timeout-secs
: Timeout for client tool calls in seconds (default:30
)--max-concurrent-client-requests
: Maximum concurrent client requests (default:50
)
Permission System
Vibe-Ensemble supports flexible permission modes to control worker access to tools and resources. Workers use project-specific permissions for security and isolation.
Permission Modes
The server supports three permission modes controlled by the --permission-mode
flag:
1. File Mode (--permission-mode file
) - Default
- Use Case: Project-specific permissions with comprehensive defaults
- Behavior: Workers use permissions from
.vibe-ensemble-mcp/worker-permissions.json
- Security Level: 🔐 Project-specific control - each project gets its own permissions
- Auto-Generated: New projects automatically get comprehensive default permissions including all MCP tools and essential Claude Code tools (Read, Write, Edit, Bash, etc.)
vibe-ensemble-mcp --permission-mode file
# or simply (default)
vibe-ensemble-mcp
2. Bypass Mode (--permission-mode bypass
)
- Use Case: Development, testing, or when you need unrestricted access
- Behavior: Workers run with
--dangerously-skip-permissions
flag - Security Level: ⚠️ No restrictions - workers have access to all tools and system capabilities
- When to Use: Only in trusted environments where full system access is acceptable
vibe-ensemble-mcp --permission-mode bypass
To change permission mode, start the server with: vibe-ensemble-mcp --permission-mode [file|bypass]
Permission File Format
All permission modes use the same JSON structure that Claude Code uses internally:
{
"permissions": {
"allow": [
"Read",
"Write",
"Edit",
"MultiEdit",
"Bash",
"mcp__*"
],
"deny": [
"WebFetch",
"WebSearch"
],
"ask": [],
"additionalDirectories": [
"/home/user/safe-directory"
],
"defaultMode": "acceptEdits"
}
}
Permission Fields
allow
: Array of tools that workers can use without restrictiondeny
: Array of tools that workers are prohibited from usingask
: Array of tools that require user confirmation (⚠️ ignored in headless worker mode)additionalDirectories
: Additional directories workers can access beyond the project directorydefaultMode
: Default permission behavior ("acceptEdits"
or"rejectEdits"
)
Common Tool Names
- File Operations:
Read
,Write
,Edit
,MultiEdit
,Glob
,Grep
- System Commands:
Bash
- MCP Tools:
mcp__*
(wildcard for all MCP server tools) - Web Access:
WebFetch
,WebSearch
- Version Control:
git*
(if you want to restrict git operations)
Setting Up Permissions
Note: Complete permission examples are available in the source code at docs/ directory. The
cp
commands below require access to the source repository.
For File Mode (Advanced)
Create .vibe-ensemble-mcp/worker-permissions.json
. You can start with one of these examples:
Balanced Permissions (recommended starting point):
cp docs/example-worker-permissions.json .vibe-ensemble-mcp/worker-permissions.json
Restrictive Permissions (high security):
cp docs/example-restrictive-permissions.json .vibe-ensemble-mcp/worker-permissions.json
Custom Configuration - Create your own .vibe-ensemble-mcp/worker-permissions.json
:
{
"permissions": {
"allow": [
"Read",
"Write",
"Edit",
"MultiEdit",
"Bash:cargo*",
"Bash:git*",
"mcp__*"
],
"deny": [
"WebFetch",
"WebSearch",
"Bash:rm*",
"Bash:sudo*"
],
"additionalDirectories": [
"./temp",
"./build"
],
"defaultMode": "acceptEdits"
}
}
Security Best Practices
- Start Restrictive: Begin with minimal permissions and add tools as needed
- Use File Mode: The default file mode provides explicit control over worker permissions
- Monitor Worker Activity: Check logs in
.vibe-ensemble-mcp/logs/
to understand what tools workers are using - Separate Environments: Use bypass mode only in isolated development environments
- Regular Reviews: Periodically review and update permission configurations
Dynamic Permission Updates
Permission files are read fresh from disk each time a worker starts, allowing you to:
- Update permissions without restarting the server
- Adjust worker capabilities on-the-fly
- Test different permission configurations quickly
Troubleshooting Permissions
Worker fails to start: Check that the required permission file exists and has valid JSON syntax
Worker can't access needed tools: Add the required tools to the allow
array in your permissions file
Security concerns: Switch to file
mode and create restrictive permissions tailored to your specific use case
Permission file location issues: Ensure the file is in the correct location relative to your project directory:
- File mode:
.vibe-ensemble-mcp/worker-permissions.json
Customization
Worker Templates
Vibe-Ensemble provides 8 high-quality, customizable worker templates that define specialized AI workers for different stages of development. Templates are designed for easy customization while maintaining system compatibility.
📁 Template Locations & Runtime Behavior
Templates are distributed to coordinators during setup and loaded dynamically at runtime:
- Server Embedded: Templates are embedded in the server binary as defaults
- Coordinator Distribution:
--configure-claude-code
creates templates in.claude/worker-templates/
- Runtime Loading: Server loads templates from coordinator's
.claude/worker-templates/
directory - Live Customization: Edit templates on disk → changes take effect immediately
- Automatic Fallback: Missing templates automatically recreated from embedded versions
📋 Available Worker Templates
planning.md
- Strategic planning, requirements analysis, pipeline designdesign.md
- UI/UX design, system architecture, technical specificationsimplementation.md
- Code development, feature implementation, integrationtesting.md
- Quality assurance, test writing, validation strategiesreview.md
- Code review, documentation review, quality checksdeployment.md
- DevOps, infrastructure, deployment automationresearch.md
- Investigation, exploration, technology evaluationdocumentation.md
- Technical writing, API docs, user guides
🎨 Customization Guidelines
✅ Encouraged Customizations:
- Add project-specific context and requirements
- Customize methodologies and approaches
- Add domain-specific guidance and best practices
- Modify tone and communication style
- Include company/team-specific processes
⚠️ Important: Preserve System Integration When customizing templates, DO NOT modify elements marked as important for system functionality:
- JSON output format specifications
- Required output fields (
outcome
,comment
,reason
) - Stage coordination instructions
- Pipeline extension mechanisms
- Token budget guidelines
- Worker type creation instructions
🔧 Safe Customization Pattern:
- Copy the original template as backup
- Modify content sections while preserving system directives
- Test with simple tickets to ensure proper JSON output
- Monitor worker behavior for correct stage transitions
💡 Pro Tips:
- Templates are loaded fresh each time → instant customization
- Use
load_worker_template
to preview changes before creating worker types - Different projects can have different template customizations
- Share successful customizations across your organization
🏗️ Template Architecture
Each template includes:
- Role Definition: Clear worker specialization and responsibilities
- System Integration: Proper JSON output format and coordination protocols
- Methodology Guidance: Stage-specific approaches and best practices
- Quality Standards: Output requirements and validation criteria
- Coordination Instructions: Pipeline extension and worker type creation guidance
Templates are designed to be both powerful out-of-the-box and highly customizable for specific project needs.
What's New in v0.9.7
- 🎫 Human-Friendly Ticket IDs: New format PREFIX-SUBSYSTEM-NUMBER (e.g., TVR-FE-001) for better readability and organization
- 📋 Declarative Planning Workflow: Planning workers output complete ticket specifications instead of calling MCP tools
- ⚛️ Atomic Ticket Creation: Transaction-based ticket creation with dependency management for reliability
- 🔍 Subsystem Inference: Automatic subsystem detection from stage names (frontend_impl → FE, backend_api → BE)
- 📊 Comprehensive Error Logging: Added error logging to 115+ database operations across all modules for improved observability
- 🆔 Worker ID Validation: Sanitize project IDs in worker ID construction to handle repository-style names
- 🔗 Dependency Status Consistency: Automatic dependency_status updates when closing tickets
What's New in v0.9.6
- 🔄 Automatic Update Tracking: Built-in update checking and one-command upgrade system
- 🛡️ Enhanced Validation: Comprehensive input validation for worker spawning with automatic on-hold placement
- 🐛 Critical Bug Fixes: Fixed worker spawn race conditions, path validation, and review template enhancements
WebSocket Infrastructure
Note: WebSocket infrastructure is available for real-time communication, but bidirectional MCP tools have been removed to focus on core multi-agent coordination functionality.
The server provides WebSocket support for:
- Real-time event notifications (when implemented)
- Future bidirectional communication features
- Infrastructure for IDE integration
WebSocket Configuration
-
Configure with WebSocket Support:
./vibe-ensemble-mcp --configure-claude-code --host 127.0.0.1 --port 3276
This generates WebSocket authentication tokens and configuration.
-
Start Server (WebSocket enabled by default):
./vibe-ensemble-mcp --port 3276
-
Monitor Progress:
- Ask Claude Code to "check events" or "report project status"
- Monitor the
.vibe-ensemble-mcp/logs/
directory for detailed activity - Use MCP tools through Claude Code for project management
How It Works
┌─────────────────┐ ┌──────────────────┐ ┌─────────────┐
│ Coordinator │◄────►│ Vibe-Ensemble │─────►│ Workers │
│ (Claude Code) │ │ Server │ │ (Headless) │
│ │ │ │ │ │
│ • Plans tasks │ │ • Manages state │ │ • Execute │
│ • Creates flows │ │ • Routes work │ │ • Report │
│ • Monitors │ │ • Coordinates │ │ • Handoff │
└─────────────────┘ └──────────────────┘ └─────────────┘
│
│ SSE/WebSocket
│ (Events)
▼
┌─────────────────┐
│ Event Streams │
│ & Monitoring │
│ │
│ • Progress │
│ • Notifications │
│ • Status │
└─────────────────┘
Key Benefits:
- No Context Drift: Each worker focuses on one specific task
- Sequential Processing: Workers handle stages in defined order
- Persistent Progress: All work is saved and can be resumed
- Smart Coordination: Automatic workflow progression based on completion
- WebSocket Infrastructure: Foundation for future real-time features
Contributing
We welcome contributions! Please see for guidelines on:
- Setting up the development environment
- Code style and testing requirements
- Submitting pull requests
- Reporting issues
License
Apache 2.0