From 7a08a4fbd56567fe5c4cfb41c309d3d5f16a42de Mon Sep 17 00:00:00 2001 From: Akhilesh Kumar Date: Thu, 12 Mar 2026 19:06:42 +0000 Subject: [PATCH] feat(cli): display MCP servers in agent permission dialog Updates NewAgentsNotification to inspect the local agent definition and list any MCP servers that the agent introduces, providing users with the necessary visibility before enabling. --- .../components/NewAgentsNotification.test.tsx | 16 +++++++- .../ui/components/NewAgentsNotification.tsx | 37 ++++++++++++++----- .../NewAgentsNotification.test.tsx.snap | 1 + 3 files changed, 43 insertions(+), 11 deletions(-) diff --git a/packages/cli/src/ui/components/NewAgentsNotification.test.tsx b/packages/cli/src/ui/components/NewAgentsNotification.test.tsx index b184eebffb..5962d4d6da 100644 --- a/packages/cli/src/ui/components/NewAgentsNotification.test.tsx +++ b/packages/cli/src/ui/components/NewAgentsNotification.test.tsx @@ -22,9 +22,21 @@ describe('NewAgentsNotification', () => { { name: 'Agent B', description: 'Description B', - kind: 'remote' as const, - agentCardUrl: '', + kind: 'local' as const, inputConfig: { inputSchema: {} }, + promptConfig: {}, + modelConfig: {}, + runConfig: {}, + mcpServers: { + github: { + command: 'npx', + args: ['-y', '@modelcontextprotocol/server-github'], + }, + postgres: { + command: 'npx', + args: ['-y', '@modelcontextprotocol/server-postgres'], + }, + }, }, ]; const onSelect = vi.fn(); diff --git a/packages/cli/src/ui/components/NewAgentsNotification.tsx b/packages/cli/src/ui/components/NewAgentsNotification.tsx index e7aa8be510..53287ec433 100644 --- a/packages/cli/src/ui/components/NewAgentsNotification.tsx +++ b/packages/cli/src/ui/components/NewAgentsNotification.tsx @@ -80,16 +80,35 @@ export const NewAgentsNotification = ({ borderStyle="single" padding={1} > - {displayAgents.map((agent) => ( - - - - - {agent.name}:{' '} - + {displayAgents.map((agent) => { + const mcpServers = + agent.kind === 'local' ? agent.mcpServers : undefined; + const hasMcpServers = + mcpServers && Object.keys(mcpServers).length > 0; + return ( + + + + + - {agent.name}:{' '} + + + + {' '} + {agent.description} + + + {hasMcpServers && ( + + + (Includes MCP servers:{' '} + {Object.keys(mcpServers).join(', ')}) + + + )} - {agent.description} - - ))} + ); + })} {remaining > 0 && ( ... and {remaining} more. diff --git a/packages/cli/src/ui/components/__snapshots__/NewAgentsNotification.test.tsx.snap b/packages/cli/src/ui/components/__snapshots__/NewAgentsNotification.test.tsx.snap index bac1f7af36..0e90c6a9e7 100644 --- a/packages/cli/src/ui/components/__snapshots__/NewAgentsNotification.test.tsx.snap +++ b/packages/cli/src/ui/components/__snapshots__/NewAgentsNotification.test.tsx.snap @@ -10,6 +10,7 @@ exports[`NewAgentsNotification > renders agent list 1`] = ` │ │ │ │ │ │ - Agent A: Description A │ │ │ │ - Agent B: Description B │ │ + │ │ (Includes MCP servers: github, postgres) │ │ │ │ │ │ │ └────────────────────────────────────────────────────────────────────────────────────────────┘ │ │ │