Skip to content

Commit 87113bc

Browse files
authored
add button to browse mcp servers in welcome view (microsoft#254863)
1 parent b3f848b commit 87113bc

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

src/vs/workbench/contrib/mcp/browser/mcpServersView.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ import { VIEW_CONTAINER } from '../../extensions/browser/extensions.contribution
4141
import { renderMarkdown } from '../../../../base/browser/markdownRenderer.js';
4242
import { MarkdownString } from '../../../../base/common/htmlContent.js';
4343
import { ChatContextKeys } from '../../chat/common/chatContextKeys.js';
44+
import { Button } from '../../../../base/browser/ui/button/button.js';
45+
import { defaultButtonStyles } from '../../../../platform/theme/browser/defaultStyles.js';
4446

4547
export interface McpServerListViewOptions {
4648
showWelcomeOnEmpty?: boolean;
@@ -207,9 +209,8 @@ export class McpServersListView extends ViewPane {
207209
title.textContent = localize('mcp.welcome.title', "MCP Servers");
208210

209211
const description = dom.append(welcomeContent, dom.$('.mcp-welcome-description'));
210-
const browseUrl = this.productService.quality === 'insider' ? 'https://code.visualstudio.com/insider/mcp' : 'https://code.visualstudio.com/mcp';
211212
const markdownResult = this._register(renderMarkdown(new MarkdownString(
212-
localize('mcp.welcome.descriptionWithLink', "Extend agent mode by installing [MCP servers]({0}) to bring extra tools for connecting to databases, invoking APIs and performing specialized tasks.", browseUrl),
213+
localize('mcp.welcome.descriptionWithLink', "Extend agent mode by installing MCP servers to bring extra tools for connecting to databases, invoking APIs and performing specialized tasks."),
213214
{ isTrusted: true }
214215
), {
215216
actionHandler: {
@@ -220,6 +221,16 @@ export class McpServersListView extends ViewPane {
220221
}
221222
}));
222223
description.appendChild(markdownResult.element);
224+
225+
// Browse button
226+
const buttonContainer = dom.append(welcomeContent, dom.$('.mcp-welcome-button-container'));
227+
const button = this._register(new Button(buttonContainer, {
228+
title: localize('mcp.welcome.browseButton', "Browse MCP Servers"),
229+
...defaultButtonStyles
230+
}));
231+
button.label = localize('mcp.welcome.browseButton', "Browse MCP Servers");
232+
233+
this._register(button.onDidClick(() => this.openerService.open(URI.parse(this.productService.quality === 'insider' ? 'https://code.visualstudio.com/insider/mcp' : 'https://code.visualstudio.com/mcp'))));
223234
}
224235

225236
private async query(query: string): Promise<IQueryResult> {

src/vs/workbench/contrib/mcp/browser/media/mcpServersView.css

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,18 @@
3636
.mcp-welcome-description {
3737
max-width: 350px;
3838
padding: 0 20px;
39-
margin-top: 26px;
39+
margin-top: 16px;
4040

4141
a {
4242
color: var(--vscode-textLink-foreground);
4343
}
4444
}
4545

46+
.mcp-welcome-button-container {
47+
margin-top: 16px;
48+
max-width: 320px;
49+
width: 100%;
50+
}
51+
4652
}
4753
}

0 commit comments

Comments
 (0)