An MCP server that lets Claude Code delegate coding tasks to external models running on a
local opencode serve, so the main agent's tokens go to planning and review instead of
mechanical implementation work.
Claude Code --MCP stdio--> opencode-bridge --HTTP/SSE--> opencode serve --> delegated model
This project is Windows-first. The MCP server itself (src/index.ts, a Node.js stdio
process) is portable to any OS Node runs on. What is not portable is the supervision layer: the
serve is kept alive by the Windows Task Scheduler, and the setup/maintenance scripts
(scripts/*.ps1) are PowerShell 7. Everything under SETUP.md, TROUBLESHOOTING.md and
docs/USO-NO-CLAUDE-CODE.md was written and measured on Windows.
Running this on Linux or macOS would require rewriting the supervision layer — a systemd
unit or a launchd agent in place of the scheduled task, and a shell equivalent of
scripts/install-serve-task.ps1, scripts/start-serve.ps1 and
scripts/sync-opencode-config.ps1. None of that exists in this repository today; this section
states what the gap is, not that it is filled.
- Node.js 20+ and npm.
opencodeinstalled and onPATH, already authenticated with at least one provider.- PowerShell 7.3+ (
pwsh) — used by the setup and maintenance scripts. - Claude Code, to register the bridge as an MCP server.
- Clone the repository (the scheduled-task script assumes
%USERPROFILE%\opencode-bridgeby default — seeSETUP.md§2 if you clone elsewhere). npm install && npm run build.pwsh -File .\scripts\install-serve-task.ps1— generates the serve credential and registers the scheduled task that startsopencode serveat user logon.pwsh -File .\scripts\sync-opencode-config.ps1— mirrors the MCPs configured in Claude Code into opencode's config and restarts the serve.- Copy
bridge.config.example.jsontobridge.config.jsonand pointaliases/cheapModelat models your own opencode provider actually exposes (check withopencode models, or withlist_modelsonce step 6 is done). Without this file,delegate_taskstill works by passing a raw"provider/model", butbridge_health deep: truehas nocheapModelto probe with and fails.sync-overrides.jsonfollows the same copy-the-example pattern, if you need to change which MCPs the sync step excludes or adds. - Register
opencode-bridgeas an MCP server in Claude Code (exact JSON indocs/USO-NO-CLAUDE-CODE.md§1) and run thebridge_healthtool withdeep: trueuntil it comes back green.
Full walkthrough, including the serve's authentication model and what to adjust if you did not
clone into the default path: SETUP.md.
| Tool | What it does |
|---|---|
delegate_task |
Creates a session and delegates a task to an external model, waiting for the result. |
continue_task |
Sends a follow-up prompt to an existing session, with full history. |
task_progress |
Inspects a running session (tool-call count, todo list) without interrupting it. |
abort_task |
Stops the round in progress; keeps the session for inspection or resume. |
end_task |
Ends and deletes a session on the server. |
list_tasks |
Lists sessions known to the server, recovering ones the bridge's registry lost. |
list_models |
Lists every model the opencode server offers, plus your configured aliases. |
bridge_health |
Checks the whole delegation chain: credential, serve, auth, models, skills, and optionally a real MCP call. |
Detailed parameters, when to use each tool and when not to: docs/USO-NO-CLAUDE-CODE.md.
SETUP.md— installation, the serve's authentication model, changing the delegated agent's MCP list.docs/USO-NO-CLAUDE-CODE.md— how to register the bridge in Claude Code, the tool catalog, environment variables, model selection.TROUBLESHOOTING.md— symptom → cause → the command that fixes it.docs/APRENDIZADOS.md— what building this taught about signals, gates and silent failure modes; useful even if you never run this bridge.
MIT — see LICENSE.
Um servidor MCP que permite ao Claude Code delegar tarefas de código a modelos externos
rodando num opencode serve local, para que os tokens do agente principal sejam gastos em
planejamento e revisão, não em trabalho mecânico de implementação.
Claude Code --MCP stdio--> opencode-bridge --HTTP/SSE--> opencode serve --> modelo delegado
Este projeto é Windows-first. O servidor MCP em si (src/index.ts, um processo stdio em
Node.js) é portável para qualquer SO que rode Node. O que não é portável é a camada de
supervisão: o serve é mantido de pé pelo Agendador de Tarefas do Windows, e os scripts de
instalação/manutenção (scripts/*.ps1) são PowerShell 7. Tudo em SETUP.md,
TROUBLESHOOTING.md e docs/USO-NO-CLAUDE-CODE.md foi escrito e medido no Windows.
Rodar isto em Linux ou macOS exigiria reescrever a camada de supervisão — uma unit systemd
ou um agente launchd no lugar da tarefa agendada, e um equivalente em shell de
scripts/install-serve-task.ps1, scripts/start-serve.ps1 e
scripts/sync-opencode-config.ps1. Nada disso existe neste repositório hoje; esta seção diz
qual é a lacuna, não que ela está preenchida.
- Node.js 20+ e npm.
opencodeinstalado e noPATH, já autenticado em pelo menos um provider.- PowerShell 7.3+ (
pwsh) — usado pelos scripts de instalação e manutenção. - Claude Code, para registrar a ponte como servidor MCP.
- Clone o repositório (o script da tarefa agendada assume por padrão
%USERPROFILE%\opencode-bridge— vejaSETUP.md§2 se você clonar em outro lugar). npm install && npm run build.pwsh -File .\scripts\install-serve-task.ps1— gera a credencial do serve e registra a tarefa agendada que sobe oopencode serveno logon do usuário.pwsh -File .\scripts\sync-opencode-config.ps1— espelha os MCPs configurados no Claude Code na config do opencode e reinicia o serve.- Copie
bridge.config.example.jsonparabridge.config.jsone apontealiases/cheapModelpara modelos que o seu provider do opencode realmente oferece (confira comopencode models, ou comlist_modelsdepois do passo 6). Sem esse arquivo,delegate_taskcontinua funcionando passando"provider/model"direto, masbridge_health deep: truefica semcheapModelpara testar e falha.sync-overrides.jsonsegue o mesmo padrão de copiar o exemplo, se você precisar mudar quais MCPs o passo de sync exclui ou acrescenta. - Registre
opencode-bridgecomo servidor MCP no Claude Code (JSON exato emdocs/USO-NO-CLAUDE-CODE.md§1) e rode a toolbridge_healthcomdeep: trueaté ela voltar verde.
Passo a passo completo, incluindo o modelo de autenticação do serve e o que ajustar se você não
clonou no caminho padrão: SETUP.md.
| Tool | O que faz |
|---|---|
delegate_task |
Cria uma sessão e delega uma task a um modelo externo, esperando o resultado. |
continue_task |
Manda um follow-up numa sessão existente, com o histórico inteiro. |
task_progress |
Inspeciona uma sessão em andamento (contagem de tool calls, todo list) sem interromper. |
abort_task |
Para a rodada em andamento; mantém a sessão para inspeção ou retomada. |
end_task |
Encerra e apaga uma sessão no servidor. |
list_tasks |
Lista sessões conhecidas pelo servidor, recuperando as que o registro da ponte perdeu. |
list_models |
Lista todo modelo que o servidor opencode oferece, mais os apelidos configurados. |
bridge_health |
Verifica a cadeia inteira de delegação: credencial, serve, auth, modelos, skills e, opcionalmente, uma chamada real de MCP. |
Parâmetros detalhados, quando usar cada tool e quando não usar: docs/USO-NO-CLAUDE-CODE.md.
SETUP.md— instalação, modelo de autenticação do serve, troca da lista de MCPs do agente delegado.docs/USO-NO-CLAUDE-CODE.md— como registrar a ponte no Claude Code, catálogo de tools, variáveis de ambiente, escolha de modelo.TROUBLESHOOTING.md— sintoma → causa → o comando que resolve.docs/APRENDIZADOS.md— o que construir isto ensinou sobre sinais, gates e formas silenciosas de falha; útil mesmo que você nunca rode esta ponte.
MIT — veja LICENSE.