Claude Code MCP_TOOL_TIMEOUT and the timeout field for Sume jobs_wait
Claude Code has no short default tool timeout, so a stalled Sume jobs_wait can hang. Set a per-server timeout in .mcp.json and let the agent retry slices.

Claude Code's MCP_TOOL_TIMEOUT is a wall-clock limit per tool call, and the docs give a default of about 28 hours when it is unset. That is far above Sume's 55-second jobs_wait cap, so a call that the edge drops can look hung for a very long time. Set a timeout of 90,000 ms on the Sume entry in .mcp.json.
| Setting | Meaning | Value |
|---|---|---|
MCP_TIMEOUT | Server startup timeout, ms | Set by env var, for example 10000 |
MCP_TOOL_TIMEOUT | Tool execution wall-clock limit | About 28 hours if unset |
timeout in .mcp.json | Per-server override, ms, minimum 1000 | Your choice |
Entry
The quickstart in the Sume docs adds the server with claude mcp add --transport http sume https://mcp.sume.com/mcp and then claude mcp login sume. The project file form carries the timeout.
{
"mcpServers": {
"sume": {
"type": "http",
"url": "https://mcp.sume.com/mcp",
"timeout": 90000
}
}
}Why 90 seconds
A single jobs_wait slice is 50 seconds by default and 55 at most. 90 seconds leaves room for the network and for a batch jobs_result, and still reports a dead call in about a minute and a half. script_run accepts timeout_seconds from 5 to 55, so it fits under the same limit.
| Call | Longest server-side hold |
|---|---|
jobs_wait single or batch | 55 s |
script_run | 55 s (timeout_seconds) |
jobs_status | Immediate read |
Agent rule
Add one line to your project instructions: on wait_slice_expired or a 5xx transport error from jobs_wait, wait again on the same ids or read jobs_status once, and never resubmit a paid create.
Where to put the file
A project-level .mcp.json applies to everyone who opens that repository, which is the right place for a shared timeout. Keep any credential out of it. If you use OAuth, the token lives in Claude Code's own store after claude mcp login sume, so the file holds only the URL and the timeout.
Checking the setting works
Ask the agent to run a wait on a job that is still queued and watch that it comes back in about 50 seconds with wait_slice_expired, then repeats. If it hangs well past a minute and a half, the client limit fired, which tells you the edge dropped the call. The correct recovery is still to wait again on the same id, not to start the work over. Setting the environment variable instead of the file gives one limit for all servers, which is why the per-server field is the better fit here.
One more detail: the startup limit and the tool limit are different settings. MCP_TIMEOUT governs how long Claude Code waits for a server to start, and has no effect on a running wait. If the Sume server is slow to connect on a poor network, raise that one, and leave the per-server tool timeout alone. Keep both values written in the repository README, so teammates do not change one while debugging the other. When you must pick a single number, choose the one that matches the longest server-side hold you use, plus a margin of about half a minute.
Before you rely on this setup, run a short acceptance test with a read-only credential. Connect, call mcp_health, call tools_list, and read one job with jobs_status. Record the tool count you see, so you can notice later if a credential change alters it. Then repeat the test after any config edit. A five-minute test like this catches most wiring mistakes before they cost money, and it gives you a baseline to compare against when something behaves differently next week.
Sources
More in Integrations
- Haiku 5.5 in Cursor with Sume MCP: a 150k request costs 8x a 90k one
Cursor adds Claude Haiku 5.5 from Settings > Models. Its price steps up above 100k input tokens: 90k costs $0.009 and 150k costs $0.075 before output.
- Claude Code plugin userConfig: prompt for the Sume API key once
A plugin can ask for a sensitive value and reuse it as ${user_config.KEY} in an MCP header. A Sume plugin manifest that keeps the key out of settings.json.
- Codex account-scoped MCP grant cleanup and Sume's 1-hour token
Codex 0.161.0 adds account-scoped grant cleanup for enterprise MCP authentication. How that sits with Sume's one-hour OAuth token and its revoke endpoint.
- Codex 0.161: denied reads stay denied, so a Sume upload may fail
Codex 0.161.0 lets approved filesystem escalation widen writes while keeping denied reads. Why a local file upload to Sume can still fail, and how to fix it.
Written by Sume