Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
opencode_mcpb_installA

OPENCODE_MCPB_INSTALL - Install an MCPB bundle into opencode config.

Unpacks the .mcpb (or reads an unpacked directory), extracts the manifest, and merges the server definition into the opencode config file's mcp section.

Return Format

{"success": bool, "server_name": str, "config_path": str, "entry": {...}}

Examples

opencode_mcpb_install(source="./dist/arxiv-mcp-v1.0.0.mcpb") opencode_mcpb_install(source="./dist/arxiv-mcp-v1.0.0.mcpb", name_override="arxiv") opencode_mcpb_install(source="./mcpb/", dry_run=True)

opencode_shutdownA

Shut down this MCP server process gracefully.

Return Format

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

Examples

opencode_shutdown(confirm=True, reason="maintenance window") opencode_shutdown(confirm=False)

opencode_runsA

Manage opencode agent runs: start, poll status, list recent, or cancel.

Return Format

{"success": bool, "message": str, "data": dict} Fire-and-forget starts return a job_id; poll with action="status".

Examples

opencode_runs(action="start", prompt="Refactor main.py", wait=False) opencode_runs(action="start", prompt="Fix tests", model="deepseek/deepseek-flash", agent="build", auto=True) opencode_runs(action="start", prompt="Continue", session_id="ses_123", fork=True) opencode_runs(action="status", job_id="abc123") opencode_runs(action="list", limit=20, offset=0)

opencode_sessionsA

Inspect and interact with opencode sessions: list, get, transcript, send, diff, grep, export, share, unshare, rename, or delete.

Return Format

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

Examples

opencode_sessions(action="list", limit=50) opencode_sessions(action="messages", session_id="sess_01", limit=100) opencode_sessions(action="send", session_id="sess_01", message="continue") opencode_sessions(action="share", session_id="sess_01") opencode_sessions(action="unshare", session_id="sess_01") opencode_sessions(action="rename", session_id="sess_01", title="Refactor auth module") opencode_sessions(action="delete", session_id="sess_01", confirm=True)

opencode_depotA

Session depot: list, inspect, archive/unarchive, rename, delete, search transcripts, semantic RAG search, code-recall search, or stats.

Reads opencode's SQLite depot directly - works without opencode serve. Archive/unarchive/rename are reversible; delete is permanent (FK cascade). search = exact/full-text wayback find; rag = semantic similarity over indexed transcripts; code = when an agent touched a file (patch paths + edit tool inputs), by path or by content. rag/code need uv sync --extra rag and an index pass (rag_index indexes both).

Return Format

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

Examples

opencode_depot(action="list", status="archived", limit=20) opencode_depot(action="unarchive", session_id="sess_01") opencode_depot(action="search", query="power limit") opencode_depot(action="search", query="vienna", project="chitchat", timeframe_days=7) opencode_depot(action="rag", query="what did we decide about the power limit") opencode_depot(action="code", path_filter="auth_utils.py") opencode_depot(action="code", query="extracted the auth module", path_filter="src") opencode_depot(action="rag_index") opencode_depot(action="stats") opencode_depot(action="star", session_id="sess_01") opencode_depot(action="tag_add", session_id="sess_01", tags="neuro, vienna") opencode_depot(action="list", starred=True, sort="starred") opencode_depot(action="export", session_id="sess_01", format="docx") opencode_depot(action="memops", session_id="sess_01", tags="neuro")

opencode_backupsB

Backup the opencode database and config with rotation + disk guard; restore when needed.

Return Format

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

Examples

opencode_backups(action="status") opencode_backups(action="create", kind="all") opencode_backups(action="list", kind="db") opencode_backups(action="restore", name="opencode-db-20260802-120000.sqlite3", confirm=True)

opencode_systemC

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")

opencode_run_agentA

Run an opencode agent with a prompt, model, agent, and permission mode.

Launches as background job; returns job_id for polling. Set wait=true to block until done. Unattended runs usually need auto=true - otherwise a permission prompt stalls the run until the timeout.

Return Format

{"success": bool, "message": str, "data": {"job_id": str, "status": str, "options": dict}}

Examples

opencode_run_agent(prompt="Refactor main.py", wait=False) opencode_run_agent(prompt="Summarize README", format="json", wait=True, timeout=120) opencode_run_agent(prompt="Fix tests", model="deepseek/deepseek-flash", agent="build", auto=True) opencode_run_agent(prompt="Continue the migration", session_id="ses_123", fork=True)

opencode_launch_uiA

Launch opencode interactively - TUI, web UI, or background API server.

Use this to open the opencode interface for manual work.

Return Format

{"success": bool, "message": str, "data": {"mode": str, "project": str}}

Examples

opencode_launch_ui(mode="web") opencode_launch_ui(mode="serve")

opencode_list_sessionsB

List all active and recent opencode sessions.

Return Format

{"success": bool, "message": str, "data": {"sessions": [{"id": str}]}}

Examples

opencode_list_sessions()

