opencode-bridge
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., "@opencode-bridgeDelegate writing unit tests for the auth module"
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.
opencode-bridge
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 modelPlatform
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.
Related MCP server: opencode-delegate-mcp
Requirements
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.
Installation
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.
Tools
Tool | What it does |
| Creates a session and delegates a task to an external model, waiting for the result. |
| Sends a follow-up prompt to an existing session, with full history. |
| Inspects a running session (tool-call count, todo list) without interrupting it. |
| Stops the round in progress; keeps the session for inspection or resume. |
| Ends and deletes a session on the server. |
| Lists sessions known to the server, recovering ones the bridge's registry lost. |
| Lists every model the opencode server offers, plus your configured aliases. |
| 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.
Documentation
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.
License
MIT — see LICENSE.
opencode-bridge (português)
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 delegadoPlataforma
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.
Requisitos
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.
Instalação
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.
Tools
Tool | O que faz |
| Cria uma sessão e delega uma task a um modelo externo, esperando o resultado. |
| Manda um follow-up numa sessão existente, com o histórico inteiro. |
| Inspeciona uma sessão em andamento (contagem de tool calls, todo list) sem interromper. |
| Para a rodada em andamento; mantém a sessão para inspeção ou retomada. |
| Encerra e apaga uma sessão no servidor. |
| Lista sessões conhecidas pelo servidor, recuperando as que o registro da ponte perdeu. |
| Lista todo modelo que o servidor opencode oferece, mais os apelidos configurados. |
| 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.
Documentação
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.
Licença
MIT — veja LICENSE.
Available Tools
8 toolsabort_taskA
Abort the round running in a delegation session. The session and its history are KEPT for inspection or resume, and the bridge will never re-prompt an aborted session. Use it when two spaced task_progress checks show no growth AND the worktree is unchanged. Not the same as end_task, which deletes the session.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the behavioral burden. It discloses that the session and its history are KEPT for inspection or resume, that the bridge will never re-prompt an aborted session, and contrasts with end_task's destructive behavior. This gives an agent a solid mental model of side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each earning its place: purpose, persistence behavior, usage trigger, and sibling distinction. No filler or repetition. The structure is front-loaded with the core action and then adds necessary context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema or annotations, this description is remarkably complete. It covers what the tool does, when to use it, what happens to the session/history, and how it differs from its closest sibling. An agent has enough context to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain the parameter. It does so implicitly by repeatedly referencing 'delegation session' and 'session,' making it clear that the required session_id identifies the delegation session whose round is being aborted. The format is not detailed, but the meaning is clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Abort the round running in a delegation session.' It clearly distinguishes itself from the sibling tool end_task by stating 'Not the same as end_task, which deletes the session.' This makes the purpose unambiguous and distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit usage condition: 'Use it when two spaced task_progress checks show no growth AND the worktree is unchanged.' It also identifies the alternative (end_task) and explains the key difference, giving clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_healthA
Check the whole delegation chain in one call: credential file readable, serve up and STABLE (two spaced reads, so a dying instance cannot pass), auth enforced, provider models present, skills valid. With deep=true also runs a REAL MCP call through a disposable delegation on the cheapest model, then deletes that session. Run it with deep=true before a batch of delegations and whenever the environment smells broken - it is the manual liveness test turned into code. Do not run deep=true in a loop: it spends tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| deep | No | true = also run a real MCP call through a throwaway session on the cheapest model | |
| model | No | Model for the deep probe (alias or "provider/model"). Defaults to "cheapModel" from bridge.config.json. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite having no annotations, the description thoroughly discloses behavior: the two spaced reads to prevent dying instances from passing, the deep mode running a real MCP call through a disposable delegation and deleting the session, and the token cost warning. This goes beyond what structured data provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: it lists the checks, explains deep mode, gives usage guidance, and warns about tokens. The structure is logical and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers behavior, parameters, and usage thoroughly, which is impressive without annotations or an output schema. The only gap is that it doesn't explicitly describe the return value or response format, which would be helpful for an agent interpreting the health check results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description adds semantic depth by explaining that deep=true triggers a real MCP call on the cheapest model and that the model parameter controls the probe model, tying it to the configuration's cheapModel default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Check the whole delegation chain in one call' and enumerates the specific checks performed (credential file, server stability, auth, provider models, skills). It distinguishes itself from sibling task-management tools by presenting a distinct health-check role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage guidance is provided: 'Run it with deep=true before a batch of delegations and whenever the environment smells broken' and 'Do not run deep=true in a loop: it spends tokens.' This tells the agent when and when not to use the tool, fulfilling the dimension fully.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
continue_taskA
Send a follow-up message to an existing delegation session (full history preserved). Same monitoring guarantees as delegate_task: hard wait ceiling, and a session that ends in error comes back as an error.
USE IT FOR: iterating on work that came back good, or asking for the final summary when the answer came back empty. DO NOT use it while a round is still running - it queues a second prompt on top of the one in flight; check task_progress first. DO NOT use it to switch models: a session belongs to the model it was created with, so relaunch with delegate_task instead.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Only needed if the session predates a bridge restart (the registry is in memory). Must be the SAME model the session was created with. | |
| effort | No | Override the effort for this round only. Omit to keep what the session was created with. | |
| prompt | Yes | ||
| session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses that full history is preserved, inherits monitoring guarantees from delegate_task (hard wait ceiling, error propagation), queues a second prompt if used while a round is running, and explains that a session is bound to its original model. These are non-obvious behaviors that the agent needs to know before invoking the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three paragraphs, but every sentence earns its place. It front-loads the core action, then uses explicit USE IT FOR and DO NOT labels for scannability. It avoids fluff while covering purpose, usage, warnings, and parameter quirks. The structure is exemplary for an agent-facing tool description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema, no annotations, and four parameters, the description is remarkably complete. It covers what the tool does, when to use it, when not to use it, behavioral guarantees, and parameter caveats. It even references delegate_task for shared guarantees, which is appropriate given the sibling context. An agent has sufficient information to decide when and how to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides descriptions for model and effort, but prompt and session_id have no schema description. The description compensates by framing prompt as the 'follow-up message' and session as the 'existing delegation session,' which clarifies their roles. It also adds critical context for the model parameter: 'Only needed if the session predates a bridge restart' and 'Must be the SAME model the session was created with.' This goes beyond the schema, though it does not mention the effort override, which is already covered by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Send a follow-up message to an existing delegation session.' It clearly distinguishes itself from sibling tools by stating it is for continuing an existing session, and even contrasts with delegate_task, which is for launching a new session. This is not a tautology; it adds actionable specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit USE IT FOR scenarios: 'iterating on work that came back good' and 'asking for the final summary when the answer came back empty.' It also gives clear DO NOT usage rules: avoid using while a round is running (check task_progress) and avoid switching models (use delegate_task instead). This is exemplary when/when-not/alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delegate_taskA
Delegate a coding task to an external model running in OpenCode. The delegated model runs an agentic loop with the MCP servers configured in opencode and the skills from ~/.claude/skills - it is a full worker, not a single completion call.
Monitoring is event-driven (SSE) with poll fallback and a hard ceiling (OPENCODE_MAX_POLL_MS, default 45 min) - it never waits forever. Empty responses are retried automatically; a session that ends in error comes back as an error, not as an empty success; if the opencode server is down the bridge restarts it. Run bridge_health first when in doubt.
USE IT FOR: an atomic task whose design is already decided in the prompt. AVOID IT FOR: open design decisions (the model will fill the gap with something plausible) and long build/run loops inside the agent.
TRAP: use ABSOLUTE paths for every file in the prompt, even when passing 'directory'. If the wait hits the ceiling you get an error carrying the session_id - the model MAY STILL BE RUNNING on the server: check task_progress before continue_task.
CHOOSING THE MODEL - MANDATORY: if the user did not name a model for this task, DO NOT pick one on your own. Call list_models, then propose ONE model with a one-line reason ("qwen3.7-plus: multi-file refactor, needs the bigger context") and ask the user to confirm or change it. Once they answer, reuse that choice for the following delegations in this conversation until they say otherwise. Only skip the question when the user already named the model.
RETURNS: session_id for continue_task / task_progress / abort_task / end_task.
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | An alias from bridge.config.json (list_models shows them) or a full "provider/model", e.g. "opencode-go/gpt-5.6-luna". Ask the user when they have not chosen one. | |
| title | No | Short title for the delegation session | |
| effort | No | Reasoning effort, sent to opencode as the message "variant". Valid values are PER MODEL (list_models has the column); an unsupported value is an error, never a silent downgrade. Omit to use the alias default, then the model default. | |
| prompt | Yes | Detailed task description. Use absolute paths for every file operation. | |
| directory | No | Project root for the session (sent as ?directory= when enabled). Still: use absolute paths in the prompt. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full transparency burden and delivers richly: it discloses the agentic loop with MCP servers and skills, the SSE-with-poll-fallback monitoring and hard ceiling (OPENCODE_MAX_POLL_MS, default 45 min), automatic retries of empty responses, error mapping ('a session that ends in error comes back as an error, not as an empty success'), server restart behavior, and the critical trap that the model may still be running after a timeout — instructing the agent to check task_progress before continue_task.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but justified for a high-complexity tool, and it is well-structured with scannable labeled sections (USE IT FOR / AVOID IT FOR / TRAP / CHOOSING THE MODEL - MANDATORY / RETURNS). The opening sentence front-loads the core purpose, and while the absolute-path requirement is repeated, it is deliberate emphasis on a critical failure trap rather than waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a high-complexity tool with no annotations and no output schema, so the description must cover behavior, failure modes, and return values on its own — and it does. It explains the returns via session_id linked to sibling tools, documents timeouts, retries, error semantics, server restart, the model-selection process, and the still-running risk. There are no significant gaps for an agent to fall into.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description nevertheless adds genuine value: the MANDATORY model-selection protocol (do not pick a model on your own; call list_models; propose ONE model with a one-line reason; ask user to confirm; reuse the choice for subsequent delegations) goes well beyond the schema's 'Ask the user when they have not chosen one.' It also reinforces the absolute-path trap for prompt/directory beyond the schema's own wording.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb+resource+target: 'Delegate a coding task to an external model running in OpenCode.' It distinguishes from siblings by clarifying 'it is a full worker, not a single completion call' and linking the returned session_id to the sibling tools (continue_task, task_progress, abort_task, end_task), which makes the tool's role in the family unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use and when-not-to-use guidance: 'USE IT FOR: an atomic task whose design is already decided in the prompt. AVOID IT FOR: open design decisions... and long build/run loops.' It also names alternatives and prerequisites, telling the agent to 'Run bridge_health first when in doubt' and to 'Call list_models' before choosing a model.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
end_taskA
End and DELETE a delegation session on the server, clearing this bridge's registry for it. Use it once the work is accepted. There is no recovery afterwards: to stop the work but keep the history, use abort_task instead.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full behavioral disclosure. It clearly states the destructive and irreversible nature ('DELETE', 'no recovery afterwards'), which is the key behavioral trait for a tool like this. The mention of 'clearing this bridge's registry' adds useful context about what gets modified server-side.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no fluff. The main action is front-loaded, followed by critical usage context and a direct alternative. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 1-parameter destructive tool, the description covers the essential context: action, timing, irreversibility, and alternative. It does not mention return values or error behavior, but with no output schema and a straightforward operation, these omissions are not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. However, it does not mention the session_id parameter or explain how to identify the delegation session. The parameter is self-explanatory from its name and schema, but the description adds no meaning beyond the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'End and DELETE a delegation session on the server, clearing this bridge's registry for it.' It uses specific verb-resource language and distinguishes itself from the sibling abort_task by explicitly noting the difference in recovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: 'Use it once the work is accepted.' It also names an alternative for a different scenario: 'to stop the work but keep the history, use abort_task instead.' This makes the appropriate context unmistakable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_modelsA
List what this opencode server actually offers: every provider/model, its effort levels (opencode calls them "variants"), context window and whether it reasons - plus the aliases configured in bridge.config.json.
USE IT BEFORE delegate_task whenever the user has not named a model: pick a candidate here, then propose it to them with a one-line reason. It is also how you find the valid 'effort' values, which differ per model.
The catalog is large (hundreds of models across providers), so the output is capped. It always reports how many models matched and how many were left out - if something you expect is missing, narrow with 'query'/'provider' or raise 'limit' instead of assuming it is not there.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many rows to print (default 40) | |
| query | No | Free-text filter over "provider/model" and the display name, e.g. "qwen", "gemini", "codex" | |
| provider | No | Exact provider id, e.g. "opencode-go", "openrouter", "google" | |
| reasoning_only | No | Only models that support reasoning |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that output is capped, always reports how many models matched and were left out, and warns not to assume missing models are absent. With no annotations, this is essential behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact paragraphs with no filler. Every sentence adds meaningful information about purpose, usage, or behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema or annotations, the description explains the return content, output cap, count reporting, and usage context with delegate_task, covering all needed information for a 4-param, zero-required tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 4 parameters with descriptions, so baseline is 3. The description adds context on using query/provider to narrow and limit to raise, which enriches parameter usage beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists what the opencode server offers: providers/models, effort levels, context window, reasoning, and aliases. It explicitly positions itself relative to delegate_task, distinguishing it from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to use before delegate_task when the user hasn't named a model, and to find valid effort values. Also provides guidance on narrowing results with query/provider or raising limit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tasksA
List delegation sessions from the SERVER (survives bridge restarts), enriched with this bridge's registry. Use it to recover a session_id when a delegate_task failed without returning one.
IMPORTANT: GET /session on the opencode server is SCOPED BY DIRECTORY. This tool sweeps the server's default scope plus every directory this bridge knows about, and it always prints which scopes it swept. If the bridge was restarted its registry is empty, so a session created with a project directory may not show up - in that case call it again passing that directory explicitly.
| Name | Required | Description | Default |
|---|---|---|---|
| directory | No | Extra project directory to sweep (GET /session is directory-scoped; pass the project root of the missing session) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full transparency burden, and it delivers. It reveals that sessions survive bridge restarts, that the GET /session endpoint is directory-scoped, that the tool sweeps multiple scopes, that it prints swept scopes, and that a restarted bridge may miss sessions unless a directory is passed explicitly. This is rich, non-obvious behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then uses a clearly labeled IMPORTANT block for critical behavioral caveats. Every sentence contributes essential information, and the length is justified by the complexity of the scoping behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderately complex behavior and the complete absence of annotations or an output schema, this description provides enough information for an agent to use the tool safely and effectively. It covers the main use case, edge cases, and how to work around bridge restarts, making it complete for its context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the directory parameter in detail (including why it exists and how to use it), so schema coverage is 100%. The description adds a little extra context by mentioning the restart scenario, but it does not substantially go beyond what the schema already states. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'List delegation sessions from the SERVER'. It also distinguishes itself from nearby tools by framing the primary use case as recovering a session_id after a failed delegate_task, making its role unique among siblings like task_progress or bridge_health.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: 'Use it to recover a session_id when a delegate_task failed without returning one.' It also explains the directory-scoped behavior and how to handle a restarted bridge. However, it does not explicitly name alternative tools or say when not to use this tool, so it stops short of a perfect 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_progressA
Inspect a running delegation without interrupting it: tool-call count (the reliable liveness signal), last tools, todo list. HOW TO READ IT: a tool-call count that grows between two spaced checks means it is working; a todo list that stops moving does NOT mean it is stuck, and is not a reason to abort - the model does not update it while working. For ground truth on files, run 'git status --short' in the worktree. This answers 'alive vs stalled', never 'how much is left'.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses behavioral traits. It explicitly states the tool does not interrupt the delegation, that the todo list may not update during work, that the tool-call count is the reliable liveness signal, and what the tool does not answer. This is exactly the kind of contextual behavior an agent needs to correctly interpret results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a clear opening statement, followed by a labeled 'HOW TO READ IT' section that earns its length. Every sentence adds practical value, and the key message is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description fully covers what the tool returns (tool-call count, last tools, todo list) and how to interpret those signals. It also addresses edge cases (stalled todo list) and exclusions (not progress estimation). For a single-param inspection tool, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the sole required parameter session_id. However, the description never explains what session_id is, how to obtain it, or how it relates to the 'running delegation' mentioned. The phrase 'running delegation' implies the session context but does not add explicit parameter-level meaning beyond the schema's name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Inspect a running delegation without interrupting it', a specific verb+resource that clearly distinguishes this from mutating siblings like abort_task, continue_task, and end_task. It also enumerates the specific data it returns (tool-call count, last tools, todo list), further clarifying its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on how to interpret the tool's output, clearly stating when it should and should not be used: 'This answers alive vs stalled, never how much is left'. It also tells the user not to abort based on a stalled todo list and recommends an alternative ('git status --short') for ground truth on files. This goes beyond simple clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
8 tool updates
v1.0.0- First observed
abort_task - First observed
bridge_health - First observed
continue_task - First observed
delegate_task - First observed
end_task - First observed
list_models - First observed
list_tasks - First observed
task_progress
TDQS
Each tool has a clearly distinct lifecycle role: delegate starts, continue follows up, task_progress inspects, abort pauses, end deletes, list_tasks recovers, list_models selects, bridge_health validates. No two tools could be confused for the same action.
Most tools follow verb_noun (delegate_task, continue_task, abort_task, end_task, list_tasks, list_models), but task_progress and bridge_health break the verb-first pattern. The names remain readable and predictable, so the inconsistency is minor.
Eight tools is well-scoped for a delegation bridge: the full session lifecycle (create, resume, monitor, abort, delete, list) plus model discovery and health checking. Every tool serves a necessary purpose with no redundancy.
The tool surface covers the complete delegation workflow: starting, continuing, inspecting, aborting, ending, listing, model selection, and health verification. There are no obvious missing operations for the stated purpose of managing external coding task delegations.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- AxisOAuthdev.useaxis
Coding agents from Claude Code, Cursor and Codex claim jobs and lock files on one shared board.
No-data MCP handoff for local Claude Code to Codex harness moves. $49 lifetime.
A paid remote MCP for OpenAI Codex agent coordination MCP, built to return verdicts, receipts, usage
Shared control plane for AI coding agents — tasks, memory, decisions, file locks. 12 tools.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables Claude to delegate coding tasks to local Ollama models, reducing API token usage by up to 98.75% while leveraging local compute resources. Supports code generation, review, refactoring, and file analysis with Claude providing oversight and quality assurance.48824AGPL 3.0
- AlicenseAqualityBmaintenanceLets your primary coding agent delegate grunt work to a cheaper model via OpenCode, enabling cost-effective task distribution.5MIT
- AlicenseNot gradedqualityCmaintenanceEnables Claude Code to delegate mechanical tasks (summaries, boilerplate, reformatting) to local models running in LM Studio.1MIT
- FlicenseNot gradedqualityCmaintenanceLets Claude Code offload cheap, mechanical tasks to opencode's free models for codebase summaries, exploration, web research, and bulk edits, saving paid tokens.-
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/Guipegoraro/opencode-bridge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server