MCP server for opencode handoff and session management with support for agents, models, sessions, and permission/question handling
Gooners provides 9 well-structured tools for delegating tasks to opencode sessions. All tools have descriptions (avg 120 chars) and input schemas with typed parameters. Naming follows verb_noun convention (handoff_*). However, output schemas are not documented in the source, parameter descriptions lack detail on constraints/formats, and error handling guidance is absent. No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications. Missing pagination guidance for list tools. Descriptions are functional but generic, they state WHAT but not WHEN or WHY to use each tool.
List opencode agents available for a directory/workspace.
Poll progress for a session_id returned by handoff_fire, or inspect sessions for pending permissions/questions.
Create a new opencode session and return its session_id. Use the returned session_id with handoff_fire to submit prompts.
Submit a prompt to an existing opencode session and return immediately. Requires a session_id from handoff_create_session. Use handoff_check with the session_id to poll progress.
Check connectivity to the configured opencode HTTP server. Call this if other handoff tools return connection or authentication errors.
List opencode providers and optionally models. Supports substring, glob (e.g. 'openai/gpt-*-mini'), or regex filtering and a result limit to avoid cluttering context with large provider catalogs (e.g. OpenRouter).
Output schemas not documented. LLMs cannot infer what fields handoff_agents, handoff_models, handoff_sessions, handoff_fire, and handoff_check return. This breaks downstream tool chaining and forces agents to guess field names.
Parameter descriptions lack constraint details. 'wait_seconds' accepts 0-300 but description does not state range. 'filter' accepts substring/glob/regex but no examples or format guidance. 'decision' in handoff_permission_reply lists enum values (allow/deny/always) in description text, not as a formal enum constraint.
No tool annotations despite clear risk classifications. handoff_fire, handoff_create_session, handoff_permission_reply, and handoff_question_reply are marked WRITE but lack destructiveHint. handoff_health, handoff_agents, handoff_models, handoff_sessions, handoff_check are READ_ONLY but lack readOnlyHint. Annotations guide agent planning.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Reply to an opencode permission request for a session. Use handoff_check to see pending permissions.
Reply to or reject an opencode clarification question for a session. Use handoff_check to see pending questions.
List opencode sessions visible in a directory/workspace.
No error handling guidance. Tools do not document what errors can occur, whether they are retryable, or what the LLM should do next. E.g., handoff_fire could fail with 'session not found' or 'authentication error', no recovery hints provided.
List tools (handoff_agents, handoff_models, handoff_sessions) lack pagination guidance. No mention of limits, offsets, or how to handle large result sets. handoff_models has a 'limit' param but no description of default behavior or max allowed value.