Skip to content

Pin mcp SDK to patched fork for stateless task leak fix#631

Draft
wiggzz wants to merge 4 commits intomainfrom
wtj/mcp-patched-sdk
Draft

Pin mcp SDK to patched fork for stateless task leak fix#631
wiggzz wants to merge 4 commits intomainfrom
wtj/mcp-patched-sdk

Conversation

@wiggzz
Copy link
Contributor

@wiggzz wiggzz commented Mar 10, 2026

Why

The upstream MCP Python SDK has a memory leak where stateless HTTP request tasks accumulate in the global task group when clients disconnect mid-request (modelcontextprotocol/python-sdk#1764). This causes unbounded memory growth in long-running MCP servers like our remote dbt MCP proxy.

The fix (request-scoped task groups) also introduces a regression where SSE streams don't close cleanly on shutdown — reverse proxies see connection resets instead of clean HTTP close. A graceful drain step resolves this.

What

Points the mcp dependency at dbt-labs/mcp-python-sdk@dbt-labs/patched, which includes:

  • Request-scoped task groups for stateless requests (prevents zombie task accumulation)
  • Graceful SSE drain on shutdown (terminates all active transports before cancelling the task group)

Upstream PR: modelcontextprotocol/python-sdk#2145

Notes

This is a temporary pin until the upstream PR is merged and released. Once upstream publishes a release containing the fix, we should revert to the published package.

Drafted by Claude Opus 4.6 under the direction of @wiggzz

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant