Skip to content

Commit e98a246

Browse files
authored
mcp: fix WARN Failed to get installed servers from (microsoft#253070)
Fixes microsoft#252943
1 parent 98efc7d commit e98a246

File tree

1 file changed

+12
-15
lines changed

1 file changed

+12
-15
lines changed

src/vs/platform/mcp/common/mcpResourceScannerService.ts

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6+
import { assertNever } from '../../../base/common/assert.js';
67
import { Queue } from '../../../base/common/async.js';
78
import { VSBuffer } from '../../../base/common/buffer.js';
89
import { IStringDictionary } from '../../../base/common/collections.js';
@@ -51,7 +52,7 @@ export interface IMcpResourceScannerService {
5152
export class McpResourceScannerService extends Disposable implements IMcpResourceScannerService {
5253
readonly _serviceBrand: undefined;
5354

54-
private readonly resourcesAccessQueueMap = new ResourceMap<Queue<any>>();
55+
private readonly resourcesAccessQueueMap = new ResourceMap<Queue<IScannedMcpServers>>();
5556

5657
constructor(
5758
@IFileService private readonly fileService: IFileService,
@@ -93,7 +94,7 @@ export class McpResourceScannerService extends Disposable implements IMcpResourc
9394

9495
private async withProfileMcpServers(mcpResource: URI, target?: McpResourceTarget, updateFn?: (data: IScannedMcpServers) => IScannedMcpServers): Promise<IScannedMcpServers> {
9596
return this.getResourceAccessQueue(mcpResource)
96-
.queue(async () => {
97+
.queue(async (): Promise<IScannedMcpServers> => {
9798
target = target ?? ConfigurationTarget.USER;
9899
let scannedMcpServers: IScannedMcpServers = {};
99100
try {
@@ -123,18 +124,14 @@ export class McpResourceScannerService extends Disposable implements IMcpResourc
123124
scannedMcpServers = updateFn(scannedMcpServers ?? {});
124125

125126
if (target === ConfigurationTarget.USER) {
126-
return this.writeScannedMcpServers(mcpResource, scannedMcpServers);
127-
}
128-
129-
if (target === ConfigurationTarget.WORKSPACE_FOLDER) {
130-
return this.writeScannedMcpServersToWorkspaceFolder(mcpResource, scannedMcpServers);
131-
}
132-
133-
if (target === ConfigurationTarget.WORKSPACE) {
134-
return this.writeScannedMcpServersToWorkspace(mcpResource, scannedMcpServers);
127+
await this.writeScannedMcpServers(mcpResource, scannedMcpServers);
128+
} else if (target === ConfigurationTarget.WORKSPACE_FOLDER) {
129+
await this.writeScannedMcpServersToWorkspaceFolder(mcpResource, scannedMcpServers);
130+
} else if (target === ConfigurationTarget.WORKSPACE) {
131+
await this.writeScannedMcpServersToWorkspace(mcpResource, scannedMcpServers);
132+
} else {
133+
assertNever(target, `Invalid Target: ${ConfigurationTargetToString(target)}`);
135134
}
136-
137-
throw new Error(`Invalid Target: ${ConfigurationTargetToString(target)}`);
138135
}
139136
return scannedMcpServers;
140137
});
@@ -222,10 +219,10 @@ export class McpResourceScannerService extends Disposable implements IMcpResourc
222219
return server;
223220
}
224221

225-
private getResourceAccessQueue(file: URI): Queue<any> {
222+
private getResourceAccessQueue(file: URI): Queue<IScannedMcpServers> {
226223
let resourceQueue = this.resourcesAccessQueueMap.get(file);
227224
if (!resourceQueue) {
228-
resourceQueue = new Queue<any>();
225+
resourceQueue = new Queue<IScannedMcpServers>();
229226
this.resourcesAccessQueueMap.set(file, resourceQueue);
230227
}
231228
return resourceQueue;

0 commit comments

Comments
 (0)