Path: blob/main/extensions/copilot/src/extension/chatSessions/copilotcli/vscode-node/tools/index.ts
13406 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';6import { registerOpenDiffTool } from './openDiff';7import { registerCloseDiffTool } from './closeDiff';8import { registerGetDiagnosticsTool } from './getDiagnostics';9import { registerGetSelectionTool, SelectionState } from './getSelection';10import { registerGetVscodeInfoTool } from './getVscodeInfo';11import { registerUpdateSessionNameTool } from './updateSessionName';12import { ILogger } from '../../../../../platform/log/common/logService';13import { DiffStateManager } from '../diffState';14import { ReadonlyContentProvider } from '../readonlyContentProvider';15import { ICopilotCLISessionTracker } from '../copilotCLISessionTracker';1617export { getSelectionInfo, SelectionState } from './getSelection';18export type { SelectionInfo } from './getSelection';1920export function registerTools(server: McpServer, logger: ILogger, diffState: DiffStateManager, selectionState: SelectionState, contentProvider: ReadonlyContentProvider, sessionTracker: ICopilotCLISessionTracker, sessionId: string): void {21logger.debug('Registering MCP tools...');22registerGetVscodeInfoTool(server, logger);23registerGetSelectionTool(server, logger, selectionState);24registerOpenDiffTool(server, logger, diffState, contentProvider, sessionId);25registerCloseDiffTool(server, logger, diffState);26registerGetDiagnosticsTool(server, logger);27registerUpdateSessionNameTool(server, logger, sessionTracker, sessionId);28logger.debug('All MCP tools registered');29}303132