mount() does.
When you mount a server, all its tools, resources, and prompts become available through the parent. The connection is live: add a tool to the child after mounting, and it’s immediately visible through the parent.
Mounting External Servers
Mount remote HTTP servers or subprocess-based MCP servers usingcreate_proxy():
Mounting npm/uvx Packages
For npm packages or Python tools, use the config dict format:Namespacing
When mounting multiple servers, use namespaces to avoid naming conflicts:How Namespacing Works
Namespacing uses transforms under the hood.
Dynamic Composition
Becausemount() creates a live link, you can add components to a child server after mounting and they’ll be immediately available through the parent:
Tag Filtering
Parent server tag filters apply recursively to mounted servers:Performance Considerations
Operations likelist_tools() on the parent are affected by the performance of all mounted servers. This is particularly noticeable with:
- HTTP-based mounted servers (300-400ms vs 1-2ms for local tools)
- Mounted servers with slow initialization
- Deep mounting hierarchies
Custom Routes
Custom HTTP routes defined with@server.custom_route() are also forwarded when mounting:

