Skip to main content

opencode-samcp

Sub-Agent MCP — an MCP server that lets an AI agent (Devin, Codex, Claude Code, Cursor, …) spawn opencode sessions as sub-agents and hand them coding work.

The parent agent calls opencode_run with a prompt and a directory; opencode does the work headlessly (opencode run --format json --auto) and the result comes back as structured data: final message, tool-call summary, errors, token usage and cost. Sessions can be continued, forked, run in parallel in the background, inspected and deleted.

Requirements

  • opencode installed and authenticated (opencode on PATH, or set OPENCODE_BIN)
  • uv (or pip install)

Install / run

The server is Python; every option below needs uv and opencode on the machine.

Method Command
npx (no install) npx -y opencode-samcp
npm (global) npm i -g opencode-samcp then opencode-samcp
uvx from PyPI uvx opencode-samcp
uvx from GitHub uvx --from git+https://github.com/amirdaraby/opencode-samcp opencode-samcp
pip pip install opencode-samcp then opencode-samcp

The npm package is a thin launcher: it bundles the Python server and runs it through uvx. If uv or opencode is missing, it exits with a clear "not installed on machine" error.

Configure your client

Devin

Settings → MCP Marketplace → Add Your Own (STDIO):

Field Value
Command npx
Args -y opencode-samcp

Devin runs in its own VM, so opencode must be installed and logged in there (add it to the machine setup / snapshot).

Codex (~/.codex/config.toml)

[mcp_servers.opencode]
command = "npx"
args = ["-y", "opencode-samcp"]

Claude Code

claude mcp add opencode -- npx -y opencode-samcp

Generic JSON

{ "mcpServers": { "opencode": { "command": "npx", "args": ["-y", "opencode-samcp"] } } }

HTTP transport

For clients that only speak remote MCP:

opencode-samcp --transport streamable-http --host 127.0.0.1 --port 8765   # endpoint: /mcp
opencode-samcp --transport sse ...                                         # endpoint: /sse

There is no authentication and the sub-agent can edit files and run commands — keep it on localhost or behind an authenticated tunnel/proxy.

Tools

Tool Purpose
opencode_run Start a session (or continue session_id, optionally fork) in directory. Waits up to wait_seconds (default 600); 0 runs in the background. Supports model, agent, title, files, auto_approve.
opencode_job Poll/wait on a background job by job_id.
opencode_jobs List jobs started by this server.
opencode_cancel Stop a running job (session is kept).
opencode_sessions List opencode sessions for a project directory.
opencode_transcript Condensed transcript of a session.
opencode_delete_session Delete a session and its children.

Parallel work: start several jobs with wait_seconds=0, each in its own git worktree so they don't clash, then poll with opencode_job.

Environment variables

Var Meaning
OPENCODE_BIN Path to the opencode binary (default opencode)
OPENCODE_MODEL Default provider/model when the caller doesn't pass one

Security

auto_approve defaults to true (required for headless runs): the sub-agent can modify files and run shell commands in the given directory. Only expose this server to agents you trust, and point it at disposable checkouts/worktrees where possible.

Notes

  • Job state is in-memory; it is lost when the server process restarts (opencode sessions themselves persist and can be resumed by session_id).

Publishing (maintainers)

npm publish            # npm / npx
uv build && uv publish # PyPI / uvx / pip

Development

uv run --group dev pytest

MIT licensed.

Metadata

Release files for opencode-samcp 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for opencode-samcp 0.0.2
File Size Uploaded Provenance Actions
opencode_samcp-0.0.2.tar.gz 83.6 kB Without provenance Details for opencode_samcp-0.0.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for opencode-samcp 0.0.2
File Interpreter ABI Platform Actions
opencode_samcp-0.0.2-py3-none-any.whl Python 3 none any Details for opencode_samcp-0.0.2-py3-none-any.whl

Total release size: 92.3 kB

Release files / opencode_samcp-0.0.2.tar.gz

Download URL opencode_samcp-0.0.2.tar.gz
Size 83.6 kB
Tags Source
SHA-256 checksum
How to use checksums
ed696ed4ce47c026ef6d9979ba62a49e078a4af841882ad3c6ce84f21d735acb
BLAKE2b-256 checksum
How to use checksums
d74df2e175f10f2730c14761b0b2d7623a844a219a51a490a0b26b967f14c78d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / opencode_samcp-0.0.2-py3-none-any.whl

Download URL opencode_samcp-0.0.2-py3-none-any.whl
Size 8.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
196479c173f974b52c0ea51f88c138c20ec5120f1cb364bc21cd6deeaf3bf3da
BLAKE2b-256 checksum
How to use checksums
c304b09afe422bd130b3309bc0fc14f7e7794f7ae8ef8cacf7a97080cb836b7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for opencode-samcp 0.0.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page