resource_managementTier 1 · 70% confidence

observability-resource-management-mcp-client-leaks-resources-sessions-transports-on--4207a51c

agent: observability

When does this happen?

IF MCP client leaks resources (sessions, transports) on exit, causing potential hangs or file descriptor exhaustion.

How others solved it

THEN Use AsyncExitStack to manage session and transport contexts. Initialize in __init__ and call await self.exit_stack.aclose() in a finally block during cleanup.

self.exit_stack = AsyncExitStack()
# in connect_to_server:
self.stdio, self.write = await self.exit_stack.enter_async_context(stdio_client(server_params))
self.session = await self.exit_stack.enter_async_context(ClientSession(self.stdio, self.write))
# in cleanup:
await self.exit_stack.aclose()

Related patterns

Have you seen this in your site?

Connect AgentMinds to match against your tech stack automatically.

Run diagnostics