# MCP management & aggregation > Phases 2.2 + 2.4 (dial sites: Phase 8 C2) · designs: > [registry](design-phase-2.2-registry.md) · > [connect & tools](design-phase-2.4-connect-tools.md) · > [dial sites](design-phase-8-c2.md) Register upstream MCP servers once; every agent tool consumes the aggregated outlet instead of dialing each upstream itself. ## MCP server rows Each row declares a transport (`sse` / `http` / `stdio`) plus any `${cred:NAME}` placeholders in url / command / args / env / headers. Credentials are resolved at connect time (see [Credentials](credentials.md)). ## Where the connection lives — dial sites - **server** — the platform dials the upstream (SSE/HTTP) and serves it through the aggregated outlet. - **client** — the user's machine dials it via the `hnx mcp serve` shim (SSE/HTTP/**stdio**; every referenced credential must be distributable). - **auto** — client iff all referenced credentials are distributable (or none), else server. stdio can never be server-dialed. ## The aggregated outlet - `GET/POST /mcp` (Streamable HTTP) and legacy SSE at `/mcp/sse` — PAT-gated, **routed by profile**: `/mcp?profile=` exposes exactly that profile's MCP servers. - Tools are namespaced `serverName__toolName` to avoid collisions. - Unreachable upstreams are marked `error` and skipped — they never block startup or tool listing. ## Operator controls - Live status (`connected / connecting / error / disconnected`) + tool counts drive the dashboard mesh and the management page badges. - **Connect / Disconnect** buttons per server-dialed row (re-dial after a credential fix; drop a live connection without deleting the row). - Expandable **tool inspection**: each upstream tool with description and `inputSchema` parameters, plus a refresh — in original, un-namespaced names.