TUI MCP server manager — inventory, kill/start, enable/disable, remove, and the browser sign-in leg for HTTP servers.
NOTHING about MCP lives in this process. The GATEWAY owns the configuration,
the connection pool, the child processes and the OAuth tokens; this namespace
only renders that inventory and posts verbs to
/v1/mcp/servers/:name/{actions,auth}/…. So a TUI attached to a REMOTE
gateway manages and authorizes servers exactly like the phone app does, and
the terminal never holds a token, a PKCE verifier, or a child process.
server-status, server-rows and server-actions are pure so the row text
and the offered verbs are unit-testable without a screen.
TUI MCP server manager — inventory, kill/start, enable/disable, remove, and
the browser sign-in leg for HTTP servers.
NOTHING about MCP lives in this process. The GATEWAY owns the configuration,
the connection pool, the child processes and the OAuth tokens; this namespace
only renders that inventory and posts verbs to
`/v1/mcp/servers/:name/{actions,auth}/…`. So a TUI attached to a REMOTE
gateway manages and authorizes servers exactly like the phone app does, and
the terminal never holds a token, a PKCE verifier, or a child process.
`server-status`, `server-rows` and `server-actions` are pure so the row text
and the offered verbs are unit-testable without a screen.(server-actions row)The verbs offered for one row, in the order they matter.
Kill/start are RUNTIME and always available (they work on hand-written servers too); enable/disable/remove persist and therefore only appear for gateway-managed ones; the OAuth verbs only for HTTP servers.
The verbs offered for one row, in the order they matter. Kill/start are RUNTIME and always available (they work on hand-written servers too); enable/disable/remove persist and therefore only appear for gateway-managed ones; the OAuth verbs only for HTTP servers.
(server-details row)Read-only detail lines for one row.
Read-only detail lines for one row.
(server-rows servers)Selection rows for the inventory, names column-aligned so the status reads down the list.
Selection rows for the inventory, names column-aligned so the status reads down the list.
(server-status row)Human one-liner for one sanitized inventory row.
Reads the RUNTIME state first — a killed server is killed even though it is still enabled in config, which is exactly the distinction the kill verb introduces and the one a user cannot otherwise see.
Human one-liner for one sanitized inventory row. Reads the RUNTIME state first — a killed server is killed even though it is still enabled in config, which is exactly the distinction the kill verb introduces and the one a user cannot otherwise see.
(show-mcp-dialog! screen)Open the MCP manager. Loops on the LIVE gateway inventory so every verb's effect — a kill, a sign-in, a removal — is visible on the next pass. Returns nil when the user closes it.
Open the MCP manager. Loops on the LIVE gateway inventory so every verb's effect — a kill, a sign-in, a removal — is visible on the next pass. Returns nil when the user closes it.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |