Added function in mcpService to handle calling an MCP server tool

This commit is contained in:
Joaquin Coromina
2025-05-19 16:52:43 -04:00
parent f1c9e29f61
commit 6646bd0993
2 changed files with 12 additions and 1 deletions
@@ -15,7 +15,7 @@ import { IProductService } from '../../../../platform/product/common/productServ
import { VSBuffer } from '../../../../base/common/buffer.js';
import { IChannel } from '../../../../base/parts/ipc/common/ipc.js';
import { IMainProcessService } from '../../../../platform/ipc/common/mainProcessService.js';
import { MCPServers, MCPConfig, MCPServerEventParam, MCPServerEventAddParam, MCPServerEventUpdateParam, MCPServerEventDeleteParam, MCPServerEventLoadingParam, MCPConfigParseError } from './mcpServiceTypes.js';
import { MCPServers, MCPConfig, MCPServerEventParam, MCPServerEventAddParam, MCPServerEventUpdateParam, MCPServerEventDeleteParam, MCPServerEventLoadingParam, MCPConfigParseError, MCPGenericToolResponse, MCPToolCallParams } from './mcpServiceTypes.js';
import { Event, Emitter } from '../../../../base/common/event.js';
import { InternalToolInfo } from './prompt/prompts.js';
import { IVoidSettingsService } from './voidSettingsService.js';
@@ -348,6 +348,11 @@ class MCPService extends Disposable implements IMCPService {
return updatedServers;
}
public async callMCPTool(toolData: MCPToolCallParams): Promise<MCPGenericToolResponse> {
const response = await this.channel.call<MCPGenericToolResponse>('callTool', toolData);
return response;
}
}
registerSingleton(IMCPService, MCPService, InstantiationType.Eager);
@@ -272,3 +272,9 @@ export type MCPToolImageResponse = MCPToolEventResponse<'image'>;
export type MCPToolAudioResponse = MCPToolEventResponse<'audio'>;
export type MCPToolResourceResponse = MCPToolEventResponse<'resource'>;
export type MCPGenericToolResponse = MCPToolTextResponse | MCPToolErrorResponse | MCPToolImageResponse | MCPToolAudioResponse | MCPToolResourceResponse;
export interface MCPToolCallParams {
serverName: string;
toolName: string;
params: Record<string, unknown>;
}