centaurus-cli 2.7.2 → 2.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli-adapter.d.ts +6 -0
- package/dist/cli-adapter.d.ts.map +1 -1
- package/dist/cli-adapter.js +58 -33
- package/dist/cli-adapter.js.map +1 -1
- package/dist/config/mcp-config-manager.d.ts +53 -0
- package/dist/config/mcp-config-manager.d.ts.map +1 -0
- package/dist/config/mcp-config-manager.js +210 -0
- package/dist/config/mcp-config-manager.js.map +1 -0
- package/dist/config/slash-commands.d.ts +14 -0
- package/dist/config/slash-commands.d.ts.map +1 -0
- package/dist/config/slash-commands.js +65 -0
- package/dist/config/slash-commands.js.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/mcp-command-handler.d.ts +16 -0
- package/dist/mcp/mcp-command-handler.d.ts.map +1 -0
- package/dist/mcp/mcp-command-handler.js +196 -0
- package/dist/mcp/mcp-command-handler.js.map +1 -0
- package/dist/mcp/mcp-server-manager.d.ts +30 -0
- package/dist/mcp/mcp-server-manager.d.ts.map +1 -0
- package/dist/mcp/mcp-server-manager.js +165 -0
- package/dist/mcp/mcp-server-manager.js.map +1 -0
- package/dist/mcp/mcp-tool-wrapper.d.ts +12 -0
- package/dist/mcp/mcp-tool-wrapper.d.ts.map +1 -0
- package/dist/mcp/mcp-tool-wrapper.js +57 -0
- package/dist/mcp/mcp-tool-wrapper.js.map +1 -0
- package/dist/services/ai-service-client.d.ts.map +1 -1
- package/dist/services/ai-service-client.js +0 -2
- package/dist/services/ai-service-client.js.map +1 -1
- package/dist/tools/command.js.map +1 -1
- package/dist/tools/file-ops.d.ts.map +1 -1
- package/dist/tools/file-ops.js +5 -7
- package/dist/tools/file-ops.js.map +1 -1
- package/dist/ui/components/App.d.ts +3 -0
- package/dist/ui/components/App.d.ts.map +1 -1
- package/dist/ui/components/App.js +164 -66
- package/dist/ui/components/App.js.map +1 -1
- package/dist/ui/components/FileCreationPreview.d.ts +8 -0
- package/dist/ui/components/FileCreationPreview.d.ts.map +1 -0
- package/dist/ui/components/FileCreationPreview.js +63 -0
- package/dist/ui/components/FileCreationPreview.js.map +1 -0
- package/dist/ui/components/InputBox.d.ts.map +1 -1
- package/dist/ui/components/InputBox.js +132 -4
- package/dist/ui/components/InputBox.js.map +1 -1
- package/dist/ui/components/InteractiveShell.d.ts +1 -0
- package/dist/ui/components/InteractiveShell.d.ts.map +1 -1
- package/dist/ui/components/InteractiveShell.js +30 -8
- package/dist/ui/components/InteractiveShell.js.map +1 -1
- package/dist/ui/components/MarkdownRenderer.d.ts.map +1 -1
- package/dist/ui/components/MarkdownRenderer.js +8 -30
- package/dist/ui/components/MarkdownRenderer.js.map +1 -1
- package/dist/ui/components/SlashCommandAutocomplete.d.ts +11 -0
- package/dist/ui/components/SlashCommandAutocomplete.d.ts.map +1 -0
- package/dist/ui/components/SlashCommandAutocomplete.js +15 -0
- package/dist/ui/components/SlashCommandAutocomplete.js.map +1 -0
- package/dist/ui/components/ToolExecutionMessage.d.ts.map +1 -1
- package/dist/ui/components/ToolExecutionMessage.js +96 -32
- package/dist/ui/components/ToolExecutionMessage.js.map +1 -1
- package/dist/ui/components/ToolExecutionStatus.d.ts.map +1 -1
- package/dist/ui/components/ToolExecutionStatus.js +28 -1
- package/dist/ui/components/ToolExecutionStatus.js.map +1 -1
- package/dist/utils/input-classifier.d.ts.map +1 -1
- package/dist/utils/input-classifier.js +2 -1
- package/dist/utils/input-classifier.js.map +1 -1
- package/dist/utils/shell.d.ts +2 -0
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +71 -0
- package/dist/utils/shell.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import * as os from 'os';
|
|
4
|
+
export class MCPConfigManager {
|
|
5
|
+
configPath;
|
|
6
|
+
config;
|
|
7
|
+
constructor(configDir) {
|
|
8
|
+
const baseDir = configDir || path.join(os.homedir(), '.centaurus');
|
|
9
|
+
this.configPath = path.join(baseDir, 'mcp-config.json');
|
|
10
|
+
this.config = this.load();
|
|
11
|
+
}
|
|
12
|
+
getConfigPath() {
|
|
13
|
+
return this.configPath;
|
|
14
|
+
}
|
|
15
|
+
load() {
|
|
16
|
+
try {
|
|
17
|
+
if (fs.existsSync(this.configPath)) {
|
|
18
|
+
const content = fs.readFileSync(this.configPath, 'utf-8');
|
|
19
|
+
// Handle empty file
|
|
20
|
+
if (!content.trim()) {
|
|
21
|
+
console.warn('[MCP Config] Config file is empty');
|
|
22
|
+
return this.getDefaultConfig();
|
|
23
|
+
}
|
|
24
|
+
let rawConfig;
|
|
25
|
+
try {
|
|
26
|
+
rawConfig = JSON.parse(content);
|
|
27
|
+
}
|
|
28
|
+
catch (parseError) {
|
|
29
|
+
console.error('[MCP Config] Invalid JSON:', parseError.message);
|
|
30
|
+
return this.getDefaultConfig();
|
|
31
|
+
}
|
|
32
|
+
// Normalize the config to standard format
|
|
33
|
+
const normalizedConfig = this.normalizeConfig(rawConfig);
|
|
34
|
+
if (normalizedConfig.servers.length === 0) {
|
|
35
|
+
console.warn('[MCP Config] No servers found in config file');
|
|
36
|
+
}
|
|
37
|
+
return normalizedConfig;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
// Config file doesn't exist - create directory and return default
|
|
41
|
+
const configDir = path.dirname(this.configPath);
|
|
42
|
+
if (!fs.existsSync(configDir)) {
|
|
43
|
+
fs.mkdirSync(configDir, { recursive: true });
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
console.error('[MCP Config] Failed to load config:', error.message);
|
|
49
|
+
}
|
|
50
|
+
return this.getDefaultConfig();
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Normalize config from different formats to standard format
|
|
54
|
+
* Supports:
|
|
55
|
+
* 1. mcp_servers format (preferred): { "mcp_servers": { "serverName": { "command": "...", ... } } }
|
|
56
|
+
* 2. Array format: { "servers": [{ "name": "x", "command": "y", ... }] }
|
|
57
|
+
* 3. Object format: { "serverName": { "command": "y", ... } } - keys become server names
|
|
58
|
+
* 4. mcpServers format (VSCode/Claude style): { "mcpServers": { ... } }
|
|
59
|
+
*/
|
|
60
|
+
normalizeConfig(rawConfig) {
|
|
61
|
+
// If it's null or not an object, return default
|
|
62
|
+
if (!rawConfig || typeof rawConfig !== 'object') {
|
|
63
|
+
return this.getDefaultConfig();
|
|
64
|
+
}
|
|
65
|
+
// Format 1 (PREFERRED): Check for "mcp_servers" key (snake_case) - object format
|
|
66
|
+
if (rawConfig.mcp_servers && typeof rawConfig.mcp_servers === 'object' && !Array.isArray(rawConfig.mcp_servers)) {
|
|
67
|
+
return this.convertObjectToArrayFormat(rawConfig.mcp_servers);
|
|
68
|
+
}
|
|
69
|
+
// Format 2: Standard array format with "servers" key
|
|
70
|
+
if (Array.isArray(rawConfig.servers)) {
|
|
71
|
+
const validServers = rawConfig.servers
|
|
72
|
+
.filter((s) => this.validateServerConfig(s))
|
|
73
|
+
.map((s) => this.sanitizeServerConfig(s));
|
|
74
|
+
return { servers: validServers };
|
|
75
|
+
}
|
|
76
|
+
// Format 3: Check for "mcpServers" key (VSCode/Claude Desktop style - camelCase)
|
|
77
|
+
if (rawConfig.mcpServers && typeof rawConfig.mcpServers === 'object') {
|
|
78
|
+
return this.convertObjectToArrayFormat(rawConfig.mcpServers);
|
|
79
|
+
}
|
|
80
|
+
// Format 4: Object format where keys are server names (legacy)
|
|
81
|
+
// Check if any top-level key looks like a server config (has 'command' property)
|
|
82
|
+
const potentialServers = Object.entries(rawConfig).filter(([key, value]) => key !== 'servers' &&
|
|
83
|
+
key !== 'mcpServers' &&
|
|
84
|
+
key !== 'mcp_servers' &&
|
|
85
|
+
value &&
|
|
86
|
+
typeof value === 'object' &&
|
|
87
|
+
'command' in value);
|
|
88
|
+
if (potentialServers.length > 0) {
|
|
89
|
+
return this.convertObjectToArrayFormat(rawConfig);
|
|
90
|
+
}
|
|
91
|
+
// If we have a 'servers' key but it's not an array, try to handle it
|
|
92
|
+
if (rawConfig.servers && typeof rawConfig.servers === 'object' && !Array.isArray(rawConfig.servers)) {
|
|
93
|
+
return this.convertObjectToArrayFormat(rawConfig.servers);
|
|
94
|
+
}
|
|
95
|
+
console.warn('[MCP Config] Unrecognized config format');
|
|
96
|
+
return this.getDefaultConfig();
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Convert object-based format to array format
|
|
100
|
+
* { "serverName": { "command": "x", ... } } => { "servers": [{ "name": "serverName", "command": "x", ... }] }
|
|
101
|
+
*/
|
|
102
|
+
convertObjectToArrayFormat(configObject) {
|
|
103
|
+
const servers = [];
|
|
104
|
+
for (const [name, serverConfig] of Object.entries(configObject)) {
|
|
105
|
+
if (!serverConfig || typeof serverConfig !== 'object') {
|
|
106
|
+
console.warn(`[MCP Config] Skipping invalid server entry: ${name}`);
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
// Build server config with name from key
|
|
110
|
+
const server = {
|
|
111
|
+
name,
|
|
112
|
+
command: serverConfig.command,
|
|
113
|
+
args: serverConfig.args,
|
|
114
|
+
env: serverConfig.env,
|
|
115
|
+
enabled: serverConfig.enabled,
|
|
116
|
+
auth: serverConfig.auth
|
|
117
|
+
};
|
|
118
|
+
if (this.validateServerConfig(server)) {
|
|
119
|
+
servers.push(this.sanitizeServerConfig(server));
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return { servers };
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Validate a server config has required fields
|
|
126
|
+
*/
|
|
127
|
+
validateServerConfig(config) {
|
|
128
|
+
if (!config || typeof config !== 'object') {
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
if (!config.name || typeof config.name !== 'string') {
|
|
132
|
+
console.warn('[MCP Config] Server missing required "name" field');
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
if (!config.command || typeof config.command !== 'string') {
|
|
136
|
+
console.warn(`[MCP Config] Server "${config.name}" missing required "command" field`);
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
return true;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Sanitize and set defaults for server config
|
|
143
|
+
*/
|
|
144
|
+
sanitizeServerConfig(config) {
|
|
145
|
+
return {
|
|
146
|
+
name: config.name,
|
|
147
|
+
command: config.command,
|
|
148
|
+
args: Array.isArray(config.args) ? config.args : undefined,
|
|
149
|
+
env: config.env && typeof config.env === 'object' ? config.env : undefined,
|
|
150
|
+
enabled: config.enabled !== false, // Default to enabled
|
|
151
|
+
auth: config.auth
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
save(config) {
|
|
155
|
+
try {
|
|
156
|
+
const configDir = path.dirname(this.configPath);
|
|
157
|
+
// Ensure config directory exists
|
|
158
|
+
if (!fs.existsSync(configDir)) {
|
|
159
|
+
fs.mkdirSync(configDir, { recursive: true });
|
|
160
|
+
}
|
|
161
|
+
fs.writeFileSync(this.configPath, JSON.stringify(config, null, 2), 'utf-8');
|
|
162
|
+
this.config = config;
|
|
163
|
+
}
|
|
164
|
+
catch (error) {
|
|
165
|
+
throw new Error(`Failed to save MCP config: ${error}`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
getServers() {
|
|
169
|
+
return this.config.servers.filter(s => s.enabled !== false);
|
|
170
|
+
}
|
|
171
|
+
getAllServers() {
|
|
172
|
+
return this.config.servers;
|
|
173
|
+
}
|
|
174
|
+
addServer(server) {
|
|
175
|
+
this.config.servers.push(server);
|
|
176
|
+
this.save(this.config);
|
|
177
|
+
}
|
|
178
|
+
removeServer(name) {
|
|
179
|
+
this.config.servers = this.config.servers.filter(s => s.name !== name);
|
|
180
|
+
this.save(this.config);
|
|
181
|
+
}
|
|
182
|
+
updateServer(name, updates) {
|
|
183
|
+
const index = this.config.servers.findIndex(s => s.name === name);
|
|
184
|
+
if (index !== -1) {
|
|
185
|
+
this.config.servers[index] = { ...this.config.servers[index], ...updates };
|
|
186
|
+
this.save(this.config);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
getDefaultConfig() {
|
|
190
|
+
return {
|
|
191
|
+
servers: []
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
createExampleConfig() {
|
|
195
|
+
const exampleConfig = {
|
|
196
|
+
servers: [
|
|
197
|
+
{
|
|
198
|
+
name: 'example-filesystem',
|
|
199
|
+
command: 'npx',
|
|
200
|
+
args: ['-y', '@modelcontextprotocol/server-filesystem', os.homedir()],
|
|
201
|
+
enabled: false
|
|
202
|
+
}
|
|
203
|
+
]
|
|
204
|
+
};
|
|
205
|
+
if (!fs.existsSync(this.configPath)) {
|
|
206
|
+
this.save(exampleConfig);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
//# sourceMappingURL=mcp-config-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-config-manager.js","sourceRoot":"","sources":["../../src/config/mcp-config-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface SlashCommand {
|
|
2
|
+
name: string;
|
|
3
|
+
description: string;
|
|
4
|
+
aliases?: string[];
|
|
5
|
+
}
|
|
6
|
+
export declare const SLASH_COMMANDS: SlashCommand[];
|
|
7
|
+
export declare const MCP_SUBCOMMANDS: SlashCommand[];
|
|
8
|
+
/**
|
|
9
|
+
* Filter commands based on query string
|
|
10
|
+
* @param query The search query (without the leading /)
|
|
11
|
+
* @returns Filtered and sorted commands
|
|
12
|
+
*/
|
|
13
|
+
export declare function filterCommands(query: string): SlashCommand[];
|
|
14
|
+
//# sourceMappingURL=slash-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slash-commands.d.ts","sourceRoot":"","sources":["../../src/config/slash-commands.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,eAAO,MAAM,cAAc,EAAE,YAAY,EAWxC,CAAC;AAGF,eAAO,MAAM,eAAe,EAAE,YAAY,EAOzC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE,CA8C5D"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
export const SLASH_COMMANDS = [
|
|
2
|
+
{ name: 'help', description: 'Show this help message' },
|
|
3
|
+
{ name: 'init', description: 'Analyze project and create/load centaurus.md context file' },
|
|
4
|
+
{ name: 'clear', description: 'Clear conversation history' },
|
|
5
|
+
{ name: 'config', description: 'View current configuration' },
|
|
6
|
+
{ name: 'model', description: 'Select from available Google models' },
|
|
7
|
+
{ name: 'plan', description: 'Toggle plan mode for complex implementations' },
|
|
8
|
+
{ name: 'mcp', description: 'Manage configured MCP servers and tools' },
|
|
9
|
+
{ name: 'sign-in', description: 'Sign in with Google (if not already signed in)' },
|
|
10
|
+
{ name: 'logout', description: 'Sign out, clear session, and exit CLI' },
|
|
11
|
+
{ name: 'exit', description: 'Exit the application' },
|
|
12
|
+
];
|
|
13
|
+
// MCP subcommands
|
|
14
|
+
export const MCP_SUBCOMMANDS = [
|
|
15
|
+
{ name: 'list', description: 'List configured MCP servers and tools' },
|
|
16
|
+
{ name: 'desc', description: 'List servers and tools with descriptions' },
|
|
17
|
+
{ name: 'schema', description: 'List servers, tools with full schemas' },
|
|
18
|
+
{ name: 'status', description: 'Show connection status of all servers' },
|
|
19
|
+
{ name: 'refresh', description: 'Restart MCP servers' },
|
|
20
|
+
{ name: 'config', description: 'Show MCP configuration file location' },
|
|
21
|
+
];
|
|
22
|
+
/**
|
|
23
|
+
* Filter commands based on query string
|
|
24
|
+
* @param query The search query (without the leading /)
|
|
25
|
+
* @returns Filtered and sorted commands
|
|
26
|
+
*/
|
|
27
|
+
export function filterCommands(query) {
|
|
28
|
+
if (!query) {
|
|
29
|
+
// No query - return all commands
|
|
30
|
+
return SLASH_COMMANDS;
|
|
31
|
+
}
|
|
32
|
+
const normalized = query.toLowerCase();
|
|
33
|
+
// Check if this is an MCP subcommand query (e.g., "mcp list")
|
|
34
|
+
if (normalized.startsWith('mcp ')) {
|
|
35
|
+
const subQuery = normalized.slice(4); // Remove "mcp "
|
|
36
|
+
return MCP_SUBCOMMANDS.filter(cmd => cmd.name.toLowerCase().startsWith(subQuery) ||
|
|
37
|
+
cmd.description.toLowerCase().includes(subQuery));
|
|
38
|
+
}
|
|
39
|
+
// Filter commands that match
|
|
40
|
+
const matches = SLASH_COMMANDS.filter(cmd => {
|
|
41
|
+
// Match if command name starts with query
|
|
42
|
+
if (cmd.name.toLowerCase().startsWith(normalized)) {
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
// Or if description contains query
|
|
46
|
+
if (cmd.description.toLowerCase().includes(normalized)) {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
return false;
|
|
50
|
+
});
|
|
51
|
+
// Sort by relevance: exact prefix matches first
|
|
52
|
+
matches.sort((a, b) => {
|
|
53
|
+
const aStarts = a.name.toLowerCase().startsWith(normalized);
|
|
54
|
+
const bStarts = b.name.toLowerCase().startsWith(normalized);
|
|
55
|
+
if (aStarts && !bStarts)
|
|
56
|
+
return -1;
|
|
57
|
+
if (!aStarts && bStarts)
|
|
58
|
+
return 1;
|
|
59
|
+
// Both start or both don't start - sort alphabetically
|
|
60
|
+
return a.name.localeCompare(b.name);
|
|
61
|
+
});
|
|
62
|
+
// Limit to 10 results
|
|
63
|
+
return matches.slice(0, 10);
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=slash-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../../src/config/slash-commands.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -110,6 +110,9 @@ async function main() {
|
|
|
110
110
|
onResponseReceived: (callback) => {
|
|
111
111
|
cli.setOnResponseCallback(callback);
|
|
112
112
|
},
|
|
113
|
+
onDirectMessage: (callback) => {
|
|
114
|
+
cli.setOnDirectMessageCallback(callback);
|
|
115
|
+
},
|
|
113
116
|
onResponseStream: (callback) => {
|
|
114
117
|
cli.setOnResponseStreamCallback(callback);
|
|
115
118
|
},
|
|
@@ -160,6 +163,20 @@ async function main() {
|
|
|
160
163
|
},
|
|
161
164
|
onShellInput: (input) => {
|
|
162
165
|
cli.writeToShellStdin(input);
|
|
166
|
+
},
|
|
167
|
+
onShellSignal: (signal) => {
|
|
168
|
+
try {
|
|
169
|
+
require('fs').appendFileSync('shell_ui_debug.log', `[index.ts] onShellSignal called with ${signal}\n`);
|
|
170
|
+
}
|
|
171
|
+
catch (e) { }
|
|
172
|
+
cli.sendSignalToShell(signal);
|
|
173
|
+
},
|
|
174
|
+
onKillProcess: () => {
|
|
175
|
+
try {
|
|
176
|
+
require('fs').appendFileSync('shell_ui_debug.log', `[index.ts] onKillProcess called\n`);
|
|
177
|
+
}
|
|
178
|
+
catch (e) { }
|
|
179
|
+
cli.killCurrentProcess();
|
|
163
180
|
}
|
|
164
181
|
})), {
|
|
165
182
|
patchConsole: false,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { MCPConfigManager } from '../config/mcp-config-manager.js';
|
|
2
|
+
import { MCPServerManager } from './mcp-server-manager.js';
|
|
3
|
+
import { ToolRegistry } from '../tools/registry.js';
|
|
4
|
+
export declare class MCPCommandHandler {
|
|
5
|
+
private mcpConfigManager;
|
|
6
|
+
private mcpServerManager;
|
|
7
|
+
private toolRegistry;
|
|
8
|
+
constructor(mcpConfigManager: MCPConfigManager, mcpServerManager: MCPServerManager, toolRegistry: ToolRegistry);
|
|
9
|
+
initializeMCP(): Promise<void>;
|
|
10
|
+
handleCommand(args: string[]): Promise<string>;
|
|
11
|
+
private handleList;
|
|
12
|
+
private handleStatus;
|
|
13
|
+
private handleRefresh;
|
|
14
|
+
private handleConfig;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=mcp-command-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-command-handler.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp-command-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,qBAAa,iBAAiB;IAEtB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,YAAY;gBAFZ,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,YAAY,EAAE,YAAY;IAGhC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB9B,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAiCpD,OAAO,CAAC,UAAU;IA8ClB,OAAO,CAAC,YAAY;YAkCN,aAAa;IA0C3B,OAAO,CAAC,YAAY;CAiCvB"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { createMCPToolWrappers } from './mcp-tool-wrapper.js';
|
|
2
|
+
export class MCPCommandHandler {
|
|
3
|
+
mcpConfigManager;
|
|
4
|
+
mcpServerManager;
|
|
5
|
+
toolRegistry;
|
|
6
|
+
constructor(mcpConfigManager, mcpServerManager, toolRegistry) {
|
|
7
|
+
this.mcpConfigManager = mcpConfigManager;
|
|
8
|
+
this.mcpServerManager = mcpServerManager;
|
|
9
|
+
this.toolRegistry = toolRegistry;
|
|
10
|
+
}
|
|
11
|
+
async initializeMCP() {
|
|
12
|
+
try {
|
|
13
|
+
// Auto-connect to configured servers
|
|
14
|
+
const servers = this.mcpConfigManager.getServers();
|
|
15
|
+
for (const serverConfig of servers) {
|
|
16
|
+
try {
|
|
17
|
+
await this.mcpServerManager.connect(serverConfig);
|
|
18
|
+
// Register MCP tools to tool registry
|
|
19
|
+
const tools = await this.mcpServerManager.listTools(serverConfig.name);
|
|
20
|
+
const wrappedTools = createMCPToolWrappers(serverConfig.name, tools, this.mcpServerManager);
|
|
21
|
+
for (const tool of wrappedTools) {
|
|
22
|
+
this.toolRegistry.register(tool);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
// Silent fail - user can check status with /mcp status
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
console.error('Failed to initialize MCP:', error);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
async handleCommand(args) {
|
|
35
|
+
const subcommand = args[0]?.toLowerCase();
|
|
36
|
+
if (!subcommand) {
|
|
37
|
+
return '## MCP (Model Context Protocol) Server Management\n\n' +
|
|
38
|
+
'Available subcommands:\n\n' +
|
|
39
|
+
'/mcp list - List configured MCP servers and tools\n' +
|
|
40
|
+
'/mcp desc - List servers and tools with descriptions\n' +
|
|
41
|
+
'/mcp schema - List servers, tools with full schemas\n' +
|
|
42
|
+
'/mcp status - Show connection status of all servers\n' +
|
|
43
|
+
'/mcp refresh - Restart all MCP servers\n' +
|
|
44
|
+
'/mcp config - Show MCP configuration file location\n\n' +
|
|
45
|
+
'Type any subcommand for more details.';
|
|
46
|
+
}
|
|
47
|
+
switch (subcommand) {
|
|
48
|
+
case 'list':
|
|
49
|
+
return this.handleList(false, false);
|
|
50
|
+
case 'desc':
|
|
51
|
+
return this.handleList(true, false);
|
|
52
|
+
case 'schema':
|
|
53
|
+
return this.handleList(true, true);
|
|
54
|
+
case 'status':
|
|
55
|
+
return this.handleStatus();
|
|
56
|
+
case 'refresh':
|
|
57
|
+
return await this.handleRefresh();
|
|
58
|
+
case 'config':
|
|
59
|
+
return this.handleConfig();
|
|
60
|
+
default:
|
|
61
|
+
return `❌ Unknown MCP subcommand: ${subcommand}\nType /mcp for help.`;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
handleList(showDesc, showSchema) {
|
|
65
|
+
const servers = this.mcpConfigManager.getAllServers();
|
|
66
|
+
if (servers.length === 0) {
|
|
67
|
+
return '## No MCP Servers Configured\n\n' +
|
|
68
|
+
`Configuration file: \`${this.mcpConfigManager.getConfigPath()}\`\n\n` +
|
|
69
|
+
'Add MCP servers to the config file and run `/mcp refresh` to load them.\n\n' +
|
|
70
|
+
'Use `/mcp config` for an example configuration.';
|
|
71
|
+
}
|
|
72
|
+
let output = '## MCP Servers and Tools\n\n';
|
|
73
|
+
for (const serverConfig of servers) {
|
|
74
|
+
const statuses = this.mcpServerManager.getStatus(serverConfig.name);
|
|
75
|
+
const status = statuses[0];
|
|
76
|
+
const tools = status?.tools || [];
|
|
77
|
+
const statusIcon = status?.status === 'connected' ? '✅' :
|
|
78
|
+
status?.status === 'error' ? '❌' : '⚠️';
|
|
79
|
+
output += `### ${statusIcon} ${serverConfig.name}\n\n`;
|
|
80
|
+
output += `- **Command**: \`${serverConfig.command}\`\n`;
|
|
81
|
+
output += `- **Status**: ${status?.status || 'unknown'}\n`;
|
|
82
|
+
output += `- **Tools**: ${tools.length}\n\n`;
|
|
83
|
+
if (tools.length > 0) {
|
|
84
|
+
for (const tool of tools) {
|
|
85
|
+
output += ` - **${tool.name}**`;
|
|
86
|
+
if (showDesc && tool.description) {
|
|
87
|
+
output += `: ${tool.description}`;
|
|
88
|
+
}
|
|
89
|
+
output += '\n';
|
|
90
|
+
if (showSchema && tool.inputSchema) {
|
|
91
|
+
output += ' ```json\n';
|
|
92
|
+
output += ` ${JSON.stringify(tool.inputSchema, null, 2).replace(/\n/g, '\n ')}\n`;
|
|
93
|
+
output += ' ```\n';
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
output += '\n';
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return output;
|
|
100
|
+
}
|
|
101
|
+
handleStatus() {
|
|
102
|
+
const statuses = this.mcpServerManager.getStatus();
|
|
103
|
+
if (statuses.length === 0) {
|
|
104
|
+
return '## No MCP Servers Configured\n\n' +
|
|
105
|
+
'Add servers to your MCP configuration and run `/mcp refresh`.\n\n' +
|
|
106
|
+
'Use `/mcp config` for more information.';
|
|
107
|
+
}
|
|
108
|
+
let output = '## MCP Server Status\n\n';
|
|
109
|
+
for (const status of statuses) {
|
|
110
|
+
const icon = status.status === 'connected' ? '✅' :
|
|
111
|
+
status.status === 'error' ? '❌' :
|
|
112
|
+
status.status === 'connecting' ? '⏳' : '⚠️';
|
|
113
|
+
output += `${icon} **${status.name}**: ${status.status}\n`;
|
|
114
|
+
if (status.error) {
|
|
115
|
+
output += ` Error: ${status.error}\n`;
|
|
116
|
+
}
|
|
117
|
+
if (status.uptime && status.status === 'connected') {
|
|
118
|
+
const minutes = Math.floor(status.uptime / 60);
|
|
119
|
+
const seconds = status.uptime % 60;
|
|
120
|
+
output += ` Uptime: ${minutes}m ${seconds}s\n`;
|
|
121
|
+
}
|
|
122
|
+
output += ` Tools: ${status.tools.length}\n\n`;
|
|
123
|
+
}
|
|
124
|
+
return output;
|
|
125
|
+
}
|
|
126
|
+
async handleRefresh() {
|
|
127
|
+
try {
|
|
128
|
+
// Get fresh config
|
|
129
|
+
const config = this.mcpConfigManager.load();
|
|
130
|
+
const servers = config.servers.filter(s => s.enabled !== false);
|
|
131
|
+
if (servers.length === 0) {
|
|
132
|
+
return '⚠️ No enabled MCP servers in configuration.';
|
|
133
|
+
}
|
|
134
|
+
// Refresh servers
|
|
135
|
+
await this.mcpServerManager.refresh(servers);
|
|
136
|
+
// Re-register tools
|
|
137
|
+
for (const serverConfig of servers) {
|
|
138
|
+
try {
|
|
139
|
+
if (this.mcpServerManager.isConnected(serverConfig.name)) {
|
|
140
|
+
const tools = await this.mcpServerManager.listTools(serverConfig.name);
|
|
141
|
+
const wrappedTools = createMCPToolWrappers(serverConfig.name, tools, this.mcpServerManager);
|
|
142
|
+
for (const tool of wrappedTools) {
|
|
143
|
+
this.toolRegistry.register(tool);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
// Continue with other servers
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
const statuses = this.mcpServerManager.getStatus();
|
|
152
|
+
const connectedCount = statuses.filter(s => s.status === 'connected').length;
|
|
153
|
+
const errorCount = statuses.filter(s => s.status === 'error').length;
|
|
154
|
+
return `✅ MCP servers refreshed!\n\n` +
|
|
155
|
+
`Connected: ${connectedCount}\n` +
|
|
156
|
+
`Errors: ${errorCount}\n\n` +
|
|
157
|
+
`Use \`/mcp status\` for details.`;
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
return `❌ Failed to refresh MCP servers: ${error.message}`;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
handleConfig() {
|
|
164
|
+
const configPath = this.mcpConfigManager.getConfigPath();
|
|
165
|
+
return `## MCP Configuration\n\n` +
|
|
166
|
+
`📄 **Configuration file**: \`${configPath}\`\n\n` +
|
|
167
|
+
`### Example Configuration\n\n` +
|
|
168
|
+
'```json\n' +
|
|
169
|
+
JSON.stringify({
|
|
170
|
+
mcp_servers: {
|
|
171
|
+
'shadcn': {
|
|
172
|
+
command: 'npx',
|
|
173
|
+
args: ['shadcn@latest', 'mcp']
|
|
174
|
+
},
|
|
175
|
+
'filesystem': {
|
|
176
|
+
command: 'npx',
|
|
177
|
+
args: ['-y', '@modelcontextprotocol/server-filesystem', '/path/to/directory']
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}, null, 2) + '\n' +
|
|
181
|
+
'```\n\n' +
|
|
182
|
+
'### Configuration Fields\n\n' +
|
|
183
|
+
'- Server key (e.g., `shadcn`, `filesystem`): Unique server identifier\n' +
|
|
184
|
+
'- `command`: Command to start the server (required)\n' +
|
|
185
|
+
'- `args`: Command arguments (optional)\n' +
|
|
186
|
+
'- `env`: Environment variables (optional)\n' +
|
|
187
|
+
'- `enabled`: Enable/disable server (default: true)\n\n' +
|
|
188
|
+
'### Next Steps\n\n' +
|
|
189
|
+
'1. Edit the configuration file\n' +
|
|
190
|
+
'2. Add your MCP servers to `mcp_servers`\n' +
|
|
191
|
+
'3. Run `/mcp refresh` to load them\n' +
|
|
192
|
+
'4. Use `/mcp status` to verify connections\n' +
|
|
193
|
+
'5. Use `/mcp list` to see available tools';
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=mcp-command-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-command-handler.js","sourceRoot":"","sources":["../../src/mcp/mcp-command-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,MAAM,OAAO,iBAAiB;IAEd;IACA;IACA;IAHZ,YACY,gBAAkC,EAClC,gBAAkC,EAClC,YAA0B;QAF1B,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,iBAAY,GAAZ,YAAY,CAAc;IAClC,CAAC;IAEL,KAAK,CAAC,aAAa;QACf,IAAI,CAAC;YACD,qCAAqC;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;YAEnD,KAAK,MAAM,YAAY,IAAI,OAAO,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;oBAElD,sCAAsC;oBACtC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;oBACvE,MAAM,YAAY,GAAG,qBAAqB,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBAE5F,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;wBAC9B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACrC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,uDAAuD;gBAC3D,CAAC;YACL,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAc;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;QAE1C,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO,uDAAuD;gBAC1D,4BAA4B;gBAC5B,2DAA2D;gBAC3D,8DAA8D;gBAC9D,2DAA2D;gBAC3D,2DAA2D;gBAC3D,6CAA6C;gBAC7C,4DAA4D;gBAC5D,uCAAuC,CAAC;QAChD,CAAC;QAED,QAAQ,UAAU,EAAE,CAAC;YACjB,KAAK,MAAM;gBACP,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACzC,KAAK,MAAM;gBACP,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACxC,KAAK,QAAQ;gBACT,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACvC,KAAK,QAAQ;gBACT,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;YAC/B,KAAK,SAAS;gBACV,OAAO,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YACtC,KAAK,QAAQ;gBACT,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;YAC/B;gBACI,OAAO,6BAA6B,UAAU,uBAAuB,CAAC;QAC9E,CAAC;IACL,CAAC;IAEO,UAAU,CAAC,QAAiB,EAAE,UAAmB;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC;QAEtD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,kCAAkC;gBACrC,yBAAyB,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,QAAQ;gBACtE,6EAA6E;gBAC7E,iDAAiD,CAAC;QAC1D,CAAC;QAED,IAAI,MAAM,GAAG,8BAA8B,CAAC;QAE5C,KAAK,MAAM,YAAY,IAAI,OAAO,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;YAElC,MAAM,UAAU,GAAG,MAAM,EAAE,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACrD,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAE5C,MAAM,IAAI,OAAO,UAAU,IAAI,YAAY,CAAC,IAAI,MAAM,CAAC;YACvD,MAAM,IAAI,oBAAoB,YAAY,CAAC,OAAO,MAAM,CAAC;YACzD,MAAM,IAAI,iBAAiB,MAAM,EAAE,MAAM,IAAI,SAAS,IAAI,CAAC;YAC3D,MAAM,IAAI,gBAAgB,KAAK,CAAC,MAAM,MAAM,CAAC;YAE7C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACvB,MAAM,IAAI,SAAS,IAAI,CAAC,IAAI,IAAI,CAAC;oBACjC,IAAI,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;wBAC/B,MAAM,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;oBACtC,CAAC;oBACD,MAAM,IAAI,IAAI,CAAC;oBAEf,IAAI,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;wBACjC,MAAM,IAAI,eAAe,CAAC;wBAC1B,MAAM,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC;wBACxF,MAAM,IAAI,WAAW,CAAC;oBAC1B,CAAC;gBACL,CAAC;gBACD,MAAM,IAAI,IAAI,CAAC;YACnB,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,YAAY;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;QAEnD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,kCAAkC;gBACrC,mEAAmE;gBACnE,yCAAyC,CAAC;QAClD,CAAC;QAED,IAAI,MAAM,GAAG,0BAA0B,CAAC;QAExC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC9C,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC7B,MAAM,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAEpD,MAAM,IAAI,GAAG,IAAI,MAAM,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC;YAE3D,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,aAAa,MAAM,CAAC,KAAK,IAAI,CAAC;YAC5C,CAAC;YAED,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACjD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;gBAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;gBACnC,MAAM,IAAI,cAAc,OAAO,KAAK,OAAO,KAAK,CAAC;YACrD,CAAC;YAED,MAAM,IAAI,aAAa,MAAM,CAAC,KAAK,CAAC,MAAM,MAAM,CAAC;QACrD,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,aAAa;QACvB,IAAI,CAAC;YACD,mBAAmB;YACnB,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;YAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC;YAEhE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,6CAA6C,CAAC;YACzD,CAAC;YAED,kBAAkB;YAClB,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAE7C,oBAAoB;YACpB,KAAK,MAAM,YAAY,IAAI,OAAO,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACD,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;wBACvD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;wBACvE,MAAM,YAAY,GAAG,qBAAqB,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;wBAE5F,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;4BAC9B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;wBACrC,CAAC;oBACL,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,8BAA8B;gBAClC,CAAC;YACL,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;YACnD,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;YAC7E,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;YAErE,OAAO,8BAA8B;gBACjC,cAAc,cAAc,IAAI;gBAChC,WAAW,UAAU,MAAM;gBAC3B,kCAAkC,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,OAAO,oCAAoC,KAAK,CAAC,OAAO,EAAE,CAAC;QAC/D,CAAC;IACL,CAAC;IAEO,YAAY;QAChB,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC;QAEzD,OAAO,0BAA0B;YAC7B,gCAAgC,UAAU,QAAQ;YAClD,+BAA+B;YAC/B,WAAW;YACX,IAAI,CAAC,SAAS,CAAC;gBACX,WAAW,EAAE;oBACT,QAAQ,EAAE;wBACN,OAAO,EAAE,KAAK;wBACd,IAAI,EAAE,CAAC,eAAe,EAAE,KAAK,CAAC;qBACjC;oBACD,YAAY,EAAE;wBACV,OAAO,EAAE,KAAK;wBACd,IAAI,EAAE,CAAC,IAAI,EAAE,yCAAyC,EAAE,oBAAoB,CAAC;qBAChF;iBACJ;aACJ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI;YAClB,SAAS;YACT,8BAA8B;YAC9B,yEAAyE;YACzE,uDAAuD;YACvD,0CAA0C;YAC1C,6CAA6C;YAC7C,wDAAwD;YACxD,oBAAoB;YACpB,kCAAkC;YAClC,4CAA4C;YAC5C,sCAAsC;YACtC,8CAA8C;YAC9C,2CAA2C,CAAC;IACpD,CAAC;CACJ"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
2
|
+
import { MCPServerConfig } from '../config/mcp-config-manager.js';
|
|
3
|
+
export interface MCPTool {
|
|
4
|
+
name: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
inputSchema?: any;
|
|
7
|
+
}
|
|
8
|
+
export interface MCPServerStatus {
|
|
9
|
+
name: string;
|
|
10
|
+
status: 'connected' | 'disconnected' | 'error' | 'connecting';
|
|
11
|
+
tools: MCPTool[];
|
|
12
|
+
error?: string;
|
|
13
|
+
uptime?: number;
|
|
14
|
+
}
|
|
15
|
+
export declare class MCPServerManager {
|
|
16
|
+
private servers;
|
|
17
|
+
private statuses;
|
|
18
|
+
private startTimes;
|
|
19
|
+
connect(config: MCPServerConfig): Promise<void>;
|
|
20
|
+
disconnect(name: string): Promise<void>;
|
|
21
|
+
disconnectAll(): Promise<void>;
|
|
22
|
+
getClient(name: string): Client | undefined;
|
|
23
|
+
getStatus(serverName?: string): MCPServerStatus[];
|
|
24
|
+
private enrichStatus;
|
|
25
|
+
listTools(serverName?: string): Promise<MCPTool[]>;
|
|
26
|
+
callTool(serverName: string, toolName: string, args: any): Promise<any>;
|
|
27
|
+
refresh(configs: MCPServerConfig[]): Promise<void>;
|
|
28
|
+
isConnected(serverName: string): boolean;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=mcp-server-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server-manager.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp-server-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAGnE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,GAAG,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,cAAc,GAAG,OAAO,GAAG,YAAY,CAAC;IAC9D,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,gBAAgB;IACzB,OAAO,CAAC,OAAO,CAA8F;IAC7G,OAAO,CAAC,QAAQ,CAA2C;IAC3D,OAAO,CAAC,UAAU,CAAkC;IAE9C,OAAO,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA6E/C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BvC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAOpC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI3C,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,eAAe,EAAE;IASjD,OAAO,CAAC,YAAY;IAWd,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAgBlD,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAcvE,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAcxD,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;CAI3C"}
|