mcp sdk doesnt expose retry config for tool timeouts
been diging through anthropic mcp sdk 0.5.0 docs and code for two days and i cant find any way to configure retry behavior when tool calls timeout. does it retry at all or just fail? if it retries how many times and with what backoff? this seems like basic stuff for production but its not documented anywere and the sdk code isnt clear. anyone know?
we ran into this at work with mcp sdk 0.5.0.... tool timeouts just fail silently after default 30s and there's zero way to configure retry behavior or increase the timeout. ended up wrapping every mcp call in our own retry logic with exponential backoff. completely broken api design lol
we wrapped all mcp tool calls in a retry wrapper with exponential backoff.... ended up setting custom timeout to 90s for our slow database tools. the default 30s is way too aggressive for real production workloads
we wrapped all our mcp tool calls in a validation layer that checks parameter types at registration time, not execution time. caught 6 mismatches in the first week. mcp sdk 0.5.0 absolutely should fail loud at registration if types don't match the schema
we hit this exact issue at work and ended up forking the mcp sdk to add retry config. the problem is the sdk hardcodes the timeout at 30s and there's zero way to configure it without modifying the source. for tools that hit slow databases or do complex processing 30s is insanely aggressive. we set ours to 120s with exponential backoff and retry up to 3 times before failing
we forked mcp sdk for same reason and added retry config with exponential backoff. set timeout to 120s for our slow database tools. the hardcoded 30s default is way too aggressive for real production workloads where tools might hit external apis or run complex queries
we did the same fork and added configurable timeout + exponential backoff with jitter. default 30s is way too aggressive for anything that touches a database or external api
wrapped all tool calls with circuit breaker pattern. 10 calls per 60s per agent, configurable backoff. caught runaway loops before they hit api limits