Summary
Agent → MCP tab is functionally inert. GET /api/presets hardcodes activeMcp: null (packages/runtime-node/src/index.ts:3402), and agent-view.ts:680 carries the comment "MCP presets have no activation endpoint yet — render as informational only" — so cards in this tab don't even render an Activate button. Meanwhile, the real MCP management (CRUD + reconnect) lives in Connect → MCP Servers and works fine. Two tabs are titled "MCP" with totally different meanings, one of which does nothing.
Evidence
packages/runtime-node/src/index.ts:3402 — activeMcp: null literal.
packages/web/ui/src/views/agent-view.ts:680-681 — canActivate is forced false for preset.type === 'mcp'.
packages/web/ui/src/views/connect-view.ts — /api/mcp/servers GET/POST/DELETE + /api/mcp/servers/:name/reconnect are wired and working.
Scope
packages/web/ui/src/views/agent-view.ts:
- Remove the MCP tab entirely.
- The
IdentityTab union becomes 'personas' | 'toolsets'.
- Where the tab used to be, add an inline link:
MCP servers → Connect → MCP Servers.
packages/runtime-node/src/index.ts:
- Drop the
activeMcp field from the /api/presets response (no consumers after the tab is gone).
Expected impact
- Eliminates a dead tab that confuses users into thinking MCP is broken.
- Removes the "two tabs, both called MCP, different things" naming clash.
- One canonical place to manage MCP (Connect → MCP Servers), matching where the working CRUD lives.
Acceptance criteria
Out of scope
- Adding "MCP presets" as a real concept (none exist today; could be a future feature)
- Changing MCP CRUD itself in Connect
Labels: enhancement, priority/warning, ux, source/audit
Summary
Agent → MCP tab is functionally inert.
GET /api/presetshardcodesactiveMcp: null(packages/runtime-node/src/index.ts:3402), andagent-view.ts:680carries the comment"MCP presets have no activation endpoint yet — render as informational only"— so cards in this tab don't even render an Activate button. Meanwhile, the real MCP management (CRUD + reconnect) lives in Connect → MCP Servers and works fine. Two tabs are titled "MCP" with totally different meanings, one of which does nothing.Evidence
packages/runtime-node/src/index.ts:3402—activeMcp: nullliteral.packages/web/ui/src/views/agent-view.ts:680-681—canActivateis forcedfalseforpreset.type === 'mcp'.packages/web/ui/src/views/connect-view.ts—/api/mcp/serversGET/POST/DELETE +/api/mcp/servers/:name/reconnectare wired and working.Scope
packages/web/ui/src/views/agent-view.ts:IdentityTabunion becomes'personas' | 'toolsets'.MCP servers → Connect → MCP Servers.packages/runtime-node/src/index.ts:activeMcpfield from the/api/presetsresponse (no consumers after the tab is gone).Expected impact
Acceptance criteria
Out of scope
Labels:
enhancement,priority/warning,ux,source/audit