feat: ClientConnectionManager to manage multiple sessions without async with #1133
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces a
ClientConnectionManagerthat allows users to manage multiple sessions without needing to explicitly useasync with. This provides more flexibility in long-running or dynamic session use cases.This PR also resolves #922 by allowing users to manage multiple sessions without async with
Motivation and Context
In developing AI agents, the MCP client is often just one part of a larger system. However, the requirement to use
async withwhen initiating sessions makes it difficult to integrate MCP into more complex workflows, especially when other asynchronous components are involved.To address this, I implemented a
ClientConnectionManagerthat completely removes the need forasync withduring usage. This provides much greater flexibility in designing and structuring other components, particularly in long-running or modular systems.How Has This Been Tested?
Code branches are covered via pytest unit tests.
Breaking Changes
No
Types of changes
Checklist
Additional context