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

v0.0.1 2026-02-10 16:08 UTC

This package is auto-updated.

Last update: 2026-02-10 16:09:57 UTC


README

Screenshot

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:

Development

# Install dependencies
composer install

# Run tests
composer test

# Format code
composer format

# Static analysis
composer check

# Lint
composer lint

License

MIT