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

  1. Create MCP server with FastMCP that calls gh CLI
  2. Configure in .mcp.json
  3. Restart Claude Code
  4. 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.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