agent-interop-runtime
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CODEX_HOME | No | Path to Codex configuration directory when using a nonstandard location. | |
| FREEBUFF_CLI_PATH | No | Absolute path to the Freebuff executable (e.g., freebuff.exe on Windows). Used in CLI mode. | |
| INTEROP_READ_ONLY | No | Set to '1' to enable read-only mode. | 0 |
| OPENCODE_AUTO_START | No | Set to 'false' to disable automatic starting of the OpenCode local server. | true |
| OPENCODE_SERVER_URL | No | URL for an existing OpenCode server. Set to another local port or remote URL. | |
| FREEBUFF_MCP_CLI_MODE | No | Set to 'pty' for explicit Freebuff CLI mode. CLI mode always wins over Desktop discovery. | |
| FREEBUFF_PROJECT_ROOT | No | Absolute path to the project root for CLI mode. | |
| INTEROP_TOOLS_PROFILE | No | Toolset profile: 'core', 'legacy', or 'full' (default 'full'). | full |
| OPENCODE_SERVER_PASSWORD | No | Password for remote OpenCode server. | |
| OPENCODE_SERVER_USERNAME | No | Username for remote OpenCode server. | |
| FREEBUFF_CLI_READY_PATTERN | No | Custom regular expression for Freebuff CLI readiness detection. | |
| INTEROP_ALLOW_VERIFICATION | No | Set to '1' to allow local verification (disabled by default). | 0 |
| INTEROP_HANDOFF_TOKEN_BUDGET | No | Token budget for handoff packets (default 2000). | 2000 |
| FREEBUFF_DESKTOP_READINESS_FILE | No | Path to a readiness file containing a loopback URL/port and a current launch ID for Freebuff Desktop. Records older than ten minutes are ignored. |
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 | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| freebuff_statusB | Detect Freebuff and bridge capabilities. |
| list_projectsA | List discovered Freebuff projects. |
| list_threadsC | List Freebuff Desktop threads. |
| get_threadB | Read thread metadata. |
| get_thread_messagesA | Read visible messages for a thread. |
| get_active_workC | Read visible active work. |
| get_thread_progressC | Read live Desktop progress events for a thread. Results are bounded and read-only. |
| watch_threadB | Wait up to 30 seconds for live progress events, then return the bounded read-only snapshot. |
| get_thread_progress_summaryA | Return a simple user-facing live progress summary without raw event details. |
| watch_active_threadsA | Return the latest live progress summary for each active Desktop thread. |
| list_project_filesC | List safe project files. |
| read_project_fileC | Read one safe project file. |
| list_modelsA | List models exposed by the installed bridge. |
| list_agentsA | List provider adapters and their real capability grades. |
| list_agent_sessionsA | Discover native sessions across configured providers. Provider failures are returned separately from an empty session list. |
| get_work_graphA | Return the provider independent session and evidence graph, including any durable state recovery warning. |
| get_agent_diffB | Read native diff evidence while preserving provider identity. |
| events_readA | Read bounded native events from one shared per-session stream. Count- and deadline-bounded; pass the last event sequence back as afterSequence for exactly-once continuation. |
| evidence_listA | List evidence captured by the runtime. Metadata only: contents are addressable by evidence ID. |
| work_listA | List durable work records with objective previews and criteria counts. |
| work_getB | Read a durable work record and its evidence. |
| handoff_packetA | Read the bounded delivery packet for a handoff: fields kept within the token budget plus explicit omissions and how to request them. |
| conversation_listA | List shared conversations; metadata only unless detail:true. |
| conversation_readA | Read a cursor-paged transcript page; pass next back for exactly-once reads. |
| permission_pendingA | List provider permission requests awaiting an explicit human decision. Never auto-approved. |
| send_messageA | Send a text prompt to an existing Freebuff thread. |
| stop_threadB | Stop a running Freebuff turn. |
| resume_threadC | Resume a paused Freebuff thread. |
| set_modelC | Set the model for an existing thread when supported. |
| set_reasoningC | Set the reasoning effort for an existing thread when supported. |
| agent_sendB | Send a message to a provider native session. Model, agent, and reasoning are separate controls. For OpenCode, accepted means transport queued the prompt and does not mean completion. |
| agent_cancelC | Cancel work in a provider native session. |
| session_createC | Create a native provider session when supported. |
| session_resumeC | Resume or reattach to an exact native session. |
| permission_respondC | Respond to a provider permission request when supported. |
| session_set_modelC | Change the model for an exact native session when supported. OpenCode accepts providerID and modelID. |
| session_set_reasoningB | Change reasoning effort for an exact native session when supported. |
| conversation_createC | Create a local shared conversation coordinator record. |
| conversation_reconcileA | Recover interrupted outbound sends after a crash: reclassify stuck queued/unknown records and close them with caller-verified provider receipts (never auto-resends). |
| conversation_joinC | Attach an exact native provider session to a shared conversation. |
| conversation_sendA | Persist before delivery; receipt distinguishes queued/rejected/delivery_unknown. Pass idempotencyKey (e.g. workId/handoffId) to make retries safe. Replies need another explicit send. |
| work_createB | Create a durable work item with acceptance criteria. |
| handoff_createB | Create a structured work handoff between exact native sessions. The durable record keeps every field; the response reports the delivery packet size against the token budget and any explicit omissions. |
| review_createB | Record a review; caller submissions are agent_claim, never provider observations. |
| review_requestB | Send an evidence-backed review request; the repository-diff fallback requires the subject session workspace and never guesses process.cwd(). |
| work_verifyB | Run all accepted verification commands (max 8). Entries are strings or {executable,args,cwd}. Requires INTEROP_ALLOW_VERIFICATION=1. |
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 46 tools
Several tools have overlapping boundaries: send_message, agent_send, and conversation_send all send prompts in different contexts, while watch_thread, watch_active_threads, get_thread_progress, and get_thread_progress_summary all expose live progress. The thread/session/conversation layering is substantial and requires careful reading to avoid misselection.
Naming conventions are mixed: some tools use verb_noun (list_models, create_work), others use noun_verb (evidence_list, work_get, conversation_read), and there are inconsistent variants like set_model vs session_set_model and send_message vs agent_send. The lack of a single predictable pattern makes the 46-tool surface harder to navigate.
46 tools is too many for a coherent agent-facing surface, even for a broad interop runtime. While the domain is genuinely large, the count forces agents to choose among dozens of closely related operations and would benefit from consolidation or grouping.
The set covers a broad runtime lifecycle: sessions, conversations, durable work, handoffs, reviews, permissions, and evidence. Notable gaps remain, however: evidence contents are said to be addressable by ID but there is no generic evidence read tool, and durable work/handoff/conversation records lack update, close, or delete operations.