Skip to main content
Glama

OpenCode System

opencode_system

opencode server environment: health/status, providers, project, launch UI, MCP pulse, or config drift.

Instructions

opencode server environment: health/status, providers, project, launch UI, MCP pulse, or config drift.

Return Format

{"success": bool, "message": str, "data": dict}

Examples

opencode_system(action="status") opencode_system(action="providers") opencode_system(action="launch_ui", mode="web")

Input Schema

NameRequiredDescriptionDefault
modeNoLaunch mode (launch_ui)tui
actionYesstatus: health + startup probe. providers: LLM providers. project: current project. launch_ui: open opencode. mcp_pulse: probe all MCP servers for liveness. config_drift: check local MCP server paths exist on disk.
projectNoProject directory (launch_ui)

Output Schema

NameRequiredDescriptionDefault
dataYes
messageYes
successYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.2.11
    • removedOutput schema / additionalProperties
      Removed value: -true
    • addedOutput schema / properties
      Added value: +{
      +  "data": {
      +    "type": "object"
      +  },
      +  "message": {
      +    "type": "string"
      +  },
      +  "success": {
      +    "type": "boolean"
      +  }
      +}
    • addedOutput schema / required
      Added value: +[
      +  "success",
      +  "message",
      +  "data"
      +]
  2. First observedv0.2.3

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, and the description correctly implies most actions are reads while one (launch_ui) mutates – no contradiction. However, it never says which of the six actions are side-effecting, nor what launch_ui actually does (spin up a long-running process? return immediately?), which is the main behavior risk an agent needs to know. The return-format block adds a little context, though it duplicates the output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Sized appropriately and the examples are genuinely useful for call shape, but the opening fragment is under-specified rather than concise, and the Return Format block restates an output schema that already exists – a sentence that does not earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-action multiplexer with a non-read-only annotation, the description should tell the agent which actions are safe probes versus which launch processes, and how this tool relates to its many single-purpose siblings. It instead provides a return-format restatement and three examples, leaving the routing and side-effect questions unanswered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the action enum already documents each value ('status: health + startup probe...', 'config_drift: check local MCP server paths exist on disk'), so the parameter work is done. The description's examples show realistic action/mode pairings (action="launch_ui", mode="web") but add no semantic detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first line is a noun-phrase fragment ('opencode server environment: health/status, providers, project, launch UI, MCP pulse, or config drift') that enumerates the six actions but never states what the tool does with them as a whole. It is distinguishable from individual siblings only obliquely – opencode_server_status, opencode_list_providers, opencode_get_project and opencode_launch_ui all appear in the sibling list with overlapping scope, and the description never explains the difference between this multiplexer and those single-purpose tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance at all. Several siblings (opencode_server_status, opencode_list_providers, opencode_get_project, opencode_launch_ui) cover the same ground as individual actions here, and the description gives no rule for choosing between the multiplexed action and the dedicated sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.