MCP tool timeout on Windows despite server responding correctly
Resolved 💬 3 comments Opened Dec 4, 2025 by hoiung Closed Dec 4, 2025
Description
Custom MCP server times out after 30 seconds when called via Claude Code, but works perfectly when tested directly via stdin.
Environment
- OS: Windows 11 (build 26200.7171)
- Claude Code version: 2.0.58
- MCP Server: Custom Python server using
mcp.server.fastmcp.FastMCP
MCP Config
{
"mcpServers": {
"github-checkbox": {
"command": "cmd",
"args": [
"/c",
"cd /d \"C:\Users\hoi_u\My Drive\DevProjects\dotfiles\mcp-servers\github-checkbox\" && uv run python server.py"
]
}
}
}
Steps to Reproduce
- Create MCP server with FastMCP that calls
ghCLI - Configure in
.mcp.json - Restart Claude Code
- Call MCP tool
Expected Behavior
Tool should return result within a few seconds (server responds in ~3 seconds when tested directly).
Actual Behavior
Tool times out after 30 seconds with error:
{"result":"ERROR: Failed to fetch Issue: Command timed out after 30 seconds"}
Proof Server Works
Direct test via stdin works perfectly:
cd /path/to/mcp-server
(echo '{"jsonrpc":"2.0","method":"initialize",...}'; sleep 1; echo '{"jsonrpc":"2.0","method":"tools/call",...}') | uv run python server.py
Returns full JSON-RPC response with checkboxes in ~3 seconds.
Additional Context
- Playwright MCP (npx-based) works fine in same session
- Issue persists after restarting Claude Code, killing uv processes, clearing pycache
- Path contains spaces but handled correctly in direct tests
Possible Cause
The MCP transport layer in Claude Code may be hanging during initialization or response parsing.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