From 0287f83274ad9d42bb5a4e7bc2d6478a15664e09 Mon Sep 17 00:00:00 2001
From: 777genius
Date: Fri, 17 Apr 2026 20:30:09 +0300
Subject: [PATCH] fix(extensions): avoid misleading mcp diagnostics command
copy
---
.../extensions/mcp/McpServersPanel.tsx | 9 +--
.../extensions/mcp/McpServersPanel.test.ts | 61 ++++++++++++++++---
2 files changed, 53 insertions(+), 17 deletions(-)
diff --git a/src/renderer/components/extensions/mcp/McpServersPanel.tsx b/src/renderer/components/extensions/mcp/McpServersPanel.tsx
index 816ba2b0..657dc359 100644
--- a/src/renderer/components/extensions/mcp/McpServersPanel.tsx
+++ b/src/renderer/components/extensions/mcp/McpServersPanel.tsx
@@ -219,10 +219,6 @@ export const McpServersPanel = ({
const displayServers = useMemo(() => sortMcpServers(rawServers, mcpSort), [rawServers, mcpSort]);
const runtimeLabel =
cliStatus?.flavor === 'agent_teams_orchestrator' ? 'multimodel runtime' : 'Claude CLI';
- const diagnosticsCommand =
- cliStatus?.flavor === 'agent_teams_orchestrator'
- ? 'claude-multimodel mcp diagnose'
- : 'claude mcp list';
// Find selected server (search in both lists to avoid losing selection during search toggle)
const selectedServer = useMemo(() => {
@@ -247,10 +243,7 @@ export const McpServersPanel = ({
) : mcpDiagnosticsLastCheckedAt ? (
`Last checked ${formatRelativeTime(new Date(mcpDiagnosticsLastCheckedAt).toISOString())}`
) : (
- <>
- Run diagnostics ({diagnosticsCommand}) to verify installed MCP
- connectivity.
- >
+ <>Run diagnostics from this page to verify installed MCP connectivity.>
)}
diff --git a/test/renderer/components/extensions/mcp/McpServersPanel.test.ts b/test/renderer/components/extensions/mcp/McpServersPanel.test.ts
index 85a2281d..7a31088d 100644
--- a/test/renderer/components/extensions/mcp/McpServersPanel.test.ts
+++ b/test/renderer/components/extensions/mcp/McpServersPanel.test.ts
@@ -75,19 +75,14 @@ vi.mock('@renderer/components/ui/select', () => ({
SelectTrigger: ({ children }: React.PropsWithChildren) =>
React.createElement('button', { type: 'button' }, children),
SelectValue: () => React.createElement('span', null, 'select-value'),
- SelectContent: ({ children }: React.PropsWithChildren) => React.createElement('div', null, children),
+ SelectContent: ({ children }: React.PropsWithChildren) =>
+ React.createElement('div', null, children),
SelectItem: ({ children }: React.PropsWithChildren<{ value: string }>) =>
React.createElement('button', { type: 'button' }, children),
}));
vi.mock('@renderer/components/extensions/common/SearchInput', () => ({
- SearchInput: ({
- value,
- onChange,
- }: {
- value: string;
- onChange: (value: string) => void;
- }) =>
+ SearchInput: ({ value, onChange }: { value: string; onChange: (value: string) => void }) =>
React.createElement('input', {
value,
onChange: (event: React.ChangeEvent) => onChange(event.target.value),
@@ -96,7 +91,11 @@ vi.mock('@renderer/components/extensions/common/SearchInput', () => ({
vi.mock('@renderer/components/extensions/mcp/McpServerCard', () => ({
McpServerCard: ({ server }: { server: { id: string; name: string } }) =>
- React.createElement('div', { 'data-testid': 'mcp-card', 'data-server-id': server.id }, server.name),
+ React.createElement(
+ 'div',
+ { 'data-testid': 'mcp-card', 'data-server-id': server.id },
+ server.name
+ ),
}));
vi.mock('@renderer/components/extensions/mcp/McpServerDetailDialog', () => ({
@@ -224,4 +223,48 @@ describe('McpServersPanel initial browse loading', () => {
await Promise.resolve();
});
});
+
+ it('uses truthful diagnostics copy instead of suggesting a hard-coded CLI command', async () => {
+ storeState.mcpBrowseCatalog = [
+ {
+ id: 'context7',
+ name: 'Context7',
+ description: 'Docs MCP',
+ source: 'official',
+ installSpec: null,
+ envVars: [],
+ tools: [],
+ requiresAuth: false,
+ },
+ ];
+
+ const host = document.createElement('div');
+ document.body.appendChild(host);
+ const root = createRoot(host);
+
+ await act(async () => {
+ root.render(
+ React.createElement(McpServersPanel, {
+ projectPath: null,
+ mcpSearchQuery: '',
+ mcpSearch: vi.fn(),
+ mcpSearchResults: [],
+ mcpSearchLoading: false,
+ mcpSearchWarnings: [],
+ selectedMcpServerId: null,
+ setSelectedMcpServerId: vi.fn(),
+ })
+ );
+ await Promise.resolve();
+ });
+
+ expect(host.textContent).toContain('Run diagnostics from this page');
+ expect(host.textContent).not.toContain('claude-multimodel mcp diagnose');
+ expect(host.textContent).not.toContain('claude mcp list');
+
+ await act(async () => {
+ root.unmount();
+ await Promise.resolve();
+ });
+ });
});