feat(cli): Prevent redundant opening of browser tabs when zero MCP servers are configured (#5367)

Co-authored-by: Allen Hutchison <adh@google.com>
This commit is contained in:
Mo Moadeli 2025-08-04 17:20:49 -04:00 committed by GitHub
parent dca040908a
commit e7b468e122
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 8 additions and 39 deletions

View File

@ -14,15 +14,10 @@ import {
getMCPDiscoveryState,
DiscoveredMCPTool,
} from '@google/gemini-cli-core';
import open from 'open';
import { MessageActionReturn } from './types.js';
import { Type, CallableTool } from '@google/genai';
// Mock external dependencies
vi.mock('open', () => ({
default: vi.fn(),
}));
vi.mock('@google/gemini-cli-core', async (importOriginal) => {
const actual =
await importOriginal<typeof import('@google/gemini-cli-core')>();
@ -144,30 +139,15 @@ describe('mcpCommand', () => {
mockConfig.getMcpServers = vi.fn().mockReturnValue({});
});
it('should display a message with a URL when no MCP servers are configured in a sandbox', async () => {
process.env.SANDBOX = 'sandbox';
it('should display a message with a URL when no MCP servers are configured', async () => {
const result = await mcpCommand.action!(mockContext, '');
expect(result).toEqual({
type: 'message',
messageType: 'info',
content:
'No MCP servers configured. Please open the following URL in your browser to view documentation:\nhttps://goo.gle/gemini-cli-docs-mcp',
'No MCP servers configured. Please view MCP documentation in your browser: https://goo.gle/gemini-cli-docs-mcp or use the cli /docs command',
});
expect(open).not.toHaveBeenCalled();
});
it('should display a message and open a URL when no MCP servers are configured outside a sandbox', async () => {
const result = await mcpCommand.action!(mockContext, '');
expect(result).toEqual({
type: 'message',
messageType: 'info',
content:
'No MCP servers configured. Opening documentation in your browser: https://goo.gle/gemini-cli-docs-mcp',
});
expect(open).toHaveBeenCalledWith('https://goo.gle/gemini-cli-docs-mcp');
});
});

View File

@ -21,7 +21,6 @@ import {
mcpServerRequiresOAuth,
getErrorMessage,
} from '@google/gemini-cli-core';
import open from 'open';
const COLOR_GREEN = '\u001b[32m';
const COLOR_YELLOW = '\u001b[33m';
@ -60,21 +59,11 @@ const getMcpStatus = async (
if (serverNames.length === 0 && blockedMcpServers.length === 0) {
const docsUrl = 'https://goo.gle/gemini-cli-docs-mcp';
if (process.env.SANDBOX && process.env.SANDBOX !== 'sandbox-exec') {
return {
type: 'message',
messageType: 'info',
content: `No MCP servers configured. Please open the following URL in your browser to view documentation:\n${docsUrl}`,
};
} else {
// Open the URL in the browser
await open(docsUrl);
return {
type: 'message',
messageType: 'info',
content: `No MCP servers configured. Opening documentation in your browser: ${docsUrl}`,
};
}
return {
type: 'message',
messageType: 'info',
content: `No MCP servers configured. Please view MCP documentation in your browser: ${docsUrl} or use the cli /docs command`,
};
}
// Check if any servers are still connecting