Skip to content
Conduit

mcp server

opencode-orchestrator

Multi-model orchestrator-worker MCP extension for Goose. VRAM-aware model hot-swapping with specialized worker roles.

Set up

Runs on your computer. Pick your agent and operating system.

Before you start

  • uv (`curl -LsSf https://astral.sh/uv/install.sh | sh`)
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "opencode-orchestrator": {
      "command": "uvx",
      "args": [
        "opencode-orchestrator"
      ]
    }
  }
}

same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12

Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs

README

synced Oct 23, 2026

opencode-orchestrator

A multi-model orchestrator-worker MCP extension for Opencode with a browser-based dashboard. Routes prompts to specialized worker models with VRAM-aware hot-swapping.

by Specific Labs

Features

  • Automatic task routing — orchestrator LLM decomposes prompts into a dependency graph of sub-tasks, each assigned to a specialized worker role
  • Specialized workers — each role runs with its own model, temperature, and context window
  • VRAM-aware model pool — LRU eviction ensures local models stay within a configurable memory budget; API models bypass the pool
  • Speculative preloading — the router predicts the next worker needed and begins loading it during the current step
  • Parallel execution — independent steps run concurrently up to a configurable worker limit
  • Browser dashboard — full React UI with Blueprint design system (dark theme, live execution monitoring, config management)
  • macOS .app launcher — double-click to start the server and open the UI
  • Multi-provider — supports Ollama (local), OpenAI-compatible APIs, and Anthropic
  • OpenCode MCP integration — also works as a native Goose extension via MCP tools

Default Worker Roles

RoleDefault ModelTempOptimized For
deep_researchqwen3:32b0.4Multi-hop web research, paper analysis
local_ragqwen3:8b0.2Local document retrieval, code search
code_genqwen2.5-coder:32b0.3Code generation, refactoring, debugging
summarizerqwen3:8b0.5Condensing outputs, report writing
math_reasoningqwen3:32b0.1Formal proofs, calculations, logic
creativellama3:70b0.9Creative writing, brainstorming

All roles are fully customizable via the UI or MCP tools.

Quick Start

Prerequisites

  • Python 3.12+
  • uv
  • Node.js 18+ (for frontend build)
  • Ollama and/or API keys for OpenAI/Anthropic

Install & Run (Browser UI)

git clone https://github.com/santiagoaraoz2001-sketch/opencode-orchestrator.git
cd opencode-orchestrator

# Build everything
uv sync
cd frontend && npm install && npm run build && cd ..

# Launch (opens browser to http://localhost:7432)
uv run opencode-orchestrator-ui

macOS App (one-click launcher)

bash build-app.sh
cp -r "dist/OpenCode Orchestrator.app" /Applications/

Then launch from Spotlight or your Applications folder.

OpenCode MCP Extension

Add to ~/.config/goose/config.yaml:

extensions:
  multi_model_orchestrator:
    enabled: true
    type: stdio
    name: Multi-Model Orchestrator
    cmd: uv
    args:
      - run
      - --project
      - /path/to/opencode-orchestrator
      - opencode-orchestrator
    timeout: 600

Architecture

User Prompt → Orchestrator LLM (task classification)
                    ↓
            Task Plan (dependency graph)
                    ↓
        ┌───────────┼───────────┐
        ↓           ↓           ↓
    Worker A      Worker B      Worker C      (parallel)
   (research)    (code_gen)    (summarizer)
        ↓           ↓           ↓
        └───────────┼───────────┘
                    ↓
           Assembled Response

The Model Pool enforces a strict VRAM budget with LRU eviction. The orchestrator model is pinned and never evicted. API-backed models have zero local VRAM cost.

API Endpoints

MethodPathDescription
GET/api/configFull configuration
PATCH/api/config/orchestratorUpdate orchestrator model
GET/api/config/workersList all worker roles
PATCH/api/config/workers/{role}Update a worker role
POST/api/config/workers/{role}Create a worker role
DELETE/api/config/workers/{role}Remove a worker role
PATCH/api/config/resourcesUpdate resource limits
GET/api/statusModel pool status
POST/api/orchestrateRun orchestration (REST)
WS/api/wsLive execution streaming
GET/api/models/{provider}List available models

Development

# Backend (hot-reload)
uv run uvicorn opencode_orchestrator.backend.app:app --reload --port 7432

# Frontend (Vite dev server with proxy)
cd frontend && npm run dev

# Tests
uv run --extra dev pytest tests/ -v

License

MIT

↑↓ navigate openesc close