Skip to content

[Code Quality] Add WriteTimeout and IdleTimeout to MCP HTTP server #47679

Description

@github-actions

Description

The MCP HTTP server in pkg/cli/mcp_server_http.go (~line 98) has ReadHeaderTimeout set but lacks WriteTimeout and IdleTimeout. Without IdleTimeout, idle keep-alive connections are never reclaimed, causing goroutine/file-descriptor accumulation over time.

Suggested Changes

Add IdleTimeout (and evaluate WriteTimeout — may be intentionally absent for streaming responses):

server := &http.Server{
    Addr:              addr,
    Handler:           handler,
    ReadHeaderTimeout: MCPServerHTTPTimeout,
    IdleTimeout:       90 * time.Second,
    // WriteTimeout omitted intentionally for streaming SSE responses
}

Files Affected

  • pkg/cli/mcp_server_http.go (~line 95-105)

Success Criteria

  • IdleTimeout set to reclaim idle keep-alive connections
  • Comment documents why WriteTimeout is or isn't set for streaming
  • Existing tests pass

Source

Extracted from [repository-quality] Goroutine Lifecycle Hygiene #47586

Priority

Medium

🔍 Task mining by Discussion Task Miner - Code Quality Improvement Agent · sonnet46 · 67.5 AIC · ⌖ 5.28 AIC · ⊞ 7.1K ·

  • expires on Jul 24, 2026, 5:18 PM UTC-08:00

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions