McpClientManager
Manager for multiple MCP server connections. This class handles: - Creating connections from configuration - Managing connection lifecycle - Aggregating tools from all connected servers - Routing tool calls to the correct server
McpClientManager::registerServer()
public function registerServer(string $name, array $config): voidRegister a connection from configuration.
Parameters
| Name | Type | Description |
|---|---|---|
| $name | string | Server name |
| $config | array<string, mixed> | Server configuration |
McpClientManager::connect()
public function connect(string $name): voidConnect to a specific server.
Parameters
| Name | Type | Description |
|---|---|---|
| $name | string | Server name |
Throws
McpConnectionException If connection fails
McpClientManager::connectAll()
public function connectAll(): arrayConnect to all registered servers.
Returns
Map of server names to connection errors
McpClientManager::disconnect()
public function disconnect(string $name): voidDisconnect from a specific server.
Parameters
| Name | Type | Description |
|---|---|---|
| $name | string |
McpClientManager::disconnectAll()
public function disconnectAll(): voidDisconnect from all servers.
McpClientManager::getConnection()
public function getConnection(string $name): ?Milpa\McpClient\McpConnectionGet a specific connection.
Parameters
| Name | Type | Description |
|---|---|---|
| $name | string |
McpClientManager::getConnections()
public function getConnections(): arrayGet all connections.
Returns
Server name to connection mapping
McpClientManager::listAllTools()
public function listAllTools(): arrayList all tools from all connected servers.
McpClientManager::getTool()
public function getTool(string $registryName): ?Milpa\McpClient\Contracts\McpToolGet a tool by its registry name.
Parameters
| Name | Type | Description |
|---|---|---|
| $registryName | string | Format: mcp_{server}_{tool} |
McpClientManager::callTool()
public function callTool(string $registryName, array $arguments = []): arrayCall a tool by its registry name.
Parameters
| Name | Type | Description |
|---|---|---|
| $registryName | string | Format: mcp_{server}_{tool} |
| $arguments | array<string, mixed> | Tool arguments |
Returns
Tool result
Throws
McpToolException If tool not found or execution fails
McpClientManager::hasTool()
public function hasTool(string $registryName): boolCheck if a tool exists.
Parameters
| Name | Type | Description |
|---|---|---|
| $registryName | string |
McpClientManager::getToolConnection()
public function getToolConnection(string $registryName): ?Milpa\McpClient\McpConnectionGet the connection that provides a tool.
Parameters
| Name | Type | Description |
|---|---|---|
| $registryName | string |
McpClientManager::__destruct()
public function __destruct():Destructor ensures all connections are closed.