Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/workbench/contrib/mcp/electron-browser/nativeMpcDiscovery.ts
3296 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import { ProxyChannel } from '../../../../base/parts/ipc/common/ipc.js';
7
import { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';
8
import { IFileService } from '../../../../platform/files/common/files.js';
9
import { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';
10
import { IMainProcessService } from '../../../../platform/ipc/common/mainProcessService.js';
11
import { ILabelService } from '../../../../platform/label/common/label.js';
12
import { ILogService } from '../../../../platform/log/common/log.js';
13
import { INativeMcpDiscoveryHelperService, NativeMcpDiscoveryHelperChannelName } from '../../../../platform/mcp/common/nativeMcpDiscoveryHelper.js';
14
import { NativeFilesystemMcpDiscovery } from '../common/discovery/nativeMcpDiscoveryAbstract.js';
15
import { IMcpRegistry } from '../common/mcpRegistryTypes.js';
16
17
export class NativeMcpDiscovery extends NativeFilesystemMcpDiscovery {
18
constructor(
19
@IMainProcessService private readonly mainProcess: IMainProcessService,
20
@ILogService private readonly logService: ILogService,
21
@ILabelService labelService: ILabelService,
22
@IFileService fileService: IFileService,
23
@IInstantiationService instantiationService: IInstantiationService,
24
@IMcpRegistry mcpRegistry: IMcpRegistry,
25
@IConfigurationService configurationService: IConfigurationService,
26
) {
27
super(null, labelService, fileService, instantiationService, mcpRegistry, configurationService);
28
}
29
30
public override start(): void {
31
const service = ProxyChannel.toService<INativeMcpDiscoveryHelperService>(
32
this.mainProcess.getChannel(NativeMcpDiscoveryHelperChannelName));
33
34
service.load().then(
35
data => this.setDetails(data),
36
err => {
37
this.logService.warn('Error getting main process MCP environment', err);
38
this.setDetails(undefined);
39
}
40
);
41
}
42
}
43
44