⏱️Free

MCP error -32001: request timed out — causes and fixes

2026-07-30 · ~3 min

Contents

  1. 1.What -32001 actually is
  2. 2.The common causes, roughly in order
  3. 3.How to narrow it down
  4. 4.The fixes

What -32001 actually is

-32001 is the MCP protocol's code for "request timed out". Your client sent a request — usually a tool call — and did not receive a response within the window it was willing to wait, so it gave up and surfaced this error.

The key thing to understand is that a timeout is a symptom. It tells you the server did not answer in time; it does not tell you why. The server might be slow, stuck, waiting on something external, or already dead. Debugging -32001 is a process of narrowing down which.

The common causes, roughly in order

A slow tool doing real work. Some tool calls genuinely take a while — a large web scrape, a heavy database query, a model call inside the server. If the operation legitimately needs 40 seconds and the client's timeout is 30, you get -32001 even though nothing is broken. This is the most common and most benign cause.

A server hung on startup or on an external dependency. If the server is waiting on an API that is itself slow or unreachable, the request never completes. This looks identical to a slow tool from the client's side, which is why you have to look at the server to tell them apart.

A server that crashed mid-request. If the process died after accepting the request, no response is ever coming, and the client waits out the full timeout before reporting -32001. Here the timeout is real but the timeout value is irrelevant — the fix is whatever crashed the server.

How to narrow it down

Run the tool's underlying operation directly, outside the MCP client, and time it. If it takes longer than your client's timeout, you have found the cause and the fix is to raise the timeout or make the operation faster — not to touch the MCP config.

Check whether the server is still alive after the error. A server that shows as connected but times out on every call is usually hung on a dependency; one that has disconnected crashed. The claude mcp list command (or your client's equivalent) tells you which.

Look at what the tool depends on. Timeouts that come and go with the same input often trace to a flaky external service rather than the server itself — in which case the MCP layer is the messenger, not the problem.

The fixes

If the operation is legitimately slow, raise the client's timeout for that server. Most clients let you configure this; the protocol itself does not impose a fixed limit, so the number is entirely up to the client.

If the server is hanging on an external call, the fix belongs in the server or the service it depends on, not in your config. A timeout inside the server (so it fails fast with a real error instead of hanging) turns a mysterious -32001 into a readable message.

If the server is crashing, run its command manually to see the actual error, exactly as you would for any server that fails to start. The timeout is downstream of the crash; fix the crash and the timeout goes away.