opencode_get_sessionB

Get detailed information about a specific opencode session.

Returns its metadata and state.

Return Format

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

Examples

opencode_get_session(session_id="sess_01")

opencode_send_messageA

Send a message to an existing opencode session.

Use this to continue a conversation with a running agent.

Return Format

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

Examples

opencode_send_message(session_id="sess_01", message="continue")

opencode_get_messagesA

Retrieve message history from an opencode session.

Returns the conversation transcript between the user and the agent.

Return Format

{"success": bool, "message": str, "data": {"messages": [{"role": str}]}}

Examples

opencode_get_messages(session_id="sess_01", limit=100)

opencode_session_diffA

Show files created, modified, and deleted in a session.

Returns a diff summary with file paths and change types.

Return Format

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

Examples

opencode_session_diff(session_id="sess_01")

opencode_server_statusA

Check the status and health of the opencode server.

Returns health info, active session count, and config summary.

Return Format

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

Examples

opencode_server_status()

opencode_list_providersA

List configured LLM providers in opencode.

Return Format

{"success": bool, "message": str, "data": {"providers": [{"name": str}]}}

Examples

opencode_list_providers()

opencode_get_projectB

Get the current project context from opencode.

Returns the active project path and metadata.

Return Format

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

Examples

opencode_get_project()

opencode_get_configB

Read the full opencode configuration.

Returns model, provider, MCP server settings, and instructions.

Return Format

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

Examples

opencode_get_config()

opencode_get_healthA

Health check for the opencode server.

Returns basic connectivity status and uptime.

Return Format

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

Examples

opencode_get_health()

opencode_get_run_statusA

Poll the status of a background agent run.

Returns stdout/stderr accumulated so far, status, and exit code.

Return Format

{"success": bool, "message": str, "data": {"job_id": str, "status": str, "stdout": str, "exit_code": int}}

Examples

opencode_get_run_status(job_id="abc123")

opencode_list_runsB

List all recent agent runs with their status and exit codes.

Return Format

{"success": bool, "message": str, "data": {"runs": [{"job_id": str, "status": str, "exit_code": int}]}}

Examples

opencode_list_runs(limit=20)

opencode_cancel_runA

Cancel a running or queued agent run.

Return Format

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

Examples

opencode_cancel_run(job_id="abc123")

show_runs_appA

Show recent agent runs as a rich Prefab card.

Lists recent opencode agent runs with status badges. Use the plain opencode_runs(action="list") tool when you need raw data instead.

Return Format

ToolResult with PrefabApp card and plain-text fallback.

show_status_appA

Show opencode server status as a rich Prefab card.

Displays opencode serve reachability, startup probe result, and job counts. Use opencode_system(action="status") for raw data instead.

Return Format

ToolResult with PrefabApp card and plain-text fallback.

show_sessions_appA

Show opencode sessions as a rich Prefab card.

Lists recent opencode sessions. Use opencode_sessions(action="list") for raw data instead.

Return Format

ToolResult with PrefabApp card and plain-text fallback.

Prompts

Interactive templates invoked by user choice

NameDescription
agent_instructionsInstructions for using opencode-cli-mcp tools effectively.

Resources

Contextual data attached and managed by the client

NameDescription
Prefab Renderer (show_runs_app)
Prefab Renderer (show_status_app)
Prefab Renderer (show_sessions_app)

TDQS

B3.1/5.0

Scored across 25 tools

Disambiguation2/5

Multiple tools appear to do the same thing: opencode_runs, opencode_run_agent, opencode_get_run_status, opencode_list_runs, and opencode_cancel_run overlap heavily with each other and with show_runs_app. Similarly opencode_sessions, opencode_depot, opencode_list_sessions, opencode_get_session, opencode_get_messages, opencode_send_message, and opencode_session_diff all target sessions, while opencode_system, opencode_server_status, opencode_get_health, show_status_app, and opencode_launch_ui overlap on server state/launch. An agent would struggle to pick the right tool without trial and error.

Naming Consistency3/5

Most tools use an opencode_ prefix with a verb_noun shape, but the show_*_app tools break the pattern and singular/plural is inconsistent (opencode_run_agent vs opencode_runs, opencode_get_run_status vs opencode_runs status action). The mix of aggregate action-dispatch tools and thin single-purpose wrappers adds further naming drift.

Tool Count2/5

25 tools is heavy for this domain, and much of the count comes from redundant legacy wrappers (opencode_list_sessions, opencode_get_session, opencode_get_messages, opencode_send_message, opencode_session_diff) that are already covered by opencode_sessions actions. The redundant Prefab card tools (show_*_app) further inflate the surface without adding capability.

Completeness4/5

Coverage of sessions, runs, depot, backups, config, system status, and MCPB install is broad with few obvious lifecycle gaps. The main weakness is that configuration is read-only (opencode_get_config with no set/update) and some operations are duplicated rather than complementary, but core workflows are covered.

Maintenance

ActivityActive
ResponsivenessNo issues