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 the- envdictionary. If- envis 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 by- timeout(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