Commit 584994a
authored
Pin mcp SDK to patched fork for stateless task leak fix (#631)
## 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](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](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 @wiggzz1 parent 4868e46 commit 584994a
3 files changed
Lines changed: 81 additions & 62 deletions
Lines changed: 3 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
58 | 58 | | |
59 | 59 | | |
60 | 60 | | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
61 | 64 | | |
62 | 65 | | |
63 | 66 | | |
| |||
0 commit comments