Fast triage: capture the first slow boundary
Record the client version, server identity/version, transport, request name, start time, end/error time, and a correlation ID. Check server stderr or structured logs at the same clock. Do not paste tokens, authorization headers, database rows, or private prompts into an issue.
Repeat with the smallest non-destructive request. A broad agent task can hide several sequential calls, retries, or upstream waits.
Local stdio versus remote HTTP
For stdio, run the exact command and arguments in the intended working directory, then inspect stderr. stdout is reserved for protocol messages and stray logging can corrupt the stream. For a remote endpoint, check DNS, TLS, redirects, HTTP status, proxy behavior, and authorization discovery before investigating tool code.
Discovery, capability listing, and auth
A process can be alive while discovery or a list operation stalls. Compare the server's current protocol support with the client, and inspect whether capability enumeration depends on a slow upstream API. A 401 or authorization flow that never completes is not solved by giving a tool call more time; repair the credential, issuer, audience, scope, callback, or consent path.
Upstream API and handler latency
Instrument the handler around validation, queueing, downstream DNS/connect, API response, transformation, and result write. Bound retries and pagination. For legitimately long work, use progress, cancellation, or a durable task pattern supported by the implementation rather than holding an opaque request open indefinitely.
Change a timeout only after diagnosis
Timeout settings belong to particular clients, SDKs, gateways, or servers. There is no safe universal environment variable or default for every MCP stack. If the normal operation completes reliably just beyond a known limit, make the smallest documented change and retain an upper bound, cancellation, and alerting.
Prepare an escalation packet
Include sanitized config, versions, transport, one minimal request, timestamps, correlation ID, client error, server logs, and whether the same server works in another client or Inspector. State which stage is proven healthy and which boundary has the unexplained gap. That packet is far more actionable than the error code alone.