Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/test/mcp/src/automationTools/index.ts
5251 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 { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
7
8
// Import all tool modules
9
import { applyCoreTools } from './core.js';
10
import { applyEditorTools } from './editor.js';
11
import { applyTerminalTools } from './terminal.js';
12
import { applyDebugTools } from './debug.js';
13
import { applySearchTools } from './search.js';
14
import { applyExtensionsTools } from './extensions.js';
15
import { applyQuickAccessTools } from './quickAccess.js';
16
import { applyExplorerTools } from './explorer.js';
17
import { applyActivityBarTools } from './activityBar.js';
18
import { applySCMTools } from './scm.js';
19
import { applyStatusBarTools } from './statusbar.js';
20
import { applyProblemsTools } from './problems.js';
21
import { applySettingsTools } from './settings.js';
22
import { applyKeybindingsTools } from './keybindings.js';
23
import { applyNotebookTools } from './notebook.js';
24
import { applyLocalizationTools } from './localization.js';
25
import { applyTaskTools } from './task.js';
26
import { applyProfilerTools } from './profiler.js';
27
import { applyChatTools } from './chat.js';
28
import { applyWindowTools } from './windows.js';
29
import { ApplicationService } from '../application';
30
31
/**
32
* Apply all VS Code automation tools to the MCP server
33
* @param server - The MCP server instance
34
* @param appService - The application service instance
35
* @returns The registered tools from the server
36
*/
37
export function applyAllTools(server: McpServer, appService: ApplicationService): RegisteredTool[] {
38
let tools: RegisteredTool[] = [];
39
40
// Core Application Management Tools
41
tools = tools.concat(applyCoreTools(server, appService));
42
43
// Editor Management Tools
44
tools = tools.concat(applyEditorTools(server, appService));
45
46
// Terminal Management Tools
47
tools = tools.concat(applyTerminalTools(server, appService));
48
49
// Debug Tools
50
tools = tools.concat(applyDebugTools(server, appService));
51
52
// Search Tools
53
tools = tools.concat(applySearchTools(server, appService));
54
55
// Extensions Tools
56
tools = tools.concat(applyExtensionsTools(server, appService));
57
58
// Command Palette and Quick Access Tools
59
tools = tools.concat(applyQuickAccessTools(server, appService));
60
61
// Explorer and File Management Tools
62
tools = tools.concat(applyExplorerTools(server, appService));
63
64
// Activity Bar Tools
65
tools = tools.concat(applyActivityBarTools(server, appService));
66
67
// Source Control Management Tools
68
tools = tools.concat(applySCMTools(server, appService));
69
70
// Status Bar Tools
71
tools = tools.concat(applyStatusBarTools(server, appService));
72
73
// Problems Panel Tools
74
tools = tools.concat(applyProblemsTools(server, appService));
75
76
// Settings Editor Tools
77
tools = tools.concat(applySettingsTools(server, appService));
78
79
// Keybindings Editor Tools
80
tools = tools.concat(applyKeybindingsTools(server, appService));
81
82
// Notebook Tools
83
tools = tools.concat(applyNotebookTools(server, appService));
84
85
// Localization Tools
86
tools = tools.concat(applyLocalizationTools(server, appService));
87
88
// Task Tools
89
tools = tools.concat(applyTaskTools(server, appService));
90
91
// Profiler Tools
92
tools = tools.concat(applyProfilerTools(server, appService));
93
94
// Chat Tools
95
tools = tools.concat(applyChatTools(server, appService));
96
97
// Window Management Tools (for multi-window support)
98
tools = tools.concat(applyWindowTools(server, appService));
99
100
// Return all registered tools
101
return tools;
102
}
103
104
// Re-export individual tool functions for selective use
105
export {
106
applyCoreTools,
107
applyEditorTools,
108
applyTerminalTools,
109
applyDebugTools,
110
applySearchTools,
111
applyExtensionsTools,
112
applyQuickAccessTools,
113
applyExplorerTools,
114
applyActivityBarTools,
115
applySCMTools,
116
applyStatusBarTools,
117
applyProblemsTools,
118
applySettingsTools,
119
applyKeybindingsTools,
120
applyNotebookTools,
121
applyLocalizationTools,
122
applyTaskTools,
123
applyProfilerTools,
124
applyChatTools,
125
applyWindowTools
126
};
127
128