You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
TUI "Add Agent -> CLI Agent" writes a non-working MCP entry for Codex/Gemini/OpenCode/Copilot slots #4
Using the TUI to add codex-1 as a CLI Agent created a slot that appeared in config, but it did not become a connected MCP server. In Claude Code, /nf:mcp-status reported codex-1 as configured but not connected / with no MCP tools available.
What did you expect?
Adding codex-1 through the TUI should create a working MCP quorum slot that is immediately usable by /nf:mcp-status, /nf:quorum, etc.
Steps to reproduce
Launch nforma or nforma tui
Go to Agents -> Add Agent
Choose CLI Agent
Enter values such as:
Slot name: codex-1
CLI command: codex
Main tool: codex
Launch Claude Code
Run /nf:mcp-status
Relevant logs or error messages
`/nf:mcp-status` reported that only `codex-1` was configured in`~/.claude.json`, but that no MCP tools were currently available / the MCP server was not connected.
Relevant code context:
- `bin/nForma.cjs` currently writes CLI slots as a bare stdio command entry:
- `data.mcpServers = { ...servers, [slotName]: { type: 'stdio', command, args: [] } };`- `README.md` says quorum agents should run through `bin/unified-mcp-server.mjs`
Activity
docs(v0.35-04): complete TUI CLI Agent MCP entry milestone
chore: complete v0.35 milestone — Install & Setup Bug Fixes
jobordu commentedon Mar 15, 2026
Investigated — this is partially fixed but core bug remains in staging.
What was fixed (commit
bff7f30b): CLI commands are now resolved to absolute paths viaresolveCli()and validated for executability before writing.What's still broken: The TUI writes a bare stdio entry:
{ "type": "stdio", "command": "/usr/local/bin/codex", "args": [] }But it should route through
unified-mcp-server.mjslikebin/install.jsdoes:{ "type": "stdio", "command": "node", "args": ["/path/to/bin/unified-mcp-server.mjs"], "env": { "PROVIDER_SLOT": "codex-1" } }Without this, TUI-added CLI agents don't get unified tool definitions (ping, identity, health_check) and aren't functional MCP servers.
Files to fix:
bin/nForma.cjslines ~1708 (CLI) and ~1750 (API) — both need to useunified-mcp-server.mjsas entrypoint withPROVIDER_SLOTenv var.jobordu commentedon Mar 15, 2026
Fixed in
stagingbranch (commitf3efd1a3, pending release tomain).Changes to
bin/nForma.cjs:CLI agents — now route through
unified-mcp-server.mjsinstead of spawning the CLI binary directly:{ "type": "stdio", "command": "node", "args": ["/path/to/bin/unified-mcp-server.mjs"], "env": { "PROVIDER_SLOT": "codex-1" } }The resolved CLI path is stored in
providers.jsonmetadata (clifield) soresolve-cli.cjsandunified-mcp-server.mjscan find it at dispatch time.API agents — fixed missing
unified-mcp-server.mjsin args (wasargs: [], nowargs: [unifiedMcpPath]).Both formats now match what
bin/install.jswrites.feat(v0.36-04-02): replace sequential dispatch with wave-parallel rem…
fix(tui,mcp-setup): route CLI agents through unified-mcp-server, auth…
chore: remove UPPAAL formalism + solve convergence (89.7% reduction) (#…
docs(solve): record why FSM deadlock/concurrency detection is deferre…
feat(gsd): port gap-analysis coverage report (plan:post), fused with …
feat(delegate): independent auditor step (piece #3 of worker+auditor …
feat(delegate): worker+auditor orchestration loop (piece #4 of 4) (#358)