feat: interactive MCP console (mcpctl console <project>)

Ink-based TUI that shows exactly what an LLM sees through MCP.
Browse tools/resources/prompts, execute them, and see raw JSON-RPC
traffic in a protocol log. Supports gated session flow with
begin_session, raw JSON-RPC input, and session reconnect.

- McpSession class wrapping HTTP transport with typed methods
- 12 React/Ink components (header, protocol-log, menu, tool/resource/prompt views, etc.)
- 21 unit tests for McpSession against a mock MCP server
- Fish + Bash completions with project name argument
- bun compile with --external react-devtools-core

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Michal
2026-02-25 23:56:23 +00:00
parent d4aa677bfc
commit a59d2237b9
23 changed files with 2093 additions and 9 deletions

View File

@@ -16,16 +16,20 @@
"test:run": "vitest run"
},
"dependencies": {
"@inkjs/ui": "^2.0.0",
"@mcpctl/db": "workspace:*",
"@mcpctl/shared": "workspace:*",
"chalk": "^5.4.0",
"commander": "^13.0.0",
"ink": "^6.8.0",
"inquirer": "^12.0.0",
"js-yaml": "^4.1.0",
"react": "^19.2.4",
"zod": "^3.24.0"
},
"devDependencies": {
"@types/js-yaml": "^4.0.9",
"@types/node": "^25.3.0"
"@types/node": "^25.3.0",
"@types/react": "^19.2.14"
}
}