Skip to content
Agentmart
Submit a tool

OpenCode MCP Bridge

Coordinate and verify OpenCode workers over MCP Streamable HTTP.

Connector by ManuOtel · GitHub account verified by the MCP Registry

IndexedLicense unknownRemote (HTTP)★ 3
Write a review

Chalk Labs

Need help deploying OpenCode MCP Bridge?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, VS Code, Cursor, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install connector/manuotel-opencode-mcp-bridge

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Remote endpoint

  • https://opencode-mcp.manuotel.com/worker-mcp Remote (HTTP)

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Coordinate and verify OpenCode workers over MCP Streamable HTTP.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
10 read · 5 write · 4 delete
Secrets
1 (API keys, tokens or passwords)
Install scripts
Nothing to install (hosted)
Runs as
Hosted (remote endpoint)

Tools by what they do 19

Read from the source code; the running server may list different tools.

Read 10 · Look things up without changing anything.

  • get_diff
  • get_session
  • list_agents
  • list_messages
  • list_providers
  • list_sessions
  • worker_catalog
  • worker_status
  • worker_verify
  • worker_wait

Write 5 · Create, change, send or run things.

  • create_session
  • send_message
  • worker_decide
  • worker_resume
  • worker_run

Delete 4 · Delete, drop, revoke or wipe things.

  • abort_session
  • delete_session
  • exec_run
  • worker_cleanup

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • Authorization

Network hosts it talks to 5

  • github.com · found in code
  • glama.ai · found in code
  • host.docker.internal · found in code
  • opencode-mcp.manuotel.com · found in remote endpoint, install command, code
  • opencode.ai · found in code

Files it touches

  • /var/lib/opencode-mcp-bridge/tasks.json
  • Your home directory (~)
  • Any path the agent passes to its tools

Tools (19)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • abort_sessioncan change or delete data

    Abort a running session. Args: sessionID: Session ID. directory: Working directory override. Returns: Dict with sessionID and aborted=True.

  • create_session

    Create a new opencode session. Args: title: Session title. directory: Working directory (must be within allowed directories). Returns: Created session returned by opencode. Select agent, provider, and model on send_message.

  • delete_sessioncan change or delete data

    Delete a session and all its data. Use to clean up test sessions. Args: sessionID: Session ID. directory: Working directory override. Returns: Dict with sessionID and deleted=True.

  • exec_runcan change or delete data

    Run a raw shell command on the server. Full access, no sandbox. Opt-in only: disabled unless ENABLE_EXEC_RUN=true. The tool stays listed on /mcp for backward compatibility, but calls fail closed when disabled. Prefer opencode sessions for code changes (they track diffs). Use this for system ops: docker, systemctl, logs, networking, disk. /worker-mcp never exposes this tool; it is the recommended endpoint. Args: command: Shell command to run. workdir: Working directory. Defaults to the server default. timeout_s: Timeout in seconds. Defaults to server setting. Returns: Dict wi…

  • get_diffread-only

    Get file diffs produced by a session. Args: sessionID: Session ID. messageID: Optional message to scope the diff. directory: Working directory override. Returns: File diff list from opencode.

  • get_sessionread-only

    Get one session by ID. Args: sessionID: Session ID. directory: Working directory override. Returns: Simplified session dict.

  • list_agentsread-only

    List available opencode agents (e.g. plan, build). Args: directory: Working directory. Defaults to the server default. Returns: Agent list with name/mode/description.

  • list_messagesread-only

    List messages in a session (user prompts and assistant replies). Args: sessionID: Session ID. directory: Working directory override. limit: Max messages (1-200). Returns: List of {id, role, text, time} dicts.

  • list_providersread-only

    List opencode providers and models. Call this first for the model picker. Returns: Dict with providers [{providerID, name, modelIDs, connected}] and default map.

  • list_sessionsread-only

    List recent opencode sessions. Args: directory: Filter directory. limit: Max sessions (1-100). Returns: Simplified session dicts.

  • send_message

    Send a prompt to a session and wait for the assistant reply. Args: sessionID: Session ID from create_session. message: The message text for the agent. prompt: Backward-compatible alias for message. Supply exactly one. providerID: Optional model override provider. modelID: Optional model override model. agent: Optional agent override. directory: Working directory override. Returns: Dict with sessionID, messageID, text, and model info.

  • worker_catalogread-only

    List worker models with free/connected filters. Free means the model ID or name contains an explicit "free" marker (case-insensitive). Zero token-cost metadata alone never counts as free; cost metadata is preserved in entries but does not infer billing entitlement. The configured default provider/model sorts first when it survives filters, then provider/model order. `recommendations` is filter-independent and always lists rank 1 (configured free default, try first) then rank 2 (paid OpenCode Go `opencode-go/muse-spark-1.3-contributor`, explicit request only). Args: query: Case-insensitiv…

  • worker_cleanupcan change or delete data

    Clean up a worker with an explicit abort or delete action. All arguments are validated before any side effect runs. Delete is idempotent: when the session is already gone from OpenCode (HTTP 404 on abort or delete), the task record is still removed and delete reports success with a generic warning, so stale workers clean up safely. Only the given taskID is ever touched; unrelated sessions are never listed or killed. Args: taskID: Task ID from worker_run (the session ID). directory: Working directory override. action: Either "abort" (stop the worker, keep the session) or "…

  • worker_decide

    Decide a paused approval-gated task without starting any work. Approve moves approval_required to approved (still no OpenCode call; start it with worker_resume and the same inputs). Reject moves it to rejected, terminal. Expired, duplicate, or mismatched decisions fail safely with no state change and no side effects. The approval token must match the token returned by worker_run for the same taskID. An optional directory must canonically match the stored directory when supplied; omitted recovers the stored directory. Args: taskID: Pending approval task ID from worker_run (apr_ prefix). …

  • worker_resume

    Resume an approved task by starting the deferred worker exactly once. Only approval_required tasks that worker_decide approved, with a matching approval_token and the same inputs (message fingerprint), unexpired, and not already resumed, may start. The deferred session is created and prompted once; duplicates, mismatches, rejections, expirations, and re-resumes fail safely with no second session. The prompt text is hashed for same-task matching and never stored. Args: taskID: Approved task ID from worker_run (apr_ prefix). approval_token: Matching token returned by worker_run. me…

