# Orchestrator

A local MCP server that lets one coding agent consult another — Codex, Claude, OpenCode, GitHub Copilot or Antigravity. Handy when a diff needs a second pair of eyes.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 10
- Author: crAK1644
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/crAK1644/orchestrator-mcp
- Updated: 2026-10-18
- HTML: https://affpapa.org/en/nevibecode/mcp/orchestrator

## What it does

Orchestrator starts a CLI agent that is already installed and signed in on your machine, hands it the request and brings back a structured answer. No provider keys are involved: each vendor's CLI keeps its own login, and usage is billed to your accounts. A plain `orchestrator_consult` call excludes the host runtime entirely, so Claude cannot use the tool to reach Claude, and Codex cannot reach Codex. The reply carries a `consultation_id` you can reuse for follow-ups.

In Claude the install goes through the plugin: `/plugin marketplace add crAK1644/orchestrator-mcp`, then `/plugin install orchestrator-mcp@orchestrator-mcp`, then `/orchestrator-mcp:setup`. Setup builds `~/.orchestrator-mcp/config.yaml` from the CLIs it detects and runs `doctor` against it. You need `uv` on your `PATH`, and OpenCode has to be added to the config by hand from the example. Afterwards reconnect `plugin:orchestrator-mcp:orchestrator` in `/mcp` or restart Claude.

Calls block the turn that makes them, sometimes for minutes. In Claude, hand the call to a background subagent and keep working. Google models are reached through Antigravity CLI.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `ORCHESTRATOR_HOST_RUNTIME`, `ORCHESTRATOR_CONFIG` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add orchestrator-mcp -e ORCHESTRATOR_HOST_RUNTIME=<ORCHESTRATOR_HOST_RUNTIME> -e ORCHESTRATOR_CONFIG=<ORCHESTRATOR_CONFIG> -- uvx orchestrator-mcp-server
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from orchestrator-mcp-server <command>

### Codex

**Platform CLI**
```bash
codex mcp add orchestrator --env ORCHESTRATOR_HOST_RUNTIME=<ORCHESTRATOR_HOST_RUNTIME> --env ORCHESTRATOR_CONFIG=<ORCHESTRATOR_CONFIG> -- uvx orchestrator-mcp-server
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from orchestrator-mcp-server <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "orchestrator": {
            "command": "uvx",
            "args": [
                "orchestrator-mcp-server"
            ],
            "env": {
                "ORCHESTRATOR_HOST_RUNTIME": "<ORCHESTRATOR_HOST_RUNTIME>",
                "ORCHESTRATOR_CONFIG": "<ORCHESTRATOR_CONFIG>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from orchestrator-mcp-server <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "orchestrator": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "orchestrator-mcp-server"
            ],
            "env": {
                "ORCHESTRATOR_HOST_RUNTIME": "<ORCHESTRATOR_HOST_RUNTIME>",
                "ORCHESTRATOR_CONFIG": "<ORCHESTRATOR_CONFIG>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from orchestrator-mcp-server <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e ORCHESTRATOR_HOST_RUNTIME=<ORCHESTRATOR_HOST_RUNTIME> -e ORCHESTRATOR_CONFIG=<ORCHESTRATOR_CONFIG> orchestrator uvx orchestrator-mcp-server
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from orchestrator-mcp-server <command>

## When to use it
- get a second opinion on a diff without pasting it elsewhere
- continue a consultation via the same `consultation_id`
- compare answers from agents of different vendors on one task
- ask Codex from inside Claude
- keep a local record of calls and cost estimates

## Example prompts
- Ask Codex whether this diff has a bug
- Have OpenCode walk through `parse_config` and bring its answer back
- Continue the last consultation using its `consultation_id`

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43872

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
