---
title: "Base"
description: "Connection management for MCP implementations API Documentation"
icon: "code"
github: "https://github.com/mcp-use/mcp-use/blob/main/libraries/python/mcp_use/client/task_managers/base.py"
---

import {RandomGradientBackground} from "/snippets/gradient.jsx"

<Callout type="info" title="Source Code">
View the source code for this module on GitHub: <a href='https://github.com/mcp-use/mcp-use/blob/main/libraries/python/mcp_use/client/task_managers/base.py' target='_blank' rel='noopener noreferrer'>https://github.com/mcp-use/mcp-use/blob/main/libraries/python/mcp_use/client/task_managers/base.py</a>
</Callout>

Connection management for MCP implementations.

This module provides an abstract base class for different types of connection
managers used in MCP connectors.

## ConnectionManager

<div>
<RandomGradientBackground className="rounded-lg p-4 w-full h-full rounded-full">
<div className="text-black">
<div className="text-black font-bold text-xl mb-2 mt-8"><code className="!text-black">class</code> ConnectionManager</div>

Abstract base class for connection managers.

    This class defines the interface for different types of connection managers
    used with MCP connectors.

</div>
</RandomGradientBackground>
```python
from mcp_use.client.task_managers.base import ConnectionManager
```

<Card type="info">
### `method` __init__

Initialize a new connection manager.

**Signature**
```python wrap
def __init__():
```

</Card>
<Card type="info">
### `method` get_streams

Get the current connection streams.



**Returns**
><ResponseField name="returns" type="mcp_use.client.task_managers.base.T | None" >The current connection (typically a tuple of read_stream, write_stream) or None if not connected.</ResponseField>

**Signature**
```python wrap
def get_streams():
```

</Card>

<Card type="info">
### `method` start

Start the connection manager and establish a connection.



**Returns**
><ResponseField name="returns" type="mcp_use.client.task_managers.base.T" >The established connection.</ResponseField>

**Signature**
```python wrap
def start():
```

</Card>

<Card type="info">
### `method` stop

Stop the connection manager and close the connection.

        This method ensures graceful shutdown by waiting for the connection task
        to complete and cleanup to finish. If operations exceed the timeout,
        forced cleanup is performed to prevent resource leaks.

        Note:
            This method does not raise exceptions and guarantees graceful shutdown
            even if cleanup times out.


**Parameters**
><ParamField body="timeout" type="float | None" default="30.0" >   Maximum time to wait for cleanup in seconds (default: 30.0). </ParamField>

**Signature**
```python wrap
def stop(timeout: float | None = 30.0):
```

</Card>

</div>
