Files
wehub-resource-sync 60e0ffc959
Upgrade checks / Notify on failure (push) Has been cancelled
Upgrade checks / Close issue on success (push) Has been cancelled
Schema Crash Test / Real-world schema crash test (232K schemas) (push) Has been cancelled
Run static analysis / static_analysis (push) Has been cancelled
Tests / Tests: Python 3.10 on ubuntu-latest (push) Has been cancelled
Tests / Tests: Python 3.13 on ubuntu-latest (push) Has been cancelled
Tests / Tests: Python 3.10 on windows-latest (push) Has been cancelled
Tests / Tests with lowest-direct dependencies (push) Has been cancelled
Tests / MCP conformance tests (push) Has been cancelled
Tests / Integration tests (push) Has been cancelled
Tests / Package install smoke (push) Has been cancelled
Upgrade checks / Static analysis (push) Has been cancelled
Upgrade checks / Tests: Python 3.10 on ubuntu-latest (push) Has been cancelled
Upgrade checks / Tests: Python 3.13 on ubuntu-latest (push) Has been cancelled
Upgrade checks / Tests: Python 3.10 on windows-latest (push) Has been cancelled
Upgrade checks / Integration tests (push) Has been cancelled
Update MCPServerConfig Schema / update-config-schema (push) Has been cancelled
Update SDK Documentation / update-sdk-docs (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:39:59 +08:00
..

Namespace Activation

Demonstrates session-specific visibility control using tags to organize tools into namespaces that can be activated on demand.

Pattern

  1. Tag tools with namespaces: @server.tool(tags={"namespace:finance"})
  2. Globally disable namespaces: server.disable(tags={"namespace:finance"})
  3. Provide activation tools that call 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.

Run

# Server
uv run python server.py

# Client (in another terminal)
uv run python client.py

Example Output

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    │
╰─────────────────────────────────────────────────────╯