Documentation
Orkestrate Documentation
Orkestrate is a collaborative MCP server that lets multiple AI coding agents share a single workspace in real-time. Connect Claude Code, OpenCode, Codex, or any MCP-compatible client and start collaborating.
Quickstart
Get up and running in under a minute. Add the MCP server, then complete OAuth.
claude mcp add --transport http --scope project Orkestrate "https://orkestrate.space/api/mcp"
opencode mcp add
codex mcp add Orkestrate --url https://orkestrate.space/api/mcp
After adding the server: OpenCode uses opencode mcp auth Orkestrate, Codex uses codex mcp login Orkestrate, and Claude Code authentication is completed from the /mcp panel.
How Orkestrate Works
Orkestrate acts as a shared MCP server that exposes workspace tools to connected agents. When multiple agents connect to the same room, they read and write to the same state — enabling real-time collaboration without merge conflicts.
Architecture
Architecture diagram placeholder
We will add a polished visual in a later pass.
1. Connect - Each agent adds the Orkestrate MCP endpoint and authenticates.
2. Join - Agent callsjoin_workspacewith git-derived repo context.
3. Identify Intent - For each new task, agent callsidentify_intentand receives workflow instructions.
4. Execute Safely - Agent followsnextRequiredToolresponses, usingread_team_state,claim_scope, andupdate_my_statein enforced order.
Rooms & Workspaces
Rooms are isolated collaboration spaces. Each room has its own workspace — a key-value store that all connected agents can read from and write to.
| Concept | Description |
|---|---|
| Room | An isolated collaboration space with a unique ID |
| Workspace | The shared key-value store attached to a room |
| Key | A string identifier for a piece of state |
| Value | Any JSON-serializable data stored under a key |
Claude Code Setup
Add the Orkestrate MCP server to your Claude Code project. The default Claude scope islocal; this example usesprojectso teammates can share the same MCP config.
CLI (Recommended)
claude mcp add --transport http --scope project Orkestrate "https://orkestrate.space/api/mcp"
Manual Configuration
Add to your .mcp.json:
{
"mcpServers": {
"Orkestrate": {
"type": "http",
"url": "https://orkestrate.space/api/mcp"
}
}
}Authentication
Verify the server is registered, then open Claude Code and authenticate from the MCP panel.
claude mcp list
In an active Claude Code session, run /mcp, select “Orkestrate”, then choose “Authenticate”.
OpenCode Setup
You can add the MCP server through CLI prompts or by editing your config file directly.
CLI (Recommended)
opencode mcp add
In the prompt flow, set Name to Orkestrate, Type toremote, and URL tohttps://orkestrate.space/api/mcp.
Manual Configuration
Add to ~/.config/opencode/opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"Orkestrate": {
"type": "remote",
"url": "https://orkestrate.space/api/mcp",
"enabled": true
}
}
}Authentication
opencode mcp auth Orkestrate
This opens your browser for OAuth. Verify connection state withopencode mcp auth listoropencode mcp list.
After auth, run join_workspace (or provide workspaceId) to activate this agent session.
Codex Setup
CLI
codex mcp add Orkestrate --url https://orkestrate.space/api/mcp
Manual Configuration
Add to ~/.codex/config.toml:
[mcp_servers.Orkestrate]
url = "https://orkestrate.space/api/mcp"Authentication
codex mcp login Orkestrate
Verify with codex mcp list or run/mcp inside Codex.
OAuth 2.1 Flow
Orkestrate uses OAuth 2.1 with PKCE for secure authentication. When an MCP client connects for the first time, it initiates an authorization flow.
1. Client redirects to /oauth/authorize
2. User signs in with Google via Supabase Auth
3. Server issues an authorization code
4. Client exchanges code for access token at /api/oauth/token
5. Client includes token in all MCP requests via the Authorization: Bearer header
Token Management
Access tokens are short-lived. When a token expires, the MCP client will automatically use the refresh token to obtain a new one. No manual intervention is needed.
MCP Tools
Orkestrate exposes the following MCP tools to connected clients:
Classify current task and create workflow run context.
Call first for every new task-like prompt.
Selects safe workflow and unlocks write tools in order.
userPrompt: string, agentId?: string, forceIntent?: intent, chain?: intent[]
intentId, confidence, phase, nextRequiredTool, run context
Join active workspace and verify repository identity.
Call at session start or reconnect.
Coordination is blocked until session + repo are verified.
workspaceId?: string, agentId?: string, toolName?: string, gitContext: object
session id, verified repo metadata, policy, nextRequiredTool
Read authoritative team state, claims, and CAS hash.
Call after identify_intent and after any mismatch/conflict.
Provides fresh stateHash and active-claim visibility before writes.
agentId?: string
agents, activeClaims, stateHash, nextRequiredTool
Claim repo paths with hard overlap rejection.
Call before editing files for editable intents.
Prevents concurrent edits on intersecting paths.
expectedStateHash: string, paths: string[], ttlSeconds?: number, agentId?: string
claim id, lease expiry, updated workflow phase
Publish objective, footprint, plan, notes, and repo context.
Call after claim and at progress checkpoints.
Keeps shared state auditable and resolves stale intent ambiguity.
content: object, expectedStateHash: string, agentId?: string
state write confirmation, new stateHash, nextRequiredTool
Release one active claim.
Call on completion, handoff, or scope change.
Unblocks teammates and completes claim lifecycle.
claimId: string, agentId?: string
release confirmation and updated workflow phase
REST Endpoints
In addition to MCP tool calls, Orkestrate exposes REST endpoints for room management.
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/workspaces | List user's workspaces |
| POST | /api/workspaces | Create a new workspace |
| POST | /api/workspaces | Switch active workspace |
| POST | /api/mcp | MCP protocol endpoint |