OpenCode MCP timeout: 5000 ms tools fetch vs Sume jobs_wait

OpenCode's remote MCP timeout is in milliseconds, default 5000, and covers fetching tools. Sume's jobs_wait holds up to 55 seconds per call, a separate limit.

4 min readSume
All posts

In OpenCode, the remote MCP timeout key is a number of milliseconds for fetching the server's tools, and it defaults to 5000. It is a connect-time setting. A Sume video job is bounded by something else: each jobs_wait call holds for at most 55 seconds, and you call it again with the same ids until the job is terminal.

OpenCode's side is from its MCP servers page; Sume's side is from Jobs and results and the MCP quickstart, read 2026-09-30.

What does the OpenCode timeout key cover?

The OpenCode page lists the keys for a remote server: type (required, "remote"), url (required), enabled, headers, oauth and timeout. It describes timeout as milliseconds for fetching tools, default 5000. It does not describe it as a limit on how long an individual tool call may run, so do not read it as one.

For Sume, the url is https://mcp.sume.com/mcp. Per the quickstart, once connected you confirm the server by calling tools_list or mcp_health.

Which Sume limit applies to a long render?

Every remote HTTP POST /mcp call holds at most 55 seconds, with 50 as the default when you omit the value. When a wait returns wait_slice_expired, the docs say to retry jobs_wait with the same ids and never resubmit the paid create.

Two different timeouts, read 2026-09-30 from the OpenCode MCP page and Sume's Jobs and results page.
SettingWhat it boundsValue in the docs
OpenCode timeoutFetching the server's toolsMilliseconds, default 5000
Sume timeout_seconds on jobs_waitOne wait slice on the remote serverDefault 50, capped at 55 (larger values up to 600 are clamped)
Sume job itselfNot bounded by eitherKeeps running and billing until terminal or canceled

When should I raise the OpenCode timeout?

Raise it only if OpenCode fails to load the Sume tools at startup. Raising it will not help a render that outlasts a slice, because that is the jobs_wait behavior above. The server also reports listChanged: false in its capabilities, so the tool list should not change underneath a session once fetched.

What should the agent do when a wait slice expires?

Call jobs_wait again with the same job ids. If you start several renders, one batch wait with job_ids is preferred over one wait per job. A related walkthrough is Using Sume from OpenCode.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume