# MCPSessionManager

> **Class** in `deepagents_code`

📖 [View in docs](https://reference.langchain.com/python/deepagents-code/mcp_tools/MCPSessionManager)

Lazy, per-server cache of persistent MCP sessions.

Discovery always happens through throwaway sessions. Live sessions are
only created on the first real tool call inside the runtime event loop
so sessions stay bound to the loop that owns their subprocess/transport
handles, and so stdio servers are not restarted on every invocation.

## Signature

```python
MCPSessionManager(
    self,
    *,
    connections: dict[str, Connection] | None = None,
)
```

## Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `connections` | `dict[str, Connection] \| None` | No | Optional initial server connection configs. (default: `None`) |

## Constructors

```python
__init__(
    self,
    *,
    connections: dict[str, Connection] | None = None,
) -> None
```

| Name | Type |
|------|------|
| `connections` | `dict[str, Connection] \| None` |


## Methods

- [`configure()`](https://reference.langchain.com/python/deepagents-code/mcp_tools/MCPSessionManager/configure)
- [`get_session()`](https://reference.langchain.com/python/deepagents-code/mcp_tools/MCPSessionManager/get_session)
- [`invalidate()`](https://reference.langchain.com/python/deepagents-code/mcp_tools/MCPSessionManager/invalidate)
- [`cleanup()`](https://reference.langchain.com/python/deepagents-code/mcp_tools/MCPSessionManager/cleanup)

---

[View source on GitHub](https://github.com/langchain-ai/deepagents/blob/0412009c5441bef8d75a427e1da8909e33ab5b56/libs/code/deepagents_code/mcp_tools.py#L255)