opencode

Open-source terminal coding agent, TypeScript on the official MCP TypeScript SDK. Ships a patched copy of SDK 1.29.0, so its transport behaviour is not stock.

At a glance

Registry id opencode
Vendor Anomaly
Category cli
Platforms windows, macos, linux
Licence MIT
Source https://github.com/anomalyco/opencode
Home https://opencode.ai
Wire names opencode
SDK @modelcontextprotocol/sdk 1.29.0 · official TypeScript SDK · patched · pins 2025-11-25
Prefers 2025-11-25
Speaks 2024-11-05, 2025-03-26, 2025-06-18, 2025-11-25
Source last updated 2026-08-24
Last read 2026-08-24
Probed 0.0.0-a98e3fa, 2.2.6 (see below)
In traffic evalstate/mcp-clients, window ending 2026-11-08 (see below)

Capabilities

Capability Status Known by At
Transports
  ↳ stdio ● full read, declared 2025-06-18, 2025-11-25
  ↳ sse ● full read, declared 2025-06-18, 2025-11-25
  ↳ streamableHttp ● full read, declared 2025-06-18, 2025-11-25
Authentication
  ↳ oauth ● full read 2025-11-25
  ↳ header ● full read 2025-11-25
Tools ● full read, declared 2025-06-18, 2025-11-25
  ↳ listChanged ● full read 2025-11-25
  ↳ result ● full read 2025-11-25
    ↳ content ● full read ⇧ 2025-11-25
    ↳ structuredContent ◐ partial read ⇧ 2025-11-25
Resources ● full read 2025-11-25
  ↳ listChanged ○ unsupported read 2025-11-25
  ↳ subscribe ○ unsupported read 2025-11-25
Prompts ◐ partial read 2025-11-25
  ↳ listChanged ○ unsupported read ⇧ 2025-11-25
Completions ○ unsupported read 2025-11-25
Sampling ○ unsupported read 2025-11-25
Elicitation ○ unsupported read 2025-11-25
Roots ● full read 2025-11-25
  ↳ listChanged ○ unsupported read ⇧ 2025-11-25
Logging ◐ partial read 2025-11-25
Instructions ● full read 2025-11-25
Icons ○ unsupported read 2025-11-25
Tasks ○ unsupported read 2025-11-25
JSON Schema — not recorded
Extensions — not recorded
Beyond the spec
  ↳ modelInitiatedResourceRead ● full read 2025-11-25
  ↳ patchedSdkSessionRecovery ● full read 2025-11-25

● full ◐ partial ○ unsupported · untested — not recorded ⇧ rests on the parent capability's evidence

Not recorded means nobody has looked, which is not the same claim as unsupported. Under tools.result, full means the field reaches the model on the default conversational path, partial means it does under a condition the notes name, and unsupported means it never does.

What the table flattens

Verified by the probe

170 records from the live probe (probe/), client versions 0.0.0-a98e3fa, 2.2.6. Each row is one run against the instrumented fixture server with the model mocked; the verdict says which fixture fields reached the model. Glyphs: […] content, {…} structuredContent, ⟨…⟩ the whole envelope, "…" a placeholder. The scenario link opens the record; the raw captures sit next to it. Overlay: data/verified/opencode.json.

