Connecting to Multiple MCP Servers
You can use multiple MCP servers in a single agent by using theMultiMCPTools class.
multiple_mcp_servers.py
Understanding Server Parameters
The recommended way to configureMCPTools or MultiMCPTools is to use the command or url parameters.
Alternatively, you can use the server_params parameter with MCPTools to configure the connection to the MCP server in more detail.
When using the stdio transport, the server_params parameter should be an instance of StdioServerParameters. It contains the following keys:
command: The command to run the MCP server.- Use
npxfor mcp servers that can be installed via npm (ornodeif running on Windows). - Use
uvxfor mcp servers that can be installed via uvx.
- Use
args: The arguments to pass to the MCP server.env: Optional environment variables to pass to the MCP server. Remember to include all current environment variables in theenvdictionary. Ifenvis not provided, the current environment variables will be used. e.g.
server_params parameter should be an instance of StreamableHTTPClientParams. It contains the following fields:
url: The URL of the MCP server.headers: Headers to pass to the MCP server (optional).timeout: Timeout for the connection to the MCP server (optional).sse_read_timeout: how long (in seconds) the client will wait for a new event before disconnecting. All other HTTP operations are controlled bytimeout(optional).terminate_on_close: Whether to terminate the connection when the client is closed (optional).
server_params parameter should be an instance of SSEClientParams. It contains the following fields:
url: The URL of the MCP server.headers: Headers to pass to the MCP server (optional).timeout: Timeout for the connection to the MCP server (optional).sse_read_timeout: Timeout for the SSE connection itself (optional).
More Flexibility
You can also create the MCP server yourself and pass it to theMCPTools constructor.
filesystem_agent.py