@codingame/monaco-vscode-mcp-service-override 24.3.0 → 25.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/package.json +2 -2
  2. package/vscode/src/vs/platform/mcp/common/allowedMcpServersService.js +1 -1
  3. package/vscode/src/vs/platform/mcp/common/mcpGalleryService.js +2 -2
  4. package/vscode/src/vs/platform/mcp/common/mcpManagementService.js +1 -1
  5. package/vscode/src/vs/workbench/contrib/mcp/browser/mcp.contribution.js +3 -3
  6. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpAddContextContribution.d.ts +1 -1
  7. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpAddContextContribution.js +3 -3
  8. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpCommands.d.ts +2 -2
  9. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpCommands.js +62 -59
  10. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpElicitationService.d.ts +1 -1
  11. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpElicitationService.js +30 -30
  12. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpLanguageFeatures.js +18 -18
  13. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpMigration.js +5 -5
  14. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpResourceQuickAccess.d.ts +2 -2
  15. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpResourceQuickAccess.js +9 -9
  16. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerActions.js +32 -32
  17. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerEditor.js +36 -36
  18. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerEditorInput.js +2 -2
  19. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerIcons.js +5 -5
  20. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServerWidgets.js +5 -5
  21. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpServersView.js +18 -18
  22. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpWorkbenchService.js +8 -8
  23. package/vscode/src/vs/workbench/contrib/mcp/common/discovery/extensionMcpDiscovery.js +4 -4
  24. package/vscode/src/vs/workbench/contrib/mcp/common/discovery/nativeMcpDiscoveryAbstract.js +1 -1
  25. package/vscode/src/vs/workbench/contrib/mcp/common/mcpContextKeys.js +4 -4
  26. package/vscode/src/vs/workbench/contrib/mcp/common/mcpLanguageModelToolContribution.d.ts +1 -1
  27. package/vscode/src/vs/workbench/contrib/mcp/common/mcpLanguageModelToolContribution.js +8 -8
  28. package/vscode/src/vs/workbench/contrib/mcp/common/mcpRegistry.js +12 -12
  29. package/vscode/src/vs/workbench/contrib/mcp/common/mcpSamplingLog.js +1 -1
  30. package/vscode/src/vs/workbench/contrib/mcp/common/mcpSamplingService.js +11 -11
  31. package/vscode/src/vs/workbench/contrib/mcp/common/mcpServer.d.ts +1 -1
  32. package/vscode/src/vs/workbench/contrib/mcp/common/mcpServer.js +18 -13
  33. package/vscode/src/vs/workbench/contrib/mcp/common/mcpServerConnection.js +3 -3
  34. package/vscode/src/vs/workbench/services/authentication/browser/authenticationMcpService.js +9 -9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codingame/monaco-vscode-mcp-service-override",
3
- "version": "24.3.0",
3
+ "version": "25.0.1",
4
4
  "private": false,
5
5
  "description": "VSCode public API plugged on the monaco editor - mcp service-override",
6
6
  "keywords": [],
@@ -15,7 +15,7 @@
15
15
  },
16
16
  "type": "module",
17
17
  "dependencies": {
18
- "@codingame/monaco-vscode-api": "24.3.0"
18
+ "@codingame/monaco-vscode-api": "25.0.1"
19
19
  },
20
20
  "main": "index.js",
21
21
  "module": "index.js",
@@ -25,7 +25,7 @@ let AllowedMcpServersService = class AllowedMcpServersService extends Disposable
25
25
  }
26
26
  const settingsCommandLink = ( createCommandUri('workbench.action.openSettings', { query: `@id:${mcpAccessConfig}` }).toString());
27
27
  return (new MarkdownString(localize(
28
- 1993,
28
+ 2000,
29
29
  "Model Context Protocol servers are disabled in the Editor. Please check your [settings]({0}).",
30
30
  settingsCommandLink
31
31
  )));
@@ -408,7 +408,7 @@ let McpGalleryService = class McpGalleryService extends Disposable {
408
408
  async getReadme(gallery, token) {
409
409
  const readmeUrl = gallery.readmeUrl;
410
410
  if (!readmeUrl) {
411
- return Promise.resolve(( localize(1994, 'No README available')));
411
+ return Promise.resolve(( localize(2001, 'No README available')));
412
412
  }
413
413
  const uri = ( URI.parse(readmeUrl));
414
414
  if (uri.scheme === Schemas.file) {
@@ -421,7 +421,7 @@ let McpGalleryService = class McpGalleryService extends Disposable {
421
421
  }
422
422
  }
423
423
  if (uri.authority !== 'raw.githubusercontent.com') {
424
- return ( new MarkdownString(( localize(1995, "You can find information about this server [here]({0})", readmeUrl)))).value;
424
+ return ( new MarkdownString(( localize(2002, "You can find information about this server [here]({0})", readmeUrl)))).value;
425
425
  }
426
426
  const context = await this.requestService.request({
427
427
  type: 'GET',
@@ -501,7 +501,7 @@ let AbstractMcpManagementService = class AbstractMcpManagementService extends Ab
501
501
  const allowedToInstall = this.allowedMcpServersService.isAllowed(server);
502
502
  if (allowedToInstall !== true) {
503
503
  return (new MarkdownString(localize(
504
- 1996,
504
+ 2003,
505
505
  "This mcp server cannot be installed because {0}",
506
506
  allowedToInstall.value
507
507
  )));
@@ -78,15 +78,15 @@ registerWorkbenchContribution2(McpConfigMigrationContribution.ID, McpConfigMigra
78
78
  registerWorkbenchContribution2(McpServersViewsContribution.ID, McpServersViewsContribution, WorkbenchPhase.AfterRestored);
79
79
  const jsonRegistry = ( Registry.as(Extensions.JSONContribution));
80
80
  jsonRegistry.registerSchema(mcpSchemaId, mcpServerSchema);
81
- ( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(EditorPaneDescriptor.create(McpServerEditor, McpServerEditor.ID, ( localize(8692, "MCP Server"))), [
81
+ ( Registry.as(EditorExtensions.EditorPane)).registerEditorPane(EditorPaneDescriptor.create(McpServerEditor, McpServerEditor.ID, ( localize(8717, "MCP Server"))), [
82
82
  ( new SyncDescriptor(McpServerEditorInput))
83
83
  ]);
84
84
  ( Registry.as(Extensions$1.Quickaccess)).registerQuickAccessProvider({
85
85
  ctor: McpResourceQuickAccess,
86
86
  prefix: McpResourceQuickAccess.PREFIX,
87
- placeholder: ( localize(8693, "Filter to an MCP resource")),
87
+ placeholder: ( localize(8718, "Filter to an MCP resource")),
88
88
  helpEntries: [{
89
- description: ( localize(8694, "MCP Server Resources")),
89
+ description: ( localize(8719, "MCP Server Resources")),
90
90
  commandId: McpCommandIds.AddConfiguration
91
91
  }]
92
92
  });
@@ -1,7 +1,7 @@
1
1
  import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
2
  import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
3
3
  import { IWorkbenchContribution } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions";
4
- import { IChatContextPickService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatContextPickService.service";
4
+ import { IChatContextPickService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/attachments/chatContextPickService.service";
5
5
  import { IMcpService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes.service";
6
6
  export declare class McpAddContextContribution extends Disposable implements IWorkbenchContribution {
7
7
  private readonly _chatContextPickService;
@@ -5,7 +5,7 @@ import { Disposable, MutableDisposable } from '@codingame/monaco-vscode-api/vsco
5
5
  import '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/index';
6
6
  import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
7
7
  import { IInstantiationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation';
8
- import { IChatContextPickService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chatContextPickService.service';
8
+ import { IChatContextPickService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/attachments/chatContextPickService.service';
9
9
  import { McpCapability } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes';
10
10
  import { IMcpService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes.service';
11
11
  import { McpResourcePickHelper } from './mcpResourceQuickAccess.js';
@@ -45,7 +45,7 @@ let McpAddContextContribution = class McpAddContextContribution extends Disposab
45
45
  _registerAddContextMenu() {
46
46
  this._addContextMenu.value = this._chatContextPickService.registerChatContextItem({
47
47
  type: 'pickerPick',
48
- label: ( localize(8695, "MCP Resources...")),
48
+ label: ( localize(8720, "MCP Resources...")),
49
49
  icon: Codicon.mcp,
50
50
  isEnabled(widget) {
51
51
  return !!widget.attachmentCapabilities.supportsMCPAttachments;
@@ -53,7 +53,7 @@ let McpAddContextContribution = class McpAddContextContribution extends Disposab
53
53
  asPicker: () => {
54
54
  const helper = this._instantiationService.createInstance(McpResourcePickHelper);
55
55
  return {
56
- placeholder: ( localize(8696, "Select MCP Resource...")),
56
+ placeholder: ( localize(8721, "Select MCP Resource...")),
57
57
  picks: (_query, token) => this._getResourcePicks(token, helper),
58
58
  goBack: () => {
59
59
  return helper.navigateBack();
@@ -8,7 +8,7 @@ import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/pl
8
8
  import { IInstantiationService, ServicesAccessor } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
9
9
  import { StorageScope } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage";
10
10
  import { IWorkbenchContribution } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions";
11
- import { IChatElicitationRequest, IChatToolInvocation } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService";
11
+ import { IChatElicitationRequest, IChatToolInvocation } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService";
12
12
  import { IMcpServer, IMcpServerStartOpts } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes";
13
13
  import { IMcpService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes.service";
14
14
  export declare class ListMcpServerCommand extends Action2 {
@@ -62,7 +62,7 @@ export declare class RestartServer extends Action2 {
62
62
  }
63
63
  export declare class StartServer extends Action2 {
64
64
  constructor();
65
- run(accessor: ServicesAccessor, serverId: string, opts?: IMcpServerStartOpts): Promise<void>;
65
+ run(accessor: ServicesAccessor, serverId: string | undefined, opts?: IMcpServerStartOpts): Promise<void>;
66
66
  }
67
67
  export declare class StopServer extends Action2 {
68
68
  constructor();
@@ -46,10 +46,10 @@ import { IViewsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/
46
46
  import { CHAT_CONFIG_MENU_ID } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/actions/chatActions';
47
47
  import { ChatViewId } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat';
48
48
  import { IChatWidgetService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service';
49
- import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatContextKeys';
49
+ import { ChatContextKeys } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/actions/chatContextKeys';
50
50
  import { ChatModeKind } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants';
51
51
  import { ILanguageModelsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModels.service';
52
- import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService.service';
52
+ import { ILanguageModelToolsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service';
53
53
  import { VIEW_CONTAINER } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/extensions/browser/extensions.contribution';
54
54
  import { extensionsFilterSubMenu } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/extensions/common/extensions';
55
55
  import { IExtensionsWorkbenchService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/extensions/common/extensions.service';
@@ -77,7 +77,7 @@ class ListMcpServerCommand extends Action2 {
77
77
  constructor() {
78
78
  super({
79
79
  id: McpCommandIds.ListServer,
80
- title: ( localize2(8697, 'List Servers')),
80
+ title: ( localize2(8722, 'List Servers')),
81
81
  icon: Codicon.server,
82
82
  category,
83
83
  f1: true,
@@ -96,14 +96,14 @@ class ListMcpServerCommand extends Action2 {
96
96
  const quickInput = accessor.get(IQuickInputService);
97
97
  const store = ( new DisposableStore());
98
98
  const pick = quickInput.createQuickPick({ useSeparators: true });
99
- pick.placeholder = ( localize(8698, 'Select an MCP Server'));
99
+ pick.placeholder = ( localize(8723, 'Select an MCP Server'));
100
100
  mcpService.activateCollections();
101
101
  store.add(pick);
102
102
  store.add(autorun(reader => {
103
103
  const servers = groupBy(mcpService.servers.read(reader).slice().sort((a, b) => (a.collection.presentation?.order || 0) - (b.collection.presentation?.order || 0)), s => s.collection.id);
104
104
  const firstRun = pick.items.length === 0;
105
105
  pick.items = [
106
- { id: '$add', label: ( localize(8699, 'Add Server')), description: ( localize(8700, 'Add a new server configuration')), alwaysShow: true, iconClass: ThemeIcon.asClassName(Codicon.add) },
106
+ { id: '$add', label: ( localize(8724, 'Add Server')), description: ( localize(8725, 'Add a new server configuration')), alwaysShow: true, iconClass: ThemeIcon.asClassName(Codicon.add) },
107
107
  ...( Object.values(servers)).filter(s => s.length).flatMap((servers) => [
108
108
  { type: 'separator', label: servers[0].collection.label, id: servers[0].collection.id },
109
109
  ...( servers.map(server => ({
@@ -140,7 +140,7 @@ class McpConfirmationServerOptionsCommand extends Action2 {
140
140
  constructor() {
141
141
  super({
142
142
  id: McpCommandIds.ServerOptionsInConfirmation,
143
- title: ( localize2(8701, 'Server Options')),
143
+ title: ( localize2(8726, 'Server Options')),
144
144
  category,
145
145
  icon: Codicon.settingsGear,
146
146
  f1: false,
@@ -173,7 +173,7 @@ class McpServerOptionsCommand extends Action2 {
173
173
  constructor() {
174
174
  super({
175
175
  id: McpCommandIds.ServerOptions,
176
- title: ( localize2(8701, 'Server Options')),
176
+ title: ( localize2(8726, 'Server Options')),
177
177
  category,
178
178
  f1: false,
179
179
  });
@@ -195,20 +195,20 @@ class McpServerOptionsCommand extends Action2 {
195
195
  const serverDefinition = collection?.serverDefinitions.get().find(s => s.id === server.definition.id);
196
196
  const items = [];
197
197
  const serverState = server.connectionState.get();
198
- items.push({ type: 'separator', label: ( localize(8702, 'Status')) });
198
+ items.push({ type: 'separator', label: ( localize(8727, 'Status')) });
199
199
  if (McpConnectionState.canBeStarted(serverState.state)) {
200
200
  items.push({
201
- label: ( localize(8703, 'Start Server')),
201
+ label: ( localize(8728, 'Start Server')),
202
202
  action: 'start'
203
203
  });
204
204
  }
205
205
  else {
206
206
  items.push({
207
- label: ( localize(8704, 'Stop Server')),
207
+ label: ( localize(8729, 'Stop Server')),
208
208
  action: 'stop'
209
209
  });
210
210
  items.push({
211
- label: ( localize(8705, 'Restart Server')),
211
+ label: ( localize(8730, 'Restart Server')),
212
212
  action: 'restart'
213
213
  });
214
214
  }
@@ -216,36 +216,36 @@ class McpServerOptionsCommand extends Action2 {
216
216
  const configTarget = serverDefinition?.presentation?.origin || collection?.presentation?.origin;
217
217
  if (configTarget) {
218
218
  items.push({
219
- label: ( localize(8706, 'Show Configuration')),
219
+ label: ( localize(8731, 'Show Configuration')),
220
220
  action: 'config',
221
221
  });
222
222
  }
223
223
  items.push({
224
- label: ( localize(8707, 'Show Output')),
224
+ label: ( localize(8732, 'Show Output')),
225
225
  action: 'showOutput'
226
226
  });
227
- items.push({ type: 'separator', label: ( localize(8708, 'Sampling')) }, {
228
- label: ( localize(8709, 'Configure Model Access')),
229
- description: ( localize(8710, 'Set the models the server can use via MCP sampling')),
227
+ items.push({ type: 'separator', label: ( localize(8733, 'Sampling')) }, {
228
+ label: ( localize(8734, 'Configure Model Access')),
229
+ description: ( localize(8735, 'Set the models the server can use via MCP sampling')),
230
230
  action: 'configSampling'
231
231
  });
232
232
  if (samplingService.hasLogs(server)) {
233
233
  items.push({
234
- label: ( localize(8711, 'Show Sampling Requests')),
235
- description: ( localize(8712, 'Show the sampling requests for this server')),
234
+ label: ( localize(8736, 'Show Sampling Requests')),
235
+ description: ( localize(8737, 'Show the sampling requests for this server')),
236
236
  action: 'samplingLog',
237
237
  });
238
238
  }
239
239
  const capabilities = server.capabilities.get();
240
240
  if (capabilities === undefined || (capabilities & McpCapability.Resources)) {
241
- items.push({ type: 'separator', label: ( localize(8713, 'Resources')) });
241
+ items.push({ type: 'separator', label: ( localize(8738, 'Resources')) });
242
242
  items.push({
243
- label: ( localize(8714, 'Browse Resources')),
243
+ label: ( localize(8739, 'Browse Resources')),
244
244
  action: 'resources',
245
245
  });
246
246
  }
247
247
  const pick = await quickInputService.pick(items, {
248
- placeHolder: ( localize(8715, 'Select action for \'{0}\'', server.definition.label)),
248
+ placeHolder: ( localize(8740, 'Select action for \'{0}\'', server.definition.label)),
249
249
  });
250
250
  if (!pick) {
251
251
  return;
@@ -287,7 +287,7 @@ class McpServerOptionsCommand extends Action2 {
287
287
  editorService.openEditor({
288
288
  resource: undefined,
289
289
  contents: samplingService.getLogText(server),
290
- label: ( localize(8716, 'MCP Sampling: {0}', server.definition.label)),
290
+ label: ( localize(8741, 'MCP Sampling: {0}', server.definition.label)),
291
291
  });
292
292
  break;
293
293
  default:
@@ -304,7 +304,7 @@ class McpServerOptionsCommand extends Action2 {
304
304
  if (accountQuery.entities().getEntityCount().total > 1) {
305
305
  result.push({
306
306
  action: 'disconnect',
307
- label: ( localize(8717, 'Disconnect Account')),
307
+ label: ( localize(8742, 'Disconnect Account')),
308
308
  description: `(${accountName})`,
309
309
  accountQuery
310
310
  });
@@ -312,7 +312,7 @@ class McpServerOptionsCommand extends Action2 {
312
312
  else {
313
313
  result.push({
314
314
  action: 'signout',
315
- label: ( localize(8718, 'Sign Out')),
315
+ label: ( localize(8743, 'Sign Out')),
316
316
  description: `(${accountName})`,
317
317
  accountQuery
318
318
  });
@@ -466,21 +466,21 @@ let MCPServerActionRendering = class MCPServerActionRendering extends Disposable
466
466
  if (state === DisplayedState.NewTools) {
467
467
  markdown = ( new MarkdownString(single
468
468
  ? ( localize(
469
- 8719,
469
+ 8744,
470
470
  "MCP server {0} has been updated and may have new tools available.",
471
471
  names
472
472
  ))
473
473
  : ( localize(
474
- 8720,
474
+ 8745,
475
475
  "MCP servers have been updated and may have new tools available:\n\n{0}",
476
476
  names
477
477
  ))));
478
478
  }
479
479
  else if (state === DisplayedState.Error) {
480
480
  markdown = ( new MarkdownString(single
481
- ? ( localize(8721, "MCP server {0} was unable to start successfully.", names))
481
+ ? ( localize(8746, "MCP server {0} was unable to start successfully.", names))
482
482
  : ( localize(
483
- 8722,
483
+ 8747,
484
484
  "Multiple MCP servers were unable to start successfully:\n\n{0}",
485
485
  names
486
486
  ))));
@@ -508,7 +508,7 @@ let MCPServerActionRendering = class MCPServerActionRendering extends Disposable
508
508
  const divider = $('hr.mcp-hover-divider');
509
509
  container.appendChild(divider);
510
510
  const checkboxContainer = $('div.mcp-hover-setting');
511
- const settingLabelStr = ( localize(8723, "Automatically start MCP servers when sending a chat message"));
511
+ const settingLabelStr = ( localize(8748, "Automatically start MCP servers when sending a chat message"));
512
512
  const checkbox = store.add(( new Checkbox(
513
513
  settingLabelStr,
514
514
  config.get() !== McpAutoStartValue.Never,
@@ -533,13 +533,13 @@ let MCPServerActionRendering = class MCPServerActionRendering extends Disposable
533
533
  }
534
534
  getLabelForState({ state, servers } = displayedStateCurrent.get()) {
535
535
  if (state === DisplayedState.NewTools) {
536
- return localize(8724, "New tools available ({0})", servers.length || 1);
536
+ return localize(8749, "New tools available ({0})", servers.length || 1);
537
537
  }
538
538
  else if (state === DisplayedState.Error) {
539
- return localize(8725, "Error loading {0} tool(s)", servers.length || 1);
539
+ return localize(8750, "Error loading {0} tool(s)", servers.length || 1);
540
540
  }
541
541
  else if (state === DisplayedState.Refreshing) {
542
- return localize(8726, "Discovering tools...");
542
+ return localize(8751, "Discovering tools...");
543
543
  }
544
544
  else {
545
545
  return null;
@@ -560,7 +560,7 @@ class ResetMcpTrustCommand extends Action2 {
560
560
  constructor() {
561
561
  super({
562
562
  id: McpCommandIds.ResetTrust,
563
- title: ( localize2(8727, "Reset Trust")),
563
+ title: ( localize2(8752, "Reset Trust")),
564
564
  category,
565
565
  f1: true,
566
566
  precondition: ( ContextKeyExpr.and(McpContextKeys.toolsCount.greater(0), ( ChatContextKeys.Setup.hidden.negate()))),
@@ -575,7 +575,7 @@ class ResetMcpCachedTools extends Action2 {
575
575
  constructor() {
576
576
  super({
577
577
  id: McpCommandIds.ResetCachedTools,
578
- title: ( localize2(8728, "Reset Cached Tools")),
578
+ title: ( localize2(8753, "Reset Cached Tools")),
579
579
  category,
580
580
  f1: true,
581
581
  precondition: ( ContextKeyExpr.and(McpContextKeys.toolsCount.greater(0), ( ChatContextKeys.Setup.hidden.negate()))),
@@ -590,9 +590,9 @@ class AddConfigurationAction extends Action2 {
590
590
  constructor() {
591
591
  super({
592
592
  id: McpCommandIds.AddConfiguration,
593
- title: ( localize2(8729, "Add Server...")),
593
+ title: ( localize2(8754, "Add Server...")),
594
594
  metadata: {
595
- description: ( localize2(8730, "Installs a new Model Context protocol to the mcp.json settings")),
595
+ description: ( localize2(8755, "Installs a new Model Context protocol to the mcp.json settings")),
596
596
  },
597
597
  category,
598
598
  f1: true,
@@ -614,7 +614,7 @@ class RemoveStoredInput extends Action2 {
614
614
  constructor() {
615
615
  super({
616
616
  id: McpCommandIds.RemoveStoredInput,
617
- title: ( localize2(8728, "Reset Cached Tools")),
617
+ title: ( localize2(8753, "Reset Cached Tools")),
618
618
  category,
619
619
  f1: false,
620
620
  });
@@ -627,7 +627,7 @@ class EditStoredInput extends Action2 {
627
627
  constructor() {
628
628
  super({
629
629
  id: McpCommandIds.EditStoredInput,
630
- title: ( localize2(8731, "Edit Stored Input")),
630
+ title: ( localize2(8756, "Edit Stored Input")),
631
631
  category,
632
632
  f1: false,
633
633
  });
@@ -641,7 +641,7 @@ class ShowConfiguration extends Action2 {
641
641
  constructor() {
642
642
  super({
643
643
  id: McpCommandIds.ShowConfiguration,
644
- title: ( localize2(8732, "Show Configuration")),
644
+ title: ( localize2(8757, "Show Configuration")),
645
645
  category,
646
646
  f1: false,
647
647
  });
@@ -670,7 +670,7 @@ class ShowOutput extends Action2 {
670
670
  constructor() {
671
671
  super({
672
672
  id: McpCommandIds.ShowOutput,
673
- title: ( localize2(8733, "Show Output")),
673
+ title: ( localize2(8758, "Show Output")),
674
674
  category,
675
675
  f1: false,
676
676
  });
@@ -683,7 +683,7 @@ class RestartServer extends Action2 {
683
683
  constructor() {
684
684
  super({
685
685
  id: McpCommandIds.RestartServer,
686
- title: ( localize2(8734, "Restart Server")),
686
+ title: ( localize2(8759, "Restart Server")),
687
687
  category,
688
688
  f1: false,
689
689
  });
@@ -699,21 +699,24 @@ class StartServer extends Action2 {
699
699
  constructor() {
700
700
  super({
701
701
  id: McpCommandIds.StartServer,
702
- title: ( localize2(8735, "Start Server")),
702
+ title: ( localize2(8760, "Start Server")),
703
703
  category,
704
704
  f1: false,
705
705
  });
706
706
  }
707
707
  async run(accessor, serverId, opts) {
708
- const s = accessor.get(IMcpService).servers.get().find(s => s.definition.id === serverId);
709
- await s?.start({ promptType: 'all-untrusted', ...opts });
708
+ let servers = accessor.get(IMcpService).servers.get();
709
+ if (serverId !== undefined) {
710
+ servers = servers.filter(s => s.definition.id === serverId);
711
+ }
712
+ await Promise.all(( servers.map(s => s.start({ promptType: 'all-untrusted', ...opts }))));
710
713
  }
711
714
  }
712
715
  class StopServer extends Action2 {
713
716
  constructor() {
714
717
  super({
715
718
  id: McpCommandIds.StopServer,
716
- title: ( localize2(8736, "Stop Server")),
719
+ title: ( localize2(8761, "Stop Server")),
717
720
  category,
718
721
  f1: false,
719
722
  });
@@ -727,8 +730,8 @@ class McpBrowseCommand extends Action2 {
727
730
  constructor() {
728
731
  super({
729
732
  id: McpCommandIds.Browse,
730
- title: ( localize2(8737, "MCP Servers")),
731
- tooltip: ( localize2(8738, "Browse MCP Servers")),
733
+ title: ( localize2(8762, "MCP Servers")),
734
+ tooltip: ( localize2(8763, "Browse MCP Servers")),
732
735
  category,
733
736
  icon: Codicon.search,
734
737
  precondition: ( ChatContextKeys.Setup.hidden.negate()),
@@ -751,7 +754,7 @@ class McpBrowseCommand extends Action2 {
751
754
  MenuRegistry.appendMenuItem(MenuId.CommandPalette, {
752
755
  command: {
753
756
  id: McpCommandIds.Browse,
754
- title: ( localize2(8739, "Browse MCP Servers")),
757
+ title: ( localize2(8764, "Browse MCP Servers")),
755
758
  category,
756
759
  precondition: ( ChatContextKeys.Setup.hidden.negate()),
757
760
  },
@@ -760,7 +763,7 @@ class ShowInstalledMcpServersCommand extends Action2 {
760
763
  constructor() {
761
764
  super({
762
765
  id: McpCommandIds.ShowInstalled,
763
- title: ( localize2(8740, "Show Installed Servers")),
766
+ title: ( localize2(8765, "Show Installed Servers")),
764
767
  category,
765
768
  precondition: ( ContextKeyExpr.and(HasInstalledMcpServersContext, ( ChatContextKeys.Setup.hidden.negate()))),
766
769
  f1: true,
@@ -778,7 +781,7 @@ class ShowInstalledMcpServersCommand extends Action2 {
778
781
  MenuRegistry.appendMenuItem(CHAT_CONFIG_MENU_ID, {
779
782
  command: {
780
783
  id: McpCommandIds.ShowInstalled,
781
- title: ( localize2(8741, "MCP Servers"))
784
+ title: ( localize2(8766, "MCP Servers"))
782
785
  },
783
786
  when: ( ContextKeyExpr.and(ChatContextKeys.enabled, ( ContextKeyExpr.equals('view', ChatViewId)))),
784
787
  order: 10,
@@ -799,7 +802,7 @@ class OpenUserMcpResourceCommand extends OpenMcpResourceCommand {
799
802
  constructor() {
800
803
  super({
801
804
  id: McpCommandIds.OpenUserMcp,
802
- title: ( localize2(8742, "Open User Configuration")),
805
+ title: ( localize2(8767, "Open User Configuration")),
803
806
  category,
804
807
  f1: true,
805
808
  precondition: ( ChatContextKeys.Setup.hidden.negate()),
@@ -814,7 +817,7 @@ class OpenRemoteUserMcpResourceCommand extends OpenMcpResourceCommand {
814
817
  constructor() {
815
818
  super({
816
819
  id: McpCommandIds.OpenRemoteUserMcp,
817
- title: ( localize2(8743, "Open Remote User Configuration")),
820
+ title: ( localize2(8768, "Open Remote User Configuration")),
818
821
  category,
819
822
  f1: true,
820
823
  precondition: ( ContextKeyExpr.and(( ChatContextKeys.Setup.hidden.negate()), ( RemoteNameContext.notEqualsTo(''))))
@@ -831,7 +834,7 @@ class OpenWorkspaceFolderMcpResourceCommand extends Action2 {
831
834
  constructor() {
832
835
  super({
833
836
  id: McpCommandIds.OpenWorkspaceFolderMcp,
834
- title: ( localize2(8744, "Open Workspace Folder MCP Configuration")),
837
+ title: ( localize2(8769, "Open Workspace Folder MCP Configuration")),
835
838
  category,
836
839
  f1: true,
837
840
  precondition: ( ContextKeyExpr.and(( ChatContextKeys.Setup.hidden.negate()), ( WorkspaceFolderCountContext.notEqualsTo(0))))
@@ -852,7 +855,7 @@ class OpenWorkspaceMcpResourceCommand extends Action2 {
852
855
  constructor() {
853
856
  super({
854
857
  id: McpCommandIds.OpenWorkspaceMcp,
855
- title: ( localize2(8745, "Open Workspace MCP Configuration")),
858
+ title: ( localize2(8770, "Open Workspace MCP Configuration")),
856
859
  category,
857
860
  f1: true,
858
861
  precondition: ( ContextKeyExpr.and(( ChatContextKeys.Setup.hidden.negate()), ( WorkbenchStateContext.isEqualTo('workspace'))))
@@ -871,7 +874,7 @@ class McpBrowseResourcesCommand extends Action2 {
871
874
  constructor() {
872
875
  super({
873
876
  id: McpCommandIds.BrowseResources,
874
- title: ( localize2(8746, "Browse Resources...")),
877
+ title: ( localize2(8771, "Browse Resources...")),
875
878
  category,
876
879
  precondition: ( ContextKeyExpr.and(McpContextKeys.serverCount.greater(0), ( ChatContextKeys.Setup.hidden.negate()))),
877
880
  f1: true,
@@ -890,7 +893,7 @@ class McpConfigureSamplingModels extends Action2 {
890
893
  constructor() {
891
894
  super({
892
895
  id: McpCommandIds.ConfigureSamplingModels,
893
- title: ( localize2(8747, "Configure SamplingModel")),
896
+ title: ( localize2(8772, "Configure SamplingModel")),
894
897
  category,
895
898
  });
896
899
  }
@@ -914,7 +917,7 @@ class McpConfigureSamplingModels extends Action2 {
914
917
  allItems.sort((a, b) => (b.picked ? 1 : 0) - (a.picked ? 1 : 0) || a.label.localeCompare(b.label));
915
918
  const picked = await quickInputService.pick(allItems, {
916
919
  placeHolder: ( localize(
917
- 8748,
920
+ 8773,
918
921
  'Pick the models {0} can access via MCP sampling',
919
922
  server.definition.label
920
923
  )),
@@ -930,7 +933,7 @@ class McpStartPromptingServerCommand extends Action2 {
930
933
  constructor() {
931
934
  super({
932
935
  id: McpCommandIds.StartPromptForServer,
933
- title: ( localize2(8749, "Start Prompting Server")),
936
+ title: ( localize2(8774, "Start Prompting Server")),
934
937
  category,
935
938
  f1: false,
936
939
  });
@@ -957,7 +960,7 @@ class McpSkipCurrentAutostartCommand extends Action2 {
957
960
  constructor() {
958
961
  super({
959
962
  id: McpCommandIds.SkipCurrentAutostart,
960
- title: ( localize2(8750, "Skip Current Autostart")),
963
+ title: ( localize2(8775, "Skip Current Autostart")),
961
964
  category,
962
965
  f1: false,
963
966
  });
@@ -2,7 +2,7 @@ import { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/c
2
2
  import { INotificationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service";
3
3
  import { IOpenerService } from "@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service";
4
4
  import { IQuickInputService } from "@codingame/monaco-vscode-api/vscode/vs/platform/quickinput/common/quickInput.service";
5
- import { IChatService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService.service";
5
+ import { IChatService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service";
6
6
  import { ElicitResult, IMcpServer, IMcpToolCallContext } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes";
7
7
  import { IMcpElicitationService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes.service";
8
8
  import { MCP } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/modelContextProtocol";