Show 4 more tools
  • worker_run

    Start a background worker: create a session and prompt it without waiting. Model overrides, request IDs, and directory lengths are validated before anything is created, so invalid input has no side effects. When requestID repeats with the same inputs, the existing task returns with deduplicated=true and no second session is created. If the recorded session no longer exists in OpenCode (registry survived while the session did not, e.g. after cleanup or server data loss), the retry transparently recreates it and returns deduplicated=false. Uncertain liveness (non-404 lookup failures) keeps the …

  • worker_statusread-only

    Poll a background worker for state and its latest assistant text. Immediate snapshot fallback for worker_wait: never blocks, never invokes an LLM call, never requires client sleep polling. Pass the directory returned by worker_run when it differs from the configured default: status and messages are directory-scoped. When directory is omitted, the saved task record is used to recover it. A worker that stays running with empty output past TASK_STALE_AFTER_S is classified stale with a bounded reason and a recovery hint; clean it with worker_cleanup action=delete for this taskID only. Args: …

  • worker_verifyread-only

    Verify a worker: bounded latest output plus a read-only git bundle. Never runs caller-provided commands. Git inspection uses only fixed arguments via asyncio.create_subprocess_exec, never a shell, each with a narrowly scoped ``-c safe.directory`` for the inspected directory. Args: taskID: Task ID from worker_run (the session ID). directory: Repository directory to verify. Defaults to server default. max_output_chars: Output cap, clamped to a bounded range. Returns: Compact dict with taskID, sessionID, state, status, bounded output counts, directory, and a verification bu…

  • worker_waitread-only

    Wait for a background worker to change state, bounded server-side. Coordinator-friendly alternative to client sleep polling: the server polls OpenCode on the caller's behalf and returns as soon as the task state (or assistant output progress) changes, or when the bounded timeout expires. Never waits indefinitely: timeout_s is clamped to a finite [1, 120]s range and the call always returns by the deadline. Never invokes an extra LLM call: only read-only GET /session/status and the latest assistant message are used, never prompt_async. Keep worker_run asynchronous and use worker_status for an i…

Signals

Stars
3
Forks
0
Open issues
0
Last commit
Oct 15, 2026 (15 days ago)
Last release
Sep 21, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

Registry name
io.github.ManuOtel/opencode-mcp-bridge
Version
0.2.0
Auth
Bearer token
License
License unknown
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get OpenCode MCP Bridge running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying OpenCode MCP Bridge?

CallGet help
Cite this page

OpenCode MCP Bridge. Agent Mart. https://agentmart.dev/connectors/manuotel-opencode-mcp-bridge (last updated 2026-10-24)