orchestra-mcp / plugins
Orchestra MCP Plugins — Master/Core package for the extension runtime, DI, manifest, contributes, and VS Code API compatibility
Fund package maintenance!
fadymondy
Installs: 51
Dependents: 2
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/orchestra-mcp/plugins
Requires
- php: ^8.2
- laravel/framework: ^12.0
- laravel/pennant: ^1.0
Requires (Dev)
- carthage-software/mago: ^1.0
- laravel/pint: ^1.24
- orchestra/testbench: ^10.0
- pestphp/pest: ^3.0|^4.0
- pestphp/pest-plugin-laravel: ^3.0|^4.0
This package is auto-updated.
Last update: 2026-02-10 16:09:57 UTC
README
Orchestra MCP Plugins
The master/core package for Orchestra MCP — a plugin-based application framework built on Laravel.
Provides the extension runtime, dependency injection container, manifest system, contributes registry, VS Code extension compatibility, and Laravel Pennant feature flag integration.
Features
- Plugin Lifecycle — Register, activate, deactivate, and manage plugins with dependency resolution
- DI Container — Plugin-scoped service registry with singleton and transient scopes
- Contributes System — VS Code-style declarative contributions (commands, menus, themes, languages, grammars, keybindings, settings)
- VS Code Compatibility — Load VS Code extensions (themes, languages, grammars) via VSIX packages
- Feature Flags — Laravel Pennant integration for per-user/scope plugin toggling
- Plugin Generator — Scaffold new plugins with
php artisan make:plugin - Events — Hook into plugin lifecycle with
PluginRegistered,PluginActivated,PluginDeactivated
Requirements
- PHP 8.2+
- Laravel 12.x
Installation
composer require orchestra-mcp/plugins
The service provider is auto-discovered. To publish the config:
php artisan vendor:publish --tag=orchestra-plugins-config
Quick Start
1. Create a Plugin
php artisan make:plugin Git
This generates a full package scaffold at packages/orchestra-mcp/git/.
2. Implement Your Plugin
use OrchestraMcp\Plugins\Plugin\Plugin; class GitPlugin extends Plugin { public function id(): string { return 'orchestra-mcp/git'; } public function name(): string { return 'Git'; } protected function boot(): void { // Setup logic after activation } }
3. Register in Your ServiceProvider
use OrchestraMcp\Plugins\Services\PluginManagerService; public function register(): void { $this->app->afterResolving(PluginManagerService::class, function (PluginManagerService $manager) { $manager->register(new GitPlugin()); }); }
4. Use the Facade
use OrchestraMcp\Plugins\Facades\Plugins; $allPlugins = Plugins::plugins()->all(); $activePlugins = Plugins::plugins()->active(); $mcpTools = Plugins::mcpTools();
Artisan Commands
| Command | Description |
|---|---|
make:plugin {name} |
Create a new plugin package |
plugins:list |
List all registered plugins |
plugins:enable {id} |
Enable a disabled plugin |
plugins:disable {id} |
Disable an active plugin |
plugins:install-vscode {path} |
Install a VS Code extension from VSIX |
Documentation
Full documentation is available in the docs/ directory:
- Getting Started — Installation, configuration, quick start
- Core Concepts — Plugin lifecycle, manifest, DI container
- Contributes — Commands, menus, themes, languages, keybindings
- VS Code Compatibility — VSIX loading, manifest adaptation
- Feature Flags — Laravel Pennant integration
- Commands — Artisan command reference
- Testing — Testing your plugins
- API Reference — Contracts and interfaces
Development
# Install dependencies composer install # Run tests composer test # Format code composer format # Static analysis composer check # Lint composer lint
License
MIT
