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
Carved out from the "did not solve" list of #1452 (port of CLI/TUI/launcher to v2).
Update (2026-06-19) — re-aligned after #1499 merged
#1499 (closing #1347) normalized the --catalog / --configvocabulary, conflict matrix, seed-on-missing, and --help across CLI/TUI — but it did not touch the settings-lifting divergence this issue tracks. The problem below is still live; the mechanism references just need re-pointing at the post-#1499 code:
CLI resolves via resolveLaunchServerConfigs() → resolveServerConfigs() (core/mcp/node/config.ts), which returns bare MCPServerConfig[]. CLI serverSettings are built only from --header flags (clients/cli/src/cli.tsheadersToServerSettings(options.header)). Disk-level headers/timeouts/OAuth are dropped.
TUI resolves via loadTuiServers() (clients/tui/src/tui-servers.ts) → readServerListFile() + mcpConfigToServerEntries() (core/mcp/serverList.ts), which lifts the Inspector-extension fields into InspectorServerSettings (storedFieldsToInspectorSettings). Disk settings are applied.
So resolveServerConfigs() is no longer the shared settings-lifting path — it is now the CLI's bare path that causes the gap. The shared helper to route through is mcpConfigToServerEntries() (as loadTuiServers does).
Problem
When the CLI loads servers from a --catalog or --config file it uses the bare MCPServerConfig directly and does not lift disk-level headers, timeouts, and OAuth settings into the v2 InspectorServerSettings model (top-level after #1358). The TUI already does this via the loadTuiServers() / mcpConfigToServerEntries() path. As a result, CLI connections sourced from a file silently ignore configured headers, timeouts, and OAuth.
Proposed solution
Route the CLI's file-sourced path through the same mcpConfigToServerEntries() settings-lifting helper the TUI uses (e.g. by sharing the loadTuiServers-style resolution), so disk settings populate serverSettings.
Remove the CLI-specific divergence so both clients share one file→settings resolution path.
Acceptance criteria
A CLI invocation that loads a server via --catalog or --config applies the file's headers, timeouts, and OAuth settings to the connection.
CLI and TUI share the same file→settings resolution path (no CLI-only code path that drops settings).
Integration test: a config file with a custom header and timeout results in those being applied on a CLI tools/call.
Carved out from the "did not solve" list of #1452 (port of CLI/TUI/launcher to v2).
Update (2026-06-19) — re-aligned after #1499 merged
#1499 (closing #1347) normalized the
--catalog/--configvocabulary, conflict matrix, seed-on-missing, and--helpacross CLI/TUI — but it did not touch the settings-lifting divergence this issue tracks. The problem below is still live; the mechanism references just need re-pointing at the post-#1499 code:resolveLaunchServerConfigs()→resolveServerConfigs()(core/mcp/node/config.ts), which returns bareMCPServerConfig[]. CLIserverSettingsare built only from--headerflags (clients/cli/src/cli.tsheadersToServerSettings(options.header)). Disk-level headers/timeouts/OAuth are dropped.loadTuiServers()(clients/tui/src/tui-servers.ts) →readServerListFile()+mcpConfigToServerEntries()(core/mcp/serverList.ts), which lifts the Inspector-extension fields intoInspectorServerSettings(storedFieldsToInspectorSettings). Disk settings are applied.--catalogsource and the read-only--configsource (not just--config).So
resolveServerConfigs()is no longer the shared settings-lifting path — it is now the CLI's bare path that causes the gap. The shared helper to route through ismcpConfigToServerEntries()(asloadTuiServersdoes).Problem
When the CLI loads servers from a
--catalogor--configfile it uses the bareMCPServerConfigdirectly and does not lift disk-levelheaders, timeouts, and OAuth settings into the v2InspectorServerSettingsmodel (top-level after #1358). The TUI already does this via theloadTuiServers()/mcpConfigToServerEntries()path. As a result, CLI connections sourced from a file silently ignore configured headers, timeouts, and OAuth.Proposed solution
mcpConfigToServerEntries()settings-lifting helper the TUI uses (e.g. by sharing theloadTuiServers-style resolution), so disk settings populateserverSettings.Acceptance criteria
--catalogor--configapplies the file'sheaders, timeouts, and OAuth settings to the connection.tools/call.