Skip to main content
View the source code for this module on GitHub: https://github.com/mcp-use/mcp-use/blob/main/mcp_use/client.py
Client for managing MCP servers and sessions. This module provides a high-level client that manages MCP servers, connectors, and sessions from configuration.

MCPClient

from mcp_use.client import MCPClient

method init

Initialize a new MCP client.Parameters
config
str | dict[str, typing.Any] | None
default:"None"
Either a dict containing configuration or a path to a JSON config file.
allowed_servers
list[str] | None
default:"None"
Server name or configuration
sandbox
bool
default:"False"
Whether to use sandboxed execution mode for running MCP servers.
sandbox_options
mcp_use.types.sandbox.SandboxOptions | None
default:"None"
Optional sandbox configuration options.
sampling_callback
mcp.client.session.SamplingFnT | None
default:"None"
Optional sampling callback function.
elicitation_callback
mcp.client.session.ElicitationFnT | None
default:"None"
Callback function
message_handler
mcp.client.session.MessageHandlerFnT | None
default:"None"
Parameter value
logging_callback
mcp.client.session.LoggingFnT | None
default:"None"
Callback function
middleware
list[mcp_use.middleware.middleware.Middleware] | None
default:"None"
Middleware instance
Signature
def __init__(config: str | dict[str, typing.Any] | None = None, allowed_servers: list[str] | None = None, sandbox: bool = False, sandbox_options: mcp_use.types.sandbox.SandboxOptions | None = None, sampling_callback: mcp.client.session.SamplingFnT | None = None, elicitation_callback: mcp.client.session.ElicitationFnT | None = None, message_handler: mcp.client.session.MessageHandlerFnT | None = None, logging_callback: mcp.client.session.LoggingFnT | None = None, middleware: list[mcp_use.middleware.middleware.Middleware] | None = None):

method add_middleware

Add a middleware.Parameters
middleware
mcp_use.middleware.middleware.Middleware
required
The middleware to add
Signature
def add_middleware(middleware: mcp_use.middleware.middleware.Middleware):

method add_server

Add a server configuration.Parameters
name
str
required
The name to identify this server.
server_config
dict[str, Any]
required
The server configuration.
Signature
def add_server(name: str, server_config: dict[str, Any]):

method close_all_sessions

Close all active sessions.This method ensures all sessions are closed even if some fail.Signature
def close_all_sessions():

method close_session

Close a session.Parameters
server_name
str
required
The name of the server to close the session for.
Signature
def close_session(server_name: str):

method create_all_sessions

Create sessions for all configured servers.Parameters
auto_initialize
bool
default:"True"
Whether to automatically initialize the sessions.
Returns
returns
dict[str, mcp_use.session.MCPSession]
Dictionary mapping server names to their MCPSession instances.
Signature
def create_all_sessions(auto_initialize: bool = True):

method create_session

Create a session for the specified server.Parameters
server_name
str
required
The name of the server to create a session for.
auto_initialize
bool
default:"True"
Whether to automatically initialize the session.
Returns
returns
mcp_use.session.MCPSession
The created MCPSession.
Signature
def create_session(server_name: str, auto_initialize: bool = True):

method get_all_active_sessions

Get all active sessions.Returns
returns
dict[str, mcp_use.session.MCPSession]
Dictionary mapping server names to their MCPSession instances.
Signature
def get_all_active_sessions():

method get_server_names

Get the list of configured server names.Returns
returns
list[str]
List of server names.
Signature
def get_server_names():

method get_session

Get an existing session.Parameters
server_name
str
required
The name of the server to get the session for.
Returns
returns
mcp_use.session.MCPSession
The MCPSession for the specified server.
Signature
def get_session(server_name: str):

method remove_server

Remove a server configuration.Parameters
name
str
required
The name of the server to remove.
Signature
def remove_server(name: str):

method save_config

Save the current configuration to a file.Parameters
filepath
str
required
The path to save the configuration to.
Signature
def save_config(filepath: str):
I