Orchestra MCP Server — aggregates MCP tools from all plugins via laravel/mcp

Fund package maintenance!
fadymondy

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/orchestra-mcp/mcp

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

This package is auto-updated.

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


README

Screenshot

MCP Server

Orchestra MCP Server plugin — aggregates MCP tools from all active plugins and exposes them via the Model Context Protocol using laravel/mcp.

Features

  • Tool Aggregation — Automatically collects MCP tools from all active plugins implementing HasMcpTools
  • 5 Built-in Tools — Plugin management (list, info, enable, disable) and server info
  • 2 Resources — Plugin list and server config at orchestra:// URIs
  • 1 Prompt — Interactive plugin management guide
  • Dual Transport — Web endpoint (/mcp/orchestra) and stdio binary (vendor/bin/orch-mcp)
  • One-Command Installphp artisan orchestra:mcp-install sets up everything

Installation

composer require orchestra-mcp/mcp
php artisan orchestra:mcp-install

The install command publishes the config, registers the server in .mcp.json, and displays connection info.

Quick Start

Connect with Claude Code

The install command automatically registers the server. To add manually:

claude mcp add orchestra vendor/bin/orch-mcp

Connect with Claude Desktop

Add to your Claude Desktop config:

{
    "mcpServers": {
        "orchestra": {
            "command": "/full/path/to/your/project/vendor/bin/orch-mcp",
            "args": []
        }
    }
}

Verify

php artisan orchestra:mcp-status

Built-in Tools

Tool Annotation Description
plugin-list #[IsReadOnly] List plugins with optional status filter
plugin-info #[IsReadOnly] Get detailed plugin info by ID
plugin-enable #[IsIdempotent] Enable a disabled plugin
plugin-disable #[IsIdempotent] Disable an active plugin
server-info #[IsReadOnly] Server status and capability counts

Built-in Resources

Resource URI
Plugin List orchestra://plugins/list
Server Config orchestra://server/config

Built-in Prompts

Prompt Description
plugin-guide Interactive guide for managing plugins via MCP

Providing MCP Tools from a Plugin

Implement HasMcpTools in your plugin to contribute tools to the server:

use OrchestraMcp\Plugins\Contracts\HasMcpTools;
use OrchestraMcp\Plugins\Plugin\Plugin;

class GitPlugin extends Plugin implements HasMcpTools
{
    public function id(): string
    {
        return 'orchestra-mcp/git';
    }

    public function name(): string
    {
        return 'Git';
    }

    public function mcpTools(): array
    {
        return [
            GitStatusTool::class,
            GitCommitTool::class,
        ];
    }
}

Configuration

Publish the config:

php artisan vendor:publish --tag=orchestra-mcp-server-config
Key Default Env Variable Description
enabled true ORCHESTRA_MCP_ENABLED Enable/disable the MCP server
route /mcp/orchestra ORCHESTRA_MCP_ROUTE Web transport URL path
local_handle orchestra ORCHESTRA_MCP_LOCAL_HANDLE Stdio transport handle
name Orchestra MCP ORCHESTRA_MCP_NAME Server display name
version 0.1.0 Server version
marketplace false Marketplace visibility

Artisan Commands

Command Description
orchestra:mcp-install Publish config, register in .mcp.json
orchestra:mcp-status Show server status, tools, resources, prompts

Documentation

Full documentation is available in the docs/ directory:

  • Getting Started — Installation, configuration, connecting
  • Architecture — Server design, plugin aggregation, transport layers
  • Tools — Built-in tool reference (plugin-list, plugin-info, etc.)
  • Resources — MCP resources (plugin list, server config)
  • Prompts — MCP prompts (plugin guide)
  • Commands — Artisan command reference
  • Configuration — Full config key reference
  • API Reference — Facades, services, server class

Development

# Install dependencies
composer install

# Run tests
composer test

# Format code
composer format

# Static analysis
composer check

# Lint
composer lint

License

MIT