Central hub that loads plugins, routes QUIC messages, and manages the plugin lifecycle.
go get github.com/orchestra-mcp/orchestrator# Build
go build -o bin/orchestrator ./cmd/
# Run with a plugin configuration file
bin/orchestrator --config plugins.yaml --workspace /path/to/projectThe orchestrator implements a star topology -- all inter-plugin communication flows through it.
- Reads
plugins.yamlto discover plugin binaries - Starts each plugin binary as a subprocess
- Waits for
READY <address>on stderr from each plugin - Connects to each plugin over QUIC with mTLS
- Builds routing tables: tool name to plugin, storage type to plugin
- Forwards
PluginRequest/PluginResponsemessages between plugins
plugins:
- id: storage.markdown
binary: bin/storage-markdown
args: ["--workspace", "."]
- id: tools.features
binary: bin/tools-features
- id: transport.stdio
binary: bin/transport-stdio ┌────────────────────┐
│ Orchestrator │
│ (QUIC hub + router)│
└──────┬─────────────┘
│ QUIC + mTLS
┌────────────┼────────────┐
v v v
storage tools transport
markdown features stdio
| Package | Description |
|---|---|
| sdk-go | Plugin SDK used by all Go plugins |
| gen-go | Generated Protobuf types |
| proto | Source .proto definitions |