open-delegate
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@open-delegaterefactor the utils module with opencode"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
open-delegate
Delegate a Cursor task to a real, unattended background OpenCode agent — cheaper model, isolated history — through five small MCP tools.
Goals
Goal | Detail |
Reduce Cursor spend | Hand work to cheaper OpenCode alternatives (Zen free, open-weights, mid/cheap OpenRouter) |
Real OpenCode handoff | Cursor "delegates" like the native tool, but OpenCode executes |
Trivial install | Finds the |
Guarded model policy | MCP-level default / force catalog / allow / deny; soft always-on routing rule |
Guarded lifecycle | Bounded waits, no leaked background processes, real error text |
Live preview | Each session returns its own |
Related MCP server: codex-as-mcp
Non-goals
Supporting IDEs other than Cursor
Chasing Anthropic/OpenAI flagship quality (Opus / Sonnet / Fable / GPT Sol / Terra are out of curated defaults)
Cursor slug → OpenCode remapping
Task-kind / persona auto-routing beyond configurable force / allow / deny lists
Replacing the native delegate tool for Cursor-native models not on the force list
Prerequisites
Cursor (this plugin is Cursor-only).
Node.js ≥ 18.17 (nodejs.org or your package manager).
OpenCode CLI on your
PATH(or setOPEN_DELEGATE_OPENCODE_BINto its full path).
Install OpenCode
Pick one (package name on npm is opencode-ai, not opencode):
macOS / Linux
# Recommended one-liner
curl -fsSL https://opencode.ai/install | bash
# Or via npm
npm i -g opencode-ai@latest
# Or Homebrew (tap stays more up to date than the official formula)
brew install anomalyco/tap/opencodeWindows
npm i -g opencode-ai@latest
# Or Scoop / Chocolatey
scoop install opencode
# choco install opencodeVerify:
opencode --versionConfigure a model
OpenCode needs at least one usable model. Either:
Run
opencode auth login(or/connectinside the OpenCode TUI) and add a provider API key, orUse a free hosted model such as
opencode/deepseek-v4-flash-free(no API key required for that path).
Docs: opencode.ai/docs.
Install
Note:
@verbalize/open-delegateis not yet published on npm, and the Cursor Marketplace listing is pending. Until then, install from a git clone (below), which registers a local Cursor plugin pointed at your build.
git clone git@github.com:Verbalize-public/open-delegate.git
cd open-delegate
npm install
npm run build
npm run register:localThen Cursor → Developer: Reload Window. Customize → MCP Tools should list open-delegate with five tools: ode_delegate, ode_await, ode_transcript, ode_cancel, ode_diagnostics.
register:local syncs the plugin into ~/.cursor/plugins/local/open-delegate with an mcp.json that runs node <checkout>/dist/index.cjs (avoids the npx 404 while the package is unpublished), and registers a workspaceOpen hook so Cursor loads that path. Re-run after moving the repo, pulling changes, or editing src/ (rebuild first).
Edit the installed ~/.cursor/plugins/local/open-delegate/mcp.json (keep the absolute args path the sync wrote):
{
"mcpServers": {
"open-delegate": {
"command": "node",
"args": ["/absolute/path/to/open-delegate/dist/index.cjs"],
"env": {
"OPEN_DELEGATE_DEFAULT_MODEL": "opencode/deepseek-v4-flash-free"
}
}
}
}On Windows the args path looks like C:/Users/<you>/…/open-delegate/dist/index.cjs (forward slashes are fine).
Optional lists (CSV): OPEN_DELEGATE_ODE_MODELS, OPEN_DELEGATE_ALLOW_MODELS, OPEN_DELEGATE_DENY_MODELS.
For a large custom force list, prefer OPEN_DELEGATE_ODE_MODELS_FILE (JSON array or CSV path) over a giant env CSV.
For a full OpenCode config blob (advanced), use OPEN_DELEGATE_OPENCODE_CONFIG_CONTENT instead.
Full env reference: skills/ode-delegate/reference/config.md.
How it works
Cursor (MCP client)
│ stdio, JSON-RPC
▼
open-delegate MCP server (this repo → dist/index.cjs)
│ spawns + owns
▼
opencode serve (1 shared default runtime)
│ HTTP via OpenCode's client SDK
▼
model / providerSoft rule
rules/open-delegate-routing.mdc: if the named model is on ODE_MODELS or isopenrouter/…, useode_delegate+ode_await(not native Task).The default
opencode serveruntime is pre-warmed right after MCP connect, so mostode_delegatecalls hit an already-warm process.ode_delegatereturns a stablesessionIdwithin a few seconds —status: "running"if setup already finished, orstatus: "starting"if it's still finishing in the background; poll withode_await(timeoutMs: 0for a single peek). OptionalwaitMscan finish short tasks in one call. PasssessionIdto resume a finished session.Before starting a prompt, models are checked against the live OpenCode
provider.list()snapshot (fail-fastMODEL_NOT_AVAILABLE).Prompts are capped at ~512KiB inline; use
promptPathfor anything larger.ode_awaitpolls OpenCode's/session/status+ message list — never the MCP server's own say-so alone.If
opencode servecrashes, every session pinned to it is marked"error"immediately (no hang).Closing the MCP connection disposes every spawned
opencode serveprocess.Internal events are logged as one-line JSON to stderr and to a PID-named file;
ode_diagnosticsreads them back live — see config.md and errors.md.
Documentation
Doc | Topic |
Agent-facing contract: when/how to use the five tools | |
Cheap force-set pins / job defaults | |
Tool-by-tool input/output | |
| |
Error shapes | |
Soft always-on routing (ODE_MODELS / openrouter → ODE) | |
Cost-first catalog research | |
Local development, testing, project layout, release gate | |
Diagnose host-side connection errors, find logs by pid |
Contributing
Issues and PRs welcome. See CONTRIBUTING.md for local setup, tests, project layout, and the maintainer release gate.
Troubleshooting
Hit a "Connection stopped"/timeout in Cursor, or need to find an opencode process's log by pid? See RUNBOOK.md.
License
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Verbalize-public/open-delegate'
If you have feedback or need assistance with the MCP directory API, please join our Discord server