opencode-http-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OPENCODE_BASE_URL | No | Base URL of the OpenCode server. | http://127.0.0.1:49374 |
| OPENCODE_AUTO_SERVE | No | Reserved (currently not used). | false |
| OPENCODE_TIMEOUT_MS | No | Per-request HTTP timeout in milliseconds. | 120000 |
| OPENCODE_SERVER_PASSWORD | No | Basic-auth password. Never commit a real password; set it in your MCP client's env block or shell environment instead. | |
| OPENCODE_SERVER_USERNAME | No | Basic-auth username. | opencode |
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
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| opencode_session_listC | List all sessions. |
| opencode_session_createC | Create a new session. Optionally parentID and title. |
| opencode_session_getC | Get details of a specific session by ID. |
| opencode_session_deleteC | Delete a session and all its data. |
| opencode_session_updateC | Update session properties (e.g. title). |
| opencode_session_childrenC | Get child sessions of a session. |
| opencode_session_statusC | Get status for all sessions (running, idle, etc.). |
| opencode_session_todoC | Get the todo list for a session. |
| opencode_session_initC | Analyze the app and create AGENTS.md for a session. Long-running (30-60s+). |
| opencode_session_abortC | Abort a running session. |
| opencode_session_forkC | Fork an existing session, optionally at a specific message. |
| opencode_session_shareC | Share a session publicly. |
| opencode_session_unshareC | Unshare a previously shared session. |
| opencode_session_diffC | Get the diff for a session, optionally for a specific message. |
| opencode_session_summarizeB | Summarize a session using a model. Long-running (30-60s+). |
| opencode_session_revertC | Revert a message in a session. |
| opencode_session_unrevertC | Restore all reverted messages in a session. |
| opencode_permission_listA | List pending permission requests across all sessions. Respond with opencode_session_permission. |
| opencode_session_permissionC | Respond to a permission request: reply 'once'|'always'|'reject'. |
| opencode_session_searchC | Search sessions by keyword in title. |
| opencode_message_listC | List all messages in a session with formatted roles and content. |
| opencode_message_getC | Get details of a specific message in a session. |
| opencode_message_sendB | Send a prompt to a session and wait for the AI response. |
| opencode_message_send_asyncB | Send a prompt asynchronously and return its messageId for opencode_wait. NOTE: 2.0.30 lacks /prompt_async; this falls back to a synchronous /prompt call which may block until the model replies. |
| opencode_command_executeC | Execute a slash command in a session (e.g. /init, /undo). |
| opencode_shell_executeC | Run a shell command through the opencode session. |
| opencode_find_textB | Search text patterns in project files. NOTE: 2.x server has no /api/fs/find route, so this reports unavailable. |
| opencode_find_fileB | Find files/directories by name. NOTE: 2.x server has no /api/fs/find route, so this reports unavailable. |
| opencode_find_symbolB | Find workspace symbols by name. NOTE: 2.x server has no /api/fs/find route, so this reports unavailable. |
| opencode_file_listC | List files and directories at a path (via /api/fs/list). |
| opencode_file_readC | Read the content of a file (via /api/fs/read/{path}). |
| opencode_file_statusC | Get VCS status for tracked files (via /api/vcs/status). |
| opencode_config_getC | Get the current opencode configuration. |
| opencode_config_updateC | Update the opencode configuration. Pass a partial config object. |
| opencode_config_providersB | List configured providers and their default models. |
| opencode_provider_listB | List all configured providers with connection status. |
| opencode_provider_modelsC | List available models for a specific provider. |
| opencode_provider_auth_methodsB | Get available authentication methods for all providers. |
| opencode_provider_oauth_authorizeC | Start OAuth authorization for a provider. |
| opencode_provider_oauth_callbackC | Handle OAuth callback for a provider. |
| opencode_auth_setC | Set authentication credentials for a provider (API key). |
| opencode_project_listC | List all projects known to the opencode server. |
| opencode_project_initC | Create or open a project directory on the MCP host for an isolated OpenCode session. |
| opencode_project_currentC | Get the current active project. |
| opencode_vcs_infoC | Get VCS (version control) info for the current project. |
| opencode_agent_listA | List all available agents with names, descriptions, and modes. |
| opencode_command_listC | List all available slash commands. |
| opencode_mcp_statusB | Get the status of all MCP servers configured in opencode. |
| opencode_mcp_addC | Add an MCP server dynamically to opencode. |
| opencode_skill_listC | List available skills registered with opencode. |
| opencode_integration_listB | List registered integrations (plugins) on the server. |
| opencode_reference_listC | List reference files/resources available to opencode. |
| opencode_pty_listC | List open pseudo-terminals managed by opencode. |
| opencode_path_getC | Get the current working path of the opencode server. |
| opencode_instance_disposeC | Dispose the current opencode instance (shuts it down). |
| opencode_logC | Write a log entry to the opencode server. |
| opencode_healthC | Check server health and version. |
| opencode_events_pollB | Poll project events from OpenCode, or explicitly select global scope. Collects up to maxEvents within the duration. |
| opencode_question_listB | List pending OpenCode questions (may be unavailable on this build). |
| opencode_question_replyC | Answer a pending OpenCode question. |
| opencode_question_rejectC | Reject a pending OpenCode question. |
| opencode_job_getC | Observe a dispatched task by session, including current status and captured response text. |
| opencode_job_cancelC | Abort the OpenCode session owned by a task. |
| opencode_tui_append_promptB | Append text to the TUI prompt input field. |
| opencode_tui_submit_promptC | Submit the current TUI prompt. |
| opencode_tui_clear_promptC | Clear the current TUI prompt. |
| opencode_tui_execute_commandC | Execute a slash command through the TUI. |
| opencode_tui_show_toastC | Show a toast notification in the TUI. |
| opencode_tui_open_helpB | Open the help dialog in the TUI. |
| opencode_tui_open_sessionsC | Open the session selector in the TUI. |
| opencode_tui_open_modelsB | Open the model selector in the TUI. |
| opencode_tui_open_themesB | Open the theme selector in the TUI. |
| opencode_setupB | Check OpenCode status, provider configuration, and project. Use as the first step when starting work. |
| opencode_askB | Ask OpenCode in one step: create a session, send a prompt, return the AI response. |
| opencode_replyC | Send a follow-up message to an existing session. |
| opencode_conversationC | Get the full conversation history of a session, formatted for reading. |
| opencode_sessions_overviewB | Get a quick overview of all sessions with titles and status. |
| opencode_contextA | Get project context in one call: project, path, VCS, config, agents. |
| opencode_waitC | Wait for a session turn to complete by observing /message + /active. |
| opencode_review_changesC | Get a formatted summary of all file changes made in a session. |
| opencode_provider_testA | Quick-test whether a provider is working. Creates a temp session, sends a trivial prompt, cleans up. |
| opencode_runC | Send a task and wait for its correlated response. Returns a job snapshot; observation timeout leaves the remote session running. |
| opencode_fireB | Dispatch a background task and return its job/session IDs immediately. Use opencode_check or opencode_wait to observe. |
| opencode_checkC | Get current task status by observing a session. Pass detailed for full response text. |
| opencode_statusB | Get a quick status dashboard: server health, provider count, session count, and VCS info. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 85 tools
Several tools overlap heavily in purpose: opencode_message_send, opencode_message_send_async, opencode_ask, opencode_reply, opencode_run, and opencode_fire all send prompts or tasks, while opencode_check, opencode_wait, opencode_job_get, opencode_session_status, opencode_sessions_overview, and opencode_status all observe session/task status. The boundaries between these are unclear, leading to likely misselection.
All tools share the opencode_ prefix and use snake_case, which helps, but the naming pattern is mixed: many follow resource_action (opencode_session_list, opencode_message_get) while others are bare verbs or nouns (opencode_ask, opencode_check, opencode_reply, opencode_run, opencode_fire, opencode_wait). This inconsistency makes the set less predictable.
85 tools is an extreme mismatch for a single MCP server. Even though the domain is broad (sessions, messages, providers, TUI, etc.), this count far exceeds what an agent can manage, and many tools are redundant or niche, suggesting the surface should be split.
The server covers a wide range of operations (session lifecycle, messaging, config, providers, projects, VCS, agents, TUI, events, questions). However, notable gaps exist: there is no direct file write/edit tool (only read/list/status), and several find tools (opencode_find_text, opencode_find_file, opencode_find_symbol) are marked unavailable on 2.x.