examples/namespace_activation/README.md
Demonstrates session-specific visibility control using tags to organize tools into namespaces that can be activated on demand.
@server.tool(tags={"namespace:finance"})server.disable(tags={"namespace:finance"})ctx.enable_components(tags={"namespace:finance"})Each session starts with only the activation tools visible. When a session calls an activation tool, that namespace becomes visible only for that session.
# Server
uv run python server.py
# Client (in another terminal)
uv run python client.py
Namespace Activation Demo
╭─────────────────── Initial Tools ───────────────────╮
│ activate_finance, activate_admin, deactivate_all │
╰─────────────────────────────────────────────────────╯
→ Calling activate_finance()
Finance tools activated
╭─────────────── After Activating Finance ────────────╮
│ analyze_portfolio, get_market_data, execute_trade, │
│ activate_finance, activate_admin, deactivate_all │
╰─────────────────────────────────────────────────────╯
→ Calling get_market_data(symbol='AAPL')
{'symbol': 'AAPL', 'price': 150.25, 'change': '+2.5%'}
→ Calling activate_admin()
Admin tools activated
╭────────────── After Activating Admin ───────────────╮
│ analyze_portfolio, get_market_data, execute_trade, │
│ list_users, reset_user_password, activate_finance, │
│ activate_admin, deactivate_all │
╰─────────────────────────────────────────────────────╯
→ Calling deactivate_all()
All namespaces deactivated
╭────────────── After Deactivating All ───────────────╮
│ activate_finance, activate_admin, deactivate_all │
╰─────────────────────────────────────────────────────╯