Scenario Config Run At Version Verdict
apps.visibility
app_only default http 2025-11-25 0.0.0-a98e3fa {…} structuredContent only (1x, as json)
app_only default http 2025-11-25 2.2.6 {…} structuredContent only (1x, as json)
app_only default stdio 2025-11-25 0.0.0-a98e3fa {…} structuredContent only (1x, as json)
app_only default stdio 2025-11-25 2.2.6 {…} structuredContent only (1x, as json)
app_only codemode-off stdio 2025-11-25 0.0.0-a98e3fa […] content only (1x, as text)
app_only codemode-off stdio 2025-11-25 2.2.6 […] content only (1x, as text)
app_only execute-denied stdio 2025-11-25 0.0.0-a98e3fa […] content only (1x, as text)
app_only execute-denied stdio 2025-11-25 2.2.6 […] content only (1x, as text)
app_only protocol-2026-07-28 stdio 2026-07-28 0.0.0-a98e3fa […] content only (1x, as text)
app_only protocol-2026-07-28 stdio 2026-07-28 2.2.6 […] content only (1x, as text)
tools.result._meta
meta_only default http 2025-11-25 0.0.0-a98e3fa […] content only (1x, as text, _meta did not reach the model)
meta_only default http 2025-11-25 2.2.6 […] content only (1x, as text, _meta did not reach the model)
meta_only default stdio 2025-11-25 0.0.0-a98e3fa […] content only (1x, as text, _meta did not reach the model)
meta_only default stdio 2025-11-25 2.2.6 […] content only (1x, as text, _meta did not reach the model)
meta_only codemode-off stdio 2025-11-25 0.0.0-a98e3fa […] content only (1x, as text, _meta did not reach the model)
meta_only codemode-off stdio 2025-11-25 2.2.6 […] content only (1x, as text, _meta did not reach the model)
meta_only execute-denied stdio 2025-11-25 0.0.0-a98e3fa […] content only (1x, as text, _meta did not reach the model)
meta_only execute-denied stdio 2025-11-25 2.2.6 […] content only (1x, as text, _meta did not reach the model)
meta_only protocol-2026-07-28 stdio 2026-07-28 0.0.0-a98e3fa […] content only (1x, as text, _meta did not reach the model)
meta_only protocol-2026-07-28 stdio 2026-07-28 2.2.6 […] content only (1x, as text, _meta did not reach the model)
with_meta default http 2025-11-25 0.0.0-a98e3fa {…} structuredContent only (1x, as json, _meta did not reach the model)
with_meta default http 2025-11-25 2.2.6 {…} structuredContent only (1x, as json, _meta did not reach the model)
with_meta default stdio 2025-11-25 0.0.0-a98e3fa {…} structuredContent only (1x, as json, _meta did not reach the model)
with_meta default stdio 2025-11-25 2.2.6 {…} structuredContent only (1x, as json, _meta did not reach the model)
with_meta codemode-off stdio 2025-11-25 0.0.0-a98e3fa […] content only (1x, as text, _meta did not reach the model)
with_meta codemode-off stdio 2025-11-25 2.2.6 […] content only (1x, as text, _meta did not reach the model)
with_meta execute-denied stdio 2025-11-25 0.0.0-a98e3fa […] content only (1x, as text, _meta did not reach the model)
with_meta execute-denied stdio 2025-11-25 2.2.6 […] content only (1x, as text, _meta did not reach the model)
with_meta protocol-2026-07-28 stdio 2026-07-28 0.0.0-a98e3fa […] content only (1x, as text, _meta did not reach the model)
with_meta protocol-2026-07-28 stdio 2026-07-28 2.2.6 […] content only (1x, as text, _meta did not reach the model)
tools.result.audience
audience_user default http 2025-11-25 0.0.0-a98e3fa {…} structuredContent only (1x, as json)
audience_user default http 2025-11-25 2.2.6 {…} structuredContent only (1x, as json)
audience_user default stdio 2025-11-25 0.0.0-a98e3fa {…} structuredContent only (1x, as json)
audience_user default stdio 2025-11-25 2.2.6 {…} structuredContent only (1x, as json)
audience_user codemode-off stdio 2025-11-25 0.0.0-a98e3fa […] content only (1x, as text)
audience_user codemode-off stdio 2025-11-25 2.2.6 […] content only (1x, as text)
audience_user execute-denied stdio 2025-11-25 0.0.0-a98e3fa […] content only (1x, as text)
audience_user execute-denied stdio 2025-11-25 2.2.6 […] content only (1x, as text)
audience_user protocol-2026-07-28 stdio 2026-07-28 0.0.0-a98e3fa […] content only (1x, as text)
audience_user protocol-2026-07-28 stdio 2026-07-28 2.2.6 […] content only (1x, as text)
tools.result.content
empty_object default http 2025-11-25 0.0.0-a98e3fa "…" no marker reached the model; payload: "null"
empty_object default http 2025-11-25 2.2.6 "…" no marker reached the model; payload: "null"
empty_object default stdio 2025-11-25 0.0.0-a98e3fa "…" no marker reached the model; payload: "null"
empty_object default stdio 2025-11-25 2.2.6 "…" no marker reached the model; payload: "null"
empty_object codemode-off stdio 2025-11-25 0.0.0-a98e3fa "…" no marker reached the model; payload: "null"
empty_object codemode-off stdio 2025-11-25 2.2.6 "…" no marker reached the model; payload: "null"
empty_object execute-denied stdio 2025-11-25 0.0.0-a98e3fa "…" no marker reached the model; payload: "null"
empty_object execute-denied stdio 2025-11-25 2.2.6 "…" no marker reached the model; payload: "null"
empty_object protocol-2026-07-28 stdio 2026-07-28 0.0.0-a98e3fa "…" client error text, no fixture field: "{"error":{"type":"tool.execution","message":"MCP tool \"probe_empty_object\" on "
empty_object protocol-2026-07-28 stdio 2026-07-28 2.2.6 "…" client error text, no fixture field: "{"error":{"type":"tool.execution","message":"MCP tool \"probe_empty_object\" on "
large default http 2025-11-25 0.0.0-a98e3fa {…} structuredContent only (1x, as text)
large default http 2025-11-25 2.2.6 {…} structuredContent only (1x, as text)
large default stdio 2025-11-25 0.0.0-a98e3fa {…} structuredContent only (1x, as text)
large default stdio 2025-11-25 2.2.6 {…} structuredContent only (1x, as text)
large codemode-off stdio 2025-11-25 0.0.0-a98e3fa […] content only (1x, as text)
large codemode-off stdio 2025-11-25 2.2.6 […] content only (1x, as text)
large execute-denied stdio 2025-11-25 0.0.0-a98e3fa […] content only (1x, as text)
large execute-denied stdio 2025-11-25 2.2.6 […] content only (1x, as text)
large protocol-2026-07-28 stdio 2026-07-28 0.0.0-a98e3fa […] content only (1x, as text)
large protocol-2026-07-28 stdio 2026-07-28 2.2.6 […] content only (1x, as text)
no_content_key default http 2025-11-25 0.0.0-a98e3fa {…} structuredContent only (1x, as json)
no_content_key default http 2025-11-25 2.2.6 {…} structuredContent only (1x, as json)
no_content_key default stdio 2025-11-25 0.0.0-a98e3fa {…} structuredContent only (1x, as json)
no_content_key default stdio 2025-11-25 2.2.6 {…} structuredContent only (1x, as json)
no_content_key codemode-off stdio 2025-11-25 0.0.0-a98e3fa {…} structuredContent only (1x, as json)
no_content_key codemode-off stdio 2025-11-25 2.2.6 {…} structuredContent only (1x, as json)
no_content_key execute-denied stdio 2025-11-25 0.0.0-a98e3fa {…} structuredContent only (1x, as json)
no_content_key execute-denied stdio 2025-11-25 2.2.6 {…} structuredContent only (1x, as json)
no_content_key protocol-2026-07-28 stdio 2026-07-28 0.0.0-a98e3fa "…" client error text, no fixture field: "{"error":{"type":"tool.execution","message":"MCP tool \"probe_no_content_key\" o"
no_content_key protocol-2026-07-28 stdio 2026-07-28 2.2.6 "…" client error text, no fixture field: "{"error":{"type":"tool.execution","message":"MCP tool \"probe_no_content_key\" o"
tools.result.isError
is_error default http 2025-11-25 0.0.0-a98e3fa […] content only (1x, as text)
is_error default http 2025-11-25 2.2.6 […] content only (1x, as text)
is_error default stdio 2025-11-25 0.0.0-a98e3fa […] content only (1x, as text)
is_error default stdio 2025-11-25 2.2.6 […] content only (1x, as text)
is_error codemode-off stdio 2025-11-25 0.0.0-a98e3fa ⟨…⟩ envelope (content 1x, structuredContent 0x)
is_error codemode-off stdio 2025-11-25 2.2.6 ⟨…⟩ envelope (content 1x, structuredContent 0x)
is_error execute-denied stdio 2025-11-25 0.0.0-a98e3fa ⟨…⟩ envelope (content 1x, structuredContent 0x)
is_error execute-denied stdio 2025-11-25 2.2.6 ⟨…⟩ envelope (content 1x, structuredContent 0x)
is_error protocol-2026-07-28 stdio 2026-07-28 0.0.0-a98e3fa ⟨…⟩ envelope (content 1x, structuredContent 0x)
is_error protocol-2026-07-28 stdio 2026-07-28 2.2.6 ⟨…⟩ envelope (content 1x, structuredContent 0x)
tools.result.media
with_image default http 2025-11-25 0.0.0-a98e3fa {…} structuredContent only (1x, as json)
with_image default http 2025-11-25 2.2.6 {…} structuredContent only (1x, as json)
with_image default stdio 2025-11-25 0.0.0-a98e3fa {…} structuredContent only (1x, as json)
with_image default stdio 2025-11-25 2.2.6 {…} structuredContent only (1x, as json)
with_image codemode-off stdio 2025-11-25 0.0.0-a98e3fa […] content only (1x, as text)
with_image codemode-off stdio 2025-11-25 2.2.6 […] content only (1x, as text)
with_image execute-denied stdio 2025-11-25 0.0.0-a98e3fa […] content only (1x, as text)
with_image execute-denied stdio 2025-11-25 2.2.6 […] content only (1x, as text)
with_image protocol-2026-07-28 stdio 2026-07-28 0.0.0-a98e3fa […] content only (1x, as text)
with_image protocol-2026-07-28 stdio 2026-07-28 2.2.6 […] content only (1x, as text)
tools.result.outputSchema
schema_match default http 2025-11-25 0.0.0-a98e3fa {…} structuredContent only (1x, as json)
schema_match default http 2025-11-25 2.2.6 {…} structuredContent only (1x, as json)
schema_match default stdio 2025-11-25 0.0.0-a98e3fa {…} structuredContent only (1x, as json)
schema_match default stdio 2025-11-25 2.2.6 {…} structuredContent only (1x, as json)
schema_match codemode-off stdio 2025-11-25 0.0.0-a98e3fa […] content only (1x, as text)
schema_match codemode-off stdio 2025-11-25 2.2.6 […] content only (1x, as text)
schema_match execute-denied stdio 2025-11-25 0.0.0-a98e3fa […] content only (1x, as text)
schema_match execute-denied stdio 2025-11-25 2.2.6 […] content only (1x, as text)
schema_match protocol-2026-07-28 stdio 2026-07-28 0.0.0-a98e3fa […] content only (1x, as text)
schema_match protocol-2026-07-28 stdio 2026-07-28 2.2.6 […] content only (1x, as text)
schema_mismatch default http 2025-11-25 0.0.0-a98e3fa {…} structuredContent only (1x, as json)
schema_mismatch default http 2025-11-25 2.2.6 "…" client error text, no fixture field: "MCP tool "probe_schema_mismatch" on server "probe" failed: Structured content do"
schema_mismatch default stdio 2025-11-25 0.0.0-a98e3fa {…} structuredContent only (1x, as json)
schema_mismatch default stdio 2025-11-25 2.2.6 "…" client error text, no fixture field: "MCP tool "probe_schema_mismatch" on server "probe" failed: Structured content do"
schema_mismatch codemode-off stdio 2025-11-25 0.0.0-a98e3fa […] content only (1x, as text)
schema_mismatch codemode-off stdio 2025-11-25 2.2.6 "…" client error text, no fixture field: "{"error":{"type":"tool.execution","message":"MCP tool \"probe_schema_mismatch\" "
schema_mismatch execute-denied stdio 2025-11-25 0.0.0-a98e3fa […] content only (1x, as text)
schema_mismatch execute-denied stdio 2025-11-25 2.2.6 "…" client error text, no fixture field: "{"error":{"type":"tool.execution","message":"MCP tool \"probe_schema_mismatch\" "
schema_mismatch protocol-2026-07-28 stdio 2026-07-28 0.0.0-a98e3fa […] content only (1x, as text)
schema_mismatch protocol-2026-07-28 stdio 2026-07-28 2.2.6 "…" client error text, no fixture field: "{"error":{"type":"tool.execution","message":"MCP tool \"probe_schema_mismatch\" "
tools.result.structuredContent
mirror default http 2025-11-25 0.0.0-a98e3fa payload once (as json)
mirror default http 2025-11-25 2.2.6 payload once (as json)
mirror default stdio 2025-11-25 0.0.0-a98e3fa payload once (as json)
mirror default stdio 2025-11-25 2.2.6 payload once (as json)
mirror codemode-off stdio 2025-11-25 0.0.0-a98e3fa payload once (as json)
mirror codemode-off stdio 2025-11-25 2.2.6 payload once (as json)
mirror execute-denied stdio 2025-11-25 0.0.0-a98e3fa payload once (as json)
mirror execute-denied stdio 2025-11-25 2.2.6 payload once (as json)
mirror protocol-2026-07-28 stdio 2026-07-28 0.0.0-a98e3fa payload once (as json)
mirror protocol-2026-07-28 stdio 2026-07-28 2.2.6 payload once (as json)
sc_empty default http 2025-11-25 0.0.0-a98e3fa "…" no marker reached the model; payload: "{}"
sc_empty default http 2025-11-25 2.2.6 "…" no marker reached the model; payload: "{}"
sc_empty default stdio 2025-11-25 0.0.0-a98e3fa "…" no marker reached the model; payload: "{}"
sc_empty default stdio 2025-11-25 2.2.6 "…" no marker reached the model; payload: "{}"
sc_empty codemode-off stdio 2025-11-25 0.0.0-a98e3fa […] content only (1x, as text)
sc_empty codemode-off stdio 2025-11-25 2.2.6 […] content only (1x, as text)
sc_empty execute-denied stdio 2025-11-25 0.0.0-a98e3fa […] content only (1x, as text)
sc_empty execute-denied stdio 2025-11-25 2.2.6 […] content only (1x, as text)
sc_empty protocol-2026-07-28 stdio 2026-07-28 0.0.0-a98e3fa […] content only (1x, as text)
sc_empty protocol-2026-07-28 stdio 2026-07-28 2.2.6 […] content only (1x, as text)
sc_null default http 2025-11-25 0.0.0-a98e3fa "…" client error text, no fixture field: "MCP tool "probe_sc_null" on server "probe" failed: Invalid result for tools/call"
sc_null default http 2025-11-25 2.2.6 "…" client error text, no fixture field: "MCP tool "probe_sc_null" on server "probe" failed: Invalid result for tools/call"
sc_null default stdio 2025-11-25 0.0.0-a98e3fa "…" client error text, no fixture field: "MCP tool "probe_sc_null" on server "probe" failed: Invalid result for tools/call"
sc_null default stdio 2025-11-25 2.2.6 "…" client error text, no fixture field: "MCP tool "probe_sc_null" on server "probe" failed: Invalid result for tools/call"
sc_null codemode-off stdio 2025-11-25 0.0.0-a98e3fa "…" client error text, no fixture field: "{"error":{"type":"tool.execution","message":"MCP tool \"probe_sc_null\" on serve"
sc_null codemode-off stdio 2025-11-25 2.2.6 "…" client error text, no fixture field: "{"error":{"type":"tool.execution","message":"MCP tool \"probe_sc_null\" on serve"
sc_null execute-denied stdio 2025-11-25 0.0.0-a98e3fa "…" client error text, no fixture field: "{"error":{"type":"tool.execution","message":"MCP tool \"probe_sc_null\" on serve"
sc_null execute-denied stdio 2025-11-25 2.2.6 "…" client error text, no fixture field: "{"error":{"type":"tool.execution","message":"MCP tool \"probe_sc_null\" on serve"
sc_null protocol-2026-07-28 stdio 2026-07-28 0.0.0-a98e3fa […] content only (1x, as text)
sc_null protocol-2026-07-28 stdio 2026-07-28 2.2.6 […] content only (1x, as text)
sc_string default http 2025-11-25 0.0.0-a98e3fa "…" client error text, no fixture field: "MCP tool "probe_sc_string" on server "probe" failed: Invalid result for tools/ca"
sc_string default http 2025-11-25 2.2.6 "…" client error text, no fixture field: "MCP tool "probe_sc_string" on server "probe" failed: Invalid result for tools/ca"
sc_string default stdio 2025-11-25 0.0.0-a98e3fa "…" client error text, no fixture field: "MCP tool "probe_sc_string" on server "probe" failed: Invalid result for tools/ca"
sc_string default stdio 2025-11-25 2.2.6 "…" client error text, no fixture field: "MCP tool "probe_sc_string" on server "probe" failed: Invalid result for tools/ca"
sc_string codemode-off stdio 2025-11-25 0.0.0-a98e3fa "…" client error text, no fixture field: "{"error":{"type":"tool.execution","message":"MCP tool \"probe_sc_string\" on ser"
sc_string codemode-off stdio 2025-11-25 2.2.6 "…" client error text, no fixture field: "{"error":{"type":"tool.execution","message":"MCP tool \"probe_sc_string\" on ser"
sc_string execute-denied stdio 2025-11-25 0.0.0-a98e3fa "…" client error text, no fixture field: "{"error":{"type":"tool.execution","message":"MCP tool \"probe_sc_string\" on ser"
sc_string execute-denied stdio 2025-11-25 2.2.6 "…" client error text, no fixture field: "{"error":{"type":"tool.execution","message":"MCP tool \"probe_sc_string\" on ser"
sc_string protocol-2026-07-28 stdio 2026-07-28 0.0.0-a98e3fa […] content only (1x, as text)
sc_string protocol-2026-07-28 stdio 2026-07-28 2.2.6 […] content only (1x, as text)
structured_only default http 2025-11-25 0.0.0-a98e3fa {…} structuredContent only (1x, as json)
structured_only default http 2025-11-25 2.2.6 {…} structuredContent only (1x, as json)
structured_only default stdio 2025-11-25 0.0.0-a98e3fa {…} structuredContent only (1x, as json)
structured_only default stdio 2025-11-25 2.2.6 {…} structuredContent only (1x, as json)
structured_only codemode-off stdio 2025-11-25 0.0.0-a98e3fa {…} structuredContent only (1x, as json)
structured_only codemode-off stdio 2025-11-25 2.2.6 {…} structuredContent only (1x, as json)
structured_only execute-denied stdio 2025-11-25 0.0.0-a98e3fa {…} structuredContent only (1x, as json)
structured_only execute-denied stdio 2025-11-25 2.2.6 {…} structuredContent only (1x, as json)
structured_only protocol-2026-07-28 stdio 2026-07-28 0.0.0-a98e3fa {…} structuredContent only (1x, as json)
structured_only protocol-2026-07-28 stdio 2026-07-28 2.2.6 {…} structuredContent only (1x, as json)
summary_and_data default http 2025-11-25 0.0.0-a98e3fa {…} structuredContent only (1x, as json)
summary_and_data default http 2025-11-25 2.2.6 {…} structuredContent only (1x, as json)
summary_and_data default stdio 2025-11-25 0.0.0-a98e3fa {…} structuredContent only (1x, as json)
summary_and_data default stdio 2025-11-25 2.2.6 {…} structuredContent only (1x, as json)
summary_and_data codemode-off stdio 2025-11-25 0.0.0-a98e3fa […] content only (1x, as text)
summary_and_data codemode-off stdio 2025-11-25 2.2.6 […] content only (1x, as text)
summary_and_data execute-denied stdio 2025-11-25 0.0.0-a98e3fa […] content only (1x, as text)
summary_and_data execute-denied stdio 2025-11-25 2.2.6 […] content only (1x, as text)
summary_and_data protocol-2026-07-28 stdio 2026-07-28 0.0.0-a98e3fa […] content only (1x, as text)
summary_and_data protocol-2026-07-28 stdio 2026-07-28 2.2.6 […] content only (1x, as text)

Observed in traffic

From evalstate/mcp-clients at c30d6f28, report generated 2026-11-09, window 2026-09-10 to 2026-11-08. Grouped as opencode from wire names opencode. Tool calls by revision over the 30 days to 2026-11-08: 2026-07-28 <0.1%, 2025-11-25 99.9%, 2025-03-26 <0.1%, 2024-11-05 <0.1%.

Capability Observed At Registry Note
elicitation ● full 2026-07-28 ○ unsupported ≠ More than 50% of this client's 2026-07-28 tool calls in the window declared it. 2026-07-28 is 0.044% of this client's tool calls over the 30 days to 2026-11-08, so the sample is small.
elicitation.url ● full 2026-07-28 — not recorded More than 50% of this client's 2026-07-28 tool calls in the window declared it. 2026-07-28 is 0.044% of this client's tool calls over the 30 days to 2026-11-08, so the sample is small.
apps ○ unsupported 2026-07-28 — not recorded At most 50% of this client's 2026-07-28 tool calls in the window declared it, and the initialize-era backfill does not have it. 2026-07-28 is 0.044% of this client's tool calls over the 30 days to 2026-11-08, so the sample is small.
tasks ○ unsupported 2026-07-28 ○ unsupported At most 50% of this client's 2026-07-28 tool calls in the window declared it. 2026-07-28 is 0.044% of this client's tool calls over the 30 days to 2026-11-08, so the sample is small.

≠ the observed status differs from the registry's. The registry status may be about a different revision; compare the At column with the evidence above. Every row is read against the source's policy block, carried verbatim in data/observed/hf-mcp-clients.json.

Where the evidence disagrees

Research notes

Provenance

Read at 7cde8329 on 2026-08-24, from dev of https://github.com/anomalyco/opencode.git. That commit was authored 2026-08-24.

SDK. Pinned exactly, then patched. bun.lock registers a patch against the resolved package that changes four runtime files - client/index.js, client/streamableHttp.js, client/auth.js and shared/protocol.js - so the published 1.29.0 does not describe what runs. The SDK is also where opencode's protocol version comes from: 1.29.0 pins LATEST_PROTOCOL_VERSION at 2025-11-25 and lists support back to 2024-10-07, a revision this registry does not track because it was never published.

Paths read:

Source is not vendored. To reproduce any claim above, check out that commit in the client's repository.


Generated from data/clients.json, data/verified/opencode.json, data/observed/hf-mcp-clients.json by scripts/build-cards.js. Edit the registry, rerun the probe or the ingest, not this file.