Background
AGENTS.md documents three intended Inspector V2 incarnations: Web, TUI, CLI. v1.5 ships all three (clients/web/, clients/tui/, clients/cli/), each consuming the shared core/ package. v2 currently has only clients/web/; clients/tui/, clients/cli/, and the shared clients/launcher/ (per the docs structure) don't exist yet.
The plan flags this as a follow-up: "CLI / TUI clients. v1.5 has both (clients/cli/, clients/tui/); v2 will reuse the wrapper types from core/mcp/types.ts once that file exists in v2." The core/mcp/types.ts part is now done (Phase 0.2 + Phase 5 cleanup); what remains is the actual CLI/TUI/launcher port.
Scope
Three sub-deliverables, ideally as three child issues once this is broken down:
clients/launcher/ — shared bootstrap that picks a transport and connects, used by all three clients. Port from v1.5.
clients/cli/ — non-interactive command-line surface for one-shot operations (list tools, call a tool with JSON args, read a resource, etc.). Port from v1.5.
clients/tui/ — interactive terminal UI mirroring the web client's information architecture in a text grid (likely @blessed/blessed or ink per v1.5's choice). Port from v1.5.
Acceptance criteria
Test plan
Out of scope
- Adding new features that don't exist in v1.5's CLI/TUI.
- Multi-server simultaneous connection in CLI/TUI.
- Persistent session state (CLI runs are one-shot).
Blocked by
- v2 core/ hook layer effort — the launcher/CLI/TUI all want the same
InspectorClient abstraction the web client uses; that lives in the hook layer.
Related
- v1.5 sources:
- AGENTS.md § "Project Structure" (currently lists CLI/TUI/launcher folders that don't exist on disk)
- Plan reference:
specification/v2_ux_interfaces_plan.md § "Out of this plan, but adjacent"
Background
AGENTS.mddocuments three intended Inspector V2 incarnations: Web, TUI, CLI. v1.5 ships all three (clients/web/,clients/tui/,clients/cli/), each consuming the sharedcore/package. v2 currently has onlyclients/web/;clients/tui/,clients/cli/, and the sharedclients/launcher/(per the docs structure) don't exist yet.The plan flags this as a follow-up: "CLI / TUI clients. v1.5 has both (
clients/cli/,clients/tui/); v2 will reuse the wrapper types fromcore/mcp/types.tsonce that file exists in v2." Thecore/mcp/types.tspart is now done (Phase 0.2 + Phase 5 cleanup); what remains is the actual CLI/TUI/launcher port.Scope
Three sub-deliverables, ideally as three child issues once this is broken down:
clients/launcher/— shared bootstrap that picks a transport and connects, used by all three clients. Port from v1.5.clients/cli/— non-interactive command-line surface for one-shot operations (list tools, call a tool with JSON args, read a resource, etc.). Port from v1.5.clients/tui/— interactive terminal UI mirroring the web client's information architecture in a text grid (likely@blessed/blessedorinkper v1.5's choice). Port from v1.5.Acceptance criteria
clients/launcher/,clients/cli/,clients/tui/each exist with their ownpackage.json,tsconfig.json, and entry point.core/mcp/types.ts(the same module the web client uses) — no parallel type declarations.inspector list-tools <server>,inspector call-tool <server> <name> <json-args>,inspector read-resource <server> <uri>against anyMCPServerConfig.clients/<name>/README.mddocumenting commands and developer setup. Top-levelREADME.mdis updated to enumerate the three clients.clients/cli/,clients/tui/,clients/launcher/.Test plan
80x24,120x40).stdio,sse,streamable-http).npm run format && npm run lint && npm run buildclean across all three clients.npx @modelcontextprotocol/server-filesystemand confirm tool listing matches the web client's output.Out of scope
Blocked by
InspectorClientabstraction the web client uses; that lives in the hook layer.Related
specification/v2_ux_interfaces_plan.md§ "Out of this plan, but adjacent"