---
title: "Base"
description: "Base API Documentation"
icon: "code"
github: "https://github.com/mcp-use/mcp-use/blob/main/libraries/python/mcp_use/agents/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/agents/managers/base.py' target='_blank' rel='noopener noreferrer'>https://github.com/mcp-use/mcp-use/blob/main/libraries/python/mcp_use/agents/managers/base.py</a>
</Callout>

## BaseServerManager

<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> BaseServerManager</div>

Abstract base class for server managers.

    This class defines the interface for server managers that can be used with MCPAgent.
    Custom server managers should inherit from this class and implement the required methods.

</div>
</RandomGradientBackground>
```python
from mcp_use.agents.managers.base import BaseServerManager
```

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

Check if the available tools have changed.


**Parameters**
><ParamField body="current_tool_names" type="set[str]" required="True" >   Set of currently known tool names </ParamField>

**Returns**
><ResponseField name="returns" type="bool" >True if tools have changed, False otherwise</ResponseField>

**Signature**
```python wrap
def has_tool_changes(current_tool_names: set[str]):
```

</Card>

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

Initialize the server manager.


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

</Card>

<Card type="info">
### `property` tools

Get all server management tools and tools from the active server.



**Returns**
><ResponseField name="returns" type="list[langchain_core.tools.base.BaseTool]" />

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

</Card>

</div>
