mcp management - sinrimin/harness-nexus GitHub Wiki

MCP management & aggregation

Phases 2.2 + 2.4 (dial sites: Phase 8 C2) ยท designs: registry ยท connect & tools ยท dial sites

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).

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=<id> 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.