I Set a 500ms Timeout and Got 28 Hours
I had an MCP server that occasionally hung, so I gave it a short leash: { "mcpServers" : { "flaky" : { "type" : "http" , "url" : "..." , "timeout" : 500 } } } timeout is in milliseconds, so that reads as half a second. Values below 1000 are ignored. The call falls through to MCP_TOOL_TIMEOUT , and if that is unset, to its default — about 28 hours. I had written the tightest limit I could and…
A MCP server was experiencing intermittent hangs, leading the reporter to implement a 500 millisecond timeout. This timeout value, specified in milliseconds, was set to a minimum, effectively limiting the server's response time. However, the reporter later discovered that values below 1000 milliseconds were ignored, and instead, the system defaulted to a 28-hour timeout.
This discrepancy led to confusion, as the reported 500 millisecond timeout was, in reality, a 28-hour timeout. The reporter also learned that progress notifications from the server did not affect the timeout, and a timeout of at least 1000 milliseconds served as a floor on the idle timeout. Additionally, the reporter found that URLs without a specified type were treated as stdio servers, requiring additional configuration.
A common issue the reporter encountered was a repository unable to approve its own servers, which appeared as a permissions problem. This occurred because servers from .mcp.json files needed approval, which could only be granted through specific settings files. The reporter emphasized the importance of a configuration checker that doesn't flag correct configurations, as the existing checker would overlook valid settings and allow unintended behavior.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.