@1mcp/agent 0.16.0 ā 0.18.0
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/README.md +103 -11
- package/build/auth/sdkOAuthClientProvider.d.ts.map +1 -1
- package/build/auth/sdkOAuthClientProvider.js +1 -1
- package/build/auth/sdkOAuthClientProvider.js.map +1 -1
- package/build/commands/app/backups.d.ts +17 -0
- package/build/commands/app/backups.d.ts.map +1 -0
- package/build/commands/app/backups.js +162 -0
- package/build/commands/app/backups.js.map +1 -0
- package/build/commands/app/consolidate.d.ts +21 -0
- package/build/commands/app/consolidate.d.ts.map +1 -0
- package/build/commands/app/consolidate.js +383 -0
- package/build/commands/app/consolidate.js.map +1 -0
- package/build/commands/app/discover.d.ts +16 -0
- package/build/commands/app/discover.d.ts.map +1 -0
- package/build/commands/app/discover.js +79 -0
- package/build/commands/app/discover.js.map +1 -0
- package/build/commands/app/index.d.ts +12 -0
- package/build/commands/app/index.d.ts.map +1 -0
- package/build/commands/app/index.js +274 -0
- package/build/commands/app/index.js.map +1 -0
- package/build/commands/app/list.d.ts +16 -0
- package/build/commands/app/list.d.ts.map +1 -0
- package/build/commands/app/list.js +95 -0
- package/build/commands/app/list.js.map +1 -0
- package/build/commands/app/restore.d.ts +21 -0
- package/build/commands/app/restore.d.ts.map +1 -0
- package/build/commands/app/restore.js +265 -0
- package/build/commands/app/restore.js.map +1 -0
- package/build/commands/app/status.d.ts +16 -0
- package/build/commands/app/status.d.ts.map +1 -0
- package/build/commands/app/status.js +224 -0
- package/build/commands/app/status.js.map +1 -0
- package/build/commands/mcp/add.d.ts +19 -0
- package/build/commands/mcp/add.d.ts.map +1 -0
- package/build/commands/mcp/add.js +135 -0
- package/build/commands/mcp/add.js.map +1 -0
- package/build/commands/mcp/enable.d.ts +13 -0
- package/build/commands/mcp/enable.d.ts.map +1 -0
- package/build/commands/mcp/enable.js +100 -0
- package/build/commands/mcp/enable.js.map +1 -0
- package/build/commands/mcp/index.d.ts +12 -0
- package/build/commands/mcp/index.d.ts.map +1 -0
- package/build/commands/mcp/index.js +351 -0
- package/build/commands/mcp/index.js.map +1 -0
- package/build/commands/mcp/list.d.ts +11 -0
- package/build/commands/mcp/list.d.ts.map +1 -0
- package/build/commands/mcp/list.js +144 -0
- package/build/commands/mcp/list.js.map +1 -0
- package/build/commands/mcp/remove.d.ts +10 -0
- package/build/commands/mcp/remove.d.ts.map +1 -0
- package/build/commands/mcp/remove.js +89 -0
- package/build/commands/mcp/remove.js.map +1 -0
- package/build/commands/mcp/status.d.ts +10 -0
- package/build/commands/mcp/status.d.ts.map +1 -0
- package/build/commands/mcp/status.js +243 -0
- package/build/commands/mcp/status.js.map +1 -0
- package/build/commands/mcp/update.d.ts +18 -0
- package/build/commands/mcp/update.d.ts.map +1 -0
- package/build/commands/mcp/update.js +157 -0
- package/build/commands/mcp/update.js.map +1 -0
- package/build/commands/mcp/utils/configUtils.d.ts +64 -0
- package/build/commands/mcp/utils/configUtils.d.ts.map +1 -0
- package/build/commands/mcp/utils/configUtils.js +266 -0
- package/build/commands/mcp/utils/configUtils.js.map +1 -0
- package/build/commands/mcp/utils/doubleHyphenParser.d.ts +32 -0
- package/build/commands/mcp/utils/doubleHyphenParser.d.ts.map +1 -0
- package/build/commands/mcp/utils/doubleHyphenParser.js +61 -0
- package/build/commands/mcp/utils/doubleHyphenParser.js.map +1 -0
- package/build/commands/mcp/utils/validation.d.ts +33 -0
- package/build/commands/mcp/utils/validation.d.ts.map +1 -0
- package/build/commands/mcp/utils/validation.js +235 -0
- package/build/commands/mcp/utils/validation.js.map +1 -0
- package/build/constants.d.ts +11 -2
- package/build/constants.d.ts.map +1 -1
- package/build/constants.js +18 -5
- package/build/constants.js.map +1 -1
- package/build/core/capabilities/asyncLoadingOrchestrator.d.ts +96 -0
- package/build/core/capabilities/asyncLoadingOrchestrator.d.ts.map +1 -0
- package/build/core/capabilities/asyncLoadingOrchestrator.js +256 -0
- package/build/core/capabilities/asyncLoadingOrchestrator.js.map +1 -0
- package/build/core/capabilities/capabilityAggregator.d.ts +114 -0
- package/build/core/capabilities/capabilityAggregator.d.ts.map +1 -0
- package/build/core/capabilities/capabilityAggregator.js +234 -0
- package/build/core/capabilities/capabilityAggregator.js.map +1 -0
- package/build/core/client/clientManager.d.ts +29 -0
- package/build/core/client/clientManager.d.ts.map +1 -1
- package/build/core/client/clientManager.js +151 -2
- package/build/core/client/clientManager.js.map +1 -1
- package/build/core/loading/loadingStateTracker.d.ts +128 -0
- package/build/core/loading/loadingStateTracker.d.ts.map +1 -0
- package/build/core/loading/loadingStateTracker.js +211 -0
- package/build/core/loading/loadingStateTracker.js.map +1 -0
- package/build/core/loading/mcpLoadingManager.d.ts +156 -0
- package/build/core/loading/mcpLoadingManager.d.ts.map +1 -0
- package/build/core/loading/mcpLoadingManager.js +352 -0
- package/build/core/loading/mcpLoadingManager.js.map +1 -0
- package/build/core/notifications/notificationManager.d.ts +111 -0
- package/build/core/notifications/notificationManager.d.ts.map +1 -0
- package/build/core/notifications/notificationManager.js +232 -0
- package/build/core/notifications/notificationManager.js.map +1 -0
- package/build/core/server/agentConfig.d.ts +50 -0
- package/build/core/server/agentConfig.d.ts.map +1 -1
- package/build/core/server/agentConfig.js +68 -1
- package/build/core/server/agentConfig.js.map +1 -1
- package/build/core/server/serverManager.d.ts +1 -0
- package/build/core/server/serverManager.d.ts.map +1 -1
- package/build/core/server/serverManager.js +3 -0
- package/build/core/server/serverManager.js.map +1 -1
- package/build/core/types/transport.d.ts +2 -2
- package/build/index.js +133 -34
- package/build/index.js.map +1 -1
- package/build/logger/logger.d.ts +9 -0
- package/build/logger/logger.d.ts.map +1 -1
- package/build/logger/logger.js +49 -0
- package/build/logger/logger.js.map +1 -1
- package/build/logger/secureLogger.d.ts +22 -0
- package/build/logger/secureLogger.d.ts.map +1 -0
- package/build/logger/secureLogger.js +120 -0
- package/build/logger/secureLogger.js.map +1 -0
- package/build/server.d.ts +23 -2
- package/build/server.d.ts.map +1 -1
- package/build/server.js +83 -10
- package/build/server.js.map +1 -1
- package/build/services/configReloadService.d.ts +8 -0
- package/build/services/configReloadService.d.ts.map +1 -1
- package/build/services/configReloadService.js +68 -0
- package/build/services/configReloadService.js.map +1 -1
- package/build/transport/http/middlewares/mcpAvailabilityMiddleware.d.ts +79 -0
- package/build/transport/http/middlewares/mcpAvailabilityMiddleware.d.ts.map +1 -0
- package/build/transport/http/middlewares/mcpAvailabilityMiddleware.js +306 -0
- package/build/transport/http/middlewares/mcpAvailabilityMiddleware.js.map +1 -0
- package/build/transport/http/routes/healthRoutes.d.ts +2 -1
- package/build/transport/http/routes/healthRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/healthRoutes.js +170 -1
- package/build/transport/http/routes/healthRoutes.js.map +1 -1
- package/build/transport/http/routes/sseRoutes.d.ts +2 -1
- package/build/transport/http/routes/sseRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/sseRoutes.js +13 -1
- package/build/transport/http/routes/sseRoutes.js.map +1 -1
- package/build/transport/http/routes/streamableHttpRoutes.d.ts +2 -1
- package/build/transport/http/routes/streamableHttpRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/streamableHttpRoutes.js +13 -1
- package/build/transport/http/routes/streamableHttpRoutes.js.map +1 -1
- package/build/transport/http/server.d.ts +7 -1
- package/build/transport/http/server.d.ts.map +1 -1
- package/build/transport/http/server.js +15 -4
- package/build/transport/http/server.js.map +1 -1
- package/build/transport/transportFactory.d.ts +4 -0
- package/build/transport/transportFactory.d.ts.map +1 -1
- package/build/transport/transportFactory.js +1 -1
- package/build/transport/transportFactory.js.map +1 -1
- package/build/utils/appDiscovery.d.ts +75 -0
- package/build/utils/appDiscovery.d.ts.map +1 -0
- package/build/utils/appDiscovery.js +358 -0
- package/build/utils/appDiscovery.js.map +1 -0
- package/build/utils/appPresets.d.ts +88 -0
- package/build/utils/appPresets.d.ts.map +1 -0
- package/build/utils/appPresets.js +430 -0
- package/build/utils/appPresets.js.map +1 -0
- package/build/utils/backupManager.d.ts +61 -0
- package/build/utils/backupManager.d.ts.map +1 -0
- package/build/utils/backupManager.js +314 -0
- package/build/utils/backupManager.js.map +1 -0
- package/build/utils/urlDetection.d.ts +35 -0
- package/build/utils/urlDetection.d.ts.map +1 -0
- package/build/utils/urlDetection.js +115 -0
- package/build/utils/urlDetection.js.map +1 -0
- package/build/utils/validationHelpers.d.ts +62 -0
- package/build/utils/validationHelpers.d.ts.map +1 -0
- package/build/utils/validationHelpers.js +252 -0
- package/build/utils/validationHelpers.js.map +1 -0
- package/package.json +9 -2
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import readline from 'readline';
|
|
4
|
+
import { getServer1mcpUrl, validateServer1mcpUrl } from '../../utils/urlDetection.js';
|
|
5
|
+
import { discoverAppConfigs, handleMultipleConfigs, extractAndFilterServers, generateAppConfig, checkConsolidationStatus, } from '../../utils/appDiscovery.js';
|
|
6
|
+
import { isAppSupported, isAppConfigurable, generateManualInstructions, getAppPreset, showPlatformWarningIfNeeded, } from '../../utils/appPresets.js';
|
|
7
|
+
import { validateOperation, generateOperationPreview } from '../../utils/validationHelpers.js';
|
|
8
|
+
import { createBackup, withFileLock } from '../../utils/backupManager.js';
|
|
9
|
+
import { getAppBackupDir } from '../../constants.js';
|
|
10
|
+
import { McpConfigManager } from '../../config/mcpConfigManager.js';
|
|
11
|
+
import { setServer } from '../mcp/utils/configUtils.js';
|
|
12
|
+
/**
|
|
13
|
+
* Main consolidate command handler
|
|
14
|
+
*/
|
|
15
|
+
export async function consolidateCommand(options) {
|
|
16
|
+
const appNames = options['app-name'];
|
|
17
|
+
// Check if app names were provided
|
|
18
|
+
if (!appNames || appNames.length === 0) {
|
|
19
|
+
console.error('ā Error: No application names provided.');
|
|
20
|
+
console.log('Please specify at least one application to consolidate.');
|
|
21
|
+
console.log('Example: npx @1mcp/agent app consolidate claude-desktop');
|
|
22
|
+
console.log('Use "npx @1mcp/agent app list" to see supported applications.');
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
// Show platform warning if needed
|
|
26
|
+
showPlatformWarningIfNeeded();
|
|
27
|
+
console.log('š Starting MCP server consolidation...\n');
|
|
28
|
+
// Validate all app names first
|
|
29
|
+
const invalidApps = appNames.filter((app) => !isAppSupported(app));
|
|
30
|
+
if (invalidApps.length > 0) {
|
|
31
|
+
console.error(`ā Unsupported applications: ${invalidApps.join(', ')}`);
|
|
32
|
+
console.log('Use "npx @1mcp/agent app list" to see supported applications.');
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
// Get 1mcp server URL
|
|
36
|
+
const serverUrl = await getServer1mcpUrl(options.url);
|
|
37
|
+
console.log(`š Using 1mcp server: ${serverUrl}`);
|
|
38
|
+
// Validate server connectivity (unless force mode)
|
|
39
|
+
if (!options.force) {
|
|
40
|
+
const connectivityCheck = await validateServer1mcpUrl(serverUrl);
|
|
41
|
+
if (!connectivityCheck.valid) {
|
|
42
|
+
console.error(`ā Cannot connect to 1mcp server: Server connectivity issue`);
|
|
43
|
+
console.log('Make sure the 1mcp server is running or use --force to skip validation.');
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
console.log('ā
1mcp server connectivity verified\n');
|
|
47
|
+
}
|
|
48
|
+
const results = [];
|
|
49
|
+
// Process each app
|
|
50
|
+
for (const appName of appNames) {
|
|
51
|
+
console.log(`\nš Processing ${getAppPreset(appName)?.displayName || appName}...`);
|
|
52
|
+
try {
|
|
53
|
+
const result = await consolidateApp(appName, serverUrl, options);
|
|
54
|
+
results.push(result);
|
|
55
|
+
// Display result
|
|
56
|
+
if (result.status === 'success') {
|
|
57
|
+
console.log(`ā
${result.message}`);
|
|
58
|
+
if (result.serversImported !== undefined) {
|
|
59
|
+
console.log(`š Imported ${result.serversImported} MCP servers`);
|
|
60
|
+
}
|
|
61
|
+
if (result.backupPath) {
|
|
62
|
+
console.log(`š¾ Backup created: ${result.backupPath}`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
else if (result.status === 'manual') {
|
|
66
|
+
console.log(`š§ ${result.message}`);
|
|
67
|
+
if (result.manualInstructions) {
|
|
68
|
+
console.log(result.manualInstructions);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else if (result.status === 'skipped') {
|
|
72
|
+
console.log(`āļø ${result.message}`);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
console.error(`ā ${result.message}`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
const errorResult = {
|
|
80
|
+
app: appName,
|
|
81
|
+
status: 'failed',
|
|
82
|
+
message: `Failed to consolidate ${appName}: ${error.message}`,
|
|
83
|
+
};
|
|
84
|
+
results.push(errorResult);
|
|
85
|
+
console.error(`ā ${errorResult.message}`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
// Final summary
|
|
89
|
+
console.log('\n' + '='.repeat(60));
|
|
90
|
+
console.log('š Consolidation Summary:');
|
|
91
|
+
const successful = results.filter((r) => r.status === 'success');
|
|
92
|
+
const manual = results.filter((r) => r.status === 'manual');
|
|
93
|
+
const failed = results.filter((r) => r.status === 'failed');
|
|
94
|
+
const skipped = results.filter((r) => r.status === 'skipped');
|
|
95
|
+
console.log(`ā
Successful: ${successful.length}`);
|
|
96
|
+
console.log(`š§ Manual setup required: ${manual.length}`);
|
|
97
|
+
console.log(`āļø Skipped: ${skipped.length}`);
|
|
98
|
+
console.log(`ā Failed: ${failed.length}`);
|
|
99
|
+
if (successful.length > 0) {
|
|
100
|
+
console.log('\nš Restart the following applications to use consolidated configuration:');
|
|
101
|
+
successful.forEach((result) => {
|
|
102
|
+
console.log(` - ${getAppPreset(result.app)?.displayName || result.app}`);
|
|
103
|
+
});
|
|
104
|
+
console.log('\nš” To undo consolidation, use:');
|
|
105
|
+
console.log(' npx @1mcp/agent app restore <app-name>');
|
|
106
|
+
}
|
|
107
|
+
if (failed.length > 0) {
|
|
108
|
+
process.exit(1);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Consolidate a single application
|
|
113
|
+
*/
|
|
114
|
+
async function consolidateApp(appName, serverUrl, options) {
|
|
115
|
+
// Check if app is already consolidated (unless force mode)
|
|
116
|
+
if (!options.force) {
|
|
117
|
+
const consolidationStatus = await checkConsolidationStatus(appName);
|
|
118
|
+
if (consolidationStatus.isConsolidated) {
|
|
119
|
+
return {
|
|
120
|
+
app: appName,
|
|
121
|
+
status: 'skipped',
|
|
122
|
+
message: `Already consolidated to ${consolidationStatus.consolidatedUrl}`,
|
|
123
|
+
serversImported: 0,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
// Check if app is configurable
|
|
128
|
+
if (!isAppConfigurable(appName)) {
|
|
129
|
+
// Manual setup required
|
|
130
|
+
const instructions = generateManualInstructions(appName, serverUrl);
|
|
131
|
+
return {
|
|
132
|
+
app: appName,
|
|
133
|
+
status: 'manual',
|
|
134
|
+
message: `${getAppPreset(appName)?.displayName || appName} requires manual configuration`,
|
|
135
|
+
manualInstructions: instructions,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
// Manual-only mode
|
|
139
|
+
if (options['manual-only']) {
|
|
140
|
+
const instructions = generateManualInstructions(appName, serverUrl);
|
|
141
|
+
return {
|
|
142
|
+
app: appName,
|
|
143
|
+
status: 'manual',
|
|
144
|
+
message: `Manual setup instructions for ${getAppPreset(appName)?.displayName || appName}`,
|
|
145
|
+
manualInstructions: instructions,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
// Discover configurations
|
|
149
|
+
const discovery = await discoverAppConfigs(appName);
|
|
150
|
+
if (discovery.configs.length === 0) {
|
|
151
|
+
return {
|
|
152
|
+
app: appName,
|
|
153
|
+
status: 'skipped',
|
|
154
|
+
message: `No configuration files found for ${getAppPreset(appName)?.displayName || appName}`,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
// Handle multiple configs
|
|
158
|
+
const strategy = handleMultipleConfigs(discovery);
|
|
159
|
+
if (strategy.action === 'none') {
|
|
160
|
+
return {
|
|
161
|
+
app: appName,
|
|
162
|
+
status: 'skipped',
|
|
163
|
+
message: `No valid configuration found for ${getAppPreset(appName)?.displayName || appName}`,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
let targetConfig = strategy.target;
|
|
167
|
+
// If multiple configs and not in yes mode, ask user to choose
|
|
168
|
+
if (strategy.action === 'choose' && !options.yes && !options['dry-run']) {
|
|
169
|
+
targetConfig = await promptUserChoice(strategy.options);
|
|
170
|
+
}
|
|
171
|
+
// Extract servers
|
|
172
|
+
const servers = extractAndFilterServers(targetConfig.content, getAppPreset(appName)?.configFormat);
|
|
173
|
+
if (servers.length === 0 && !options.force) {
|
|
174
|
+
return {
|
|
175
|
+
app: appName,
|
|
176
|
+
status: 'skipped',
|
|
177
|
+
message: `No MCP servers found in ${getAppPreset(appName)?.displayName || appName} configuration`,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
// Validate operation
|
|
181
|
+
if (!options.force) {
|
|
182
|
+
const validation = await validateOperation(targetConfig.path, targetConfig.content, serverUrl);
|
|
183
|
+
if (!validation.canProceed) {
|
|
184
|
+
const errors = [
|
|
185
|
+
...validation.configValidation.errors,
|
|
186
|
+
...validation.permissionValidation.errors,
|
|
187
|
+
...validation.connectivityValidation.errors,
|
|
188
|
+
];
|
|
189
|
+
throw new Error(`Validation failed: ${errors.join(', ')}`);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
// Generate preview with correct backup path
|
|
193
|
+
const timestamp = Date.now();
|
|
194
|
+
const dateStr = new Date(timestamp).toISOString().replace(/[:.-]/g, '').slice(0, 15); // YYYYMMDDTHHMMSS
|
|
195
|
+
const appBackupDir = getAppBackupDir(appName);
|
|
196
|
+
const backupFileName = `${dateStr}_consolidate.backup`;
|
|
197
|
+
const backupPath = path.join(appBackupDir, backupFileName);
|
|
198
|
+
const preview = generateOperationPreview(appName, targetConfig.path, servers.map((s) => s.name), serverUrl, backupPath);
|
|
199
|
+
// Show preview and get confirmation
|
|
200
|
+
if (!options.yes && !options['dry-run']) {
|
|
201
|
+
const confirmed = await confirmOperation(preview);
|
|
202
|
+
if (!confirmed) {
|
|
203
|
+
return {
|
|
204
|
+
app: appName,
|
|
205
|
+
status: 'skipped',
|
|
206
|
+
message: `Consolidation cancelled by user for ${getAppPreset(appName)?.displayName || appName}`,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
// Dry run mode - just show what would happen
|
|
211
|
+
if (options['dry-run']) {
|
|
212
|
+
console.log('\nš Dry Run Preview:');
|
|
213
|
+
console.log(`App: ${getAppPreset(appName)?.displayName || appName}`);
|
|
214
|
+
console.log(`Config: ${targetConfig.path}`);
|
|
215
|
+
console.log(`Servers to import: ${servers.map((s) => s.name).join(', ') || 'none'}`);
|
|
216
|
+
console.log(`Replacement URL: ${serverUrl}`);
|
|
217
|
+
console.log(`Backup would be created: ${backupPath}`);
|
|
218
|
+
return {
|
|
219
|
+
app: appName,
|
|
220
|
+
status: 'success',
|
|
221
|
+
message: `Dry run completed for ${getAppPreset(appName)?.displayName || appName}`,
|
|
222
|
+
serversImported: servers.length,
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
// Create backup
|
|
226
|
+
const backup = createBackup(targetConfig.path, appName, 'consolidate', servers.length);
|
|
227
|
+
// Backup-only mode
|
|
228
|
+
if (options['backup-only']) {
|
|
229
|
+
return {
|
|
230
|
+
app: appName,
|
|
231
|
+
status: 'success',
|
|
232
|
+
message: `Backup created for ${getAppPreset(appName)?.displayName || appName}`,
|
|
233
|
+
backupPath: backup.backupPath,
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
// Perform consolidation with file locking
|
|
237
|
+
await withFileLock(targetConfig.path, async () => {
|
|
238
|
+
try {
|
|
239
|
+
// Import servers to 1mcp
|
|
240
|
+
if (servers.length > 0) {
|
|
241
|
+
await importServersTo1mcp(servers);
|
|
242
|
+
}
|
|
243
|
+
// Generate new config
|
|
244
|
+
const newConfig = generateAppConfig(appName, serverUrl);
|
|
245
|
+
// Write new configuration
|
|
246
|
+
fs.writeFileSync(targetConfig.path, JSON.stringify(newConfig, null, 2));
|
|
247
|
+
}
|
|
248
|
+
catch (error) {
|
|
249
|
+
// Rollback on failure
|
|
250
|
+
fs.copyFileSync(backup.backupPath, backup.originalPath);
|
|
251
|
+
throw error;
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
return {
|
|
255
|
+
app: appName,
|
|
256
|
+
status: 'success',
|
|
257
|
+
message: `Successfully consolidated ${getAppPreset(appName)?.displayName || appName}`,
|
|
258
|
+
serversImported: servers.length,
|
|
259
|
+
backupPath: backup.backupPath,
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Convert MCPServerConfig to MCPServerParams format
|
|
264
|
+
*/
|
|
265
|
+
function convertToMCPServerParams(server) {
|
|
266
|
+
const params = {
|
|
267
|
+
disabled: false,
|
|
268
|
+
};
|
|
269
|
+
// Determine transport type and set appropriate parameters
|
|
270
|
+
if (server.command) {
|
|
271
|
+
// Stdio transport
|
|
272
|
+
params.type = 'stdio';
|
|
273
|
+
params.command = server.command;
|
|
274
|
+
if (server.args && server.args.length > 0) {
|
|
275
|
+
params.args = server.args;
|
|
276
|
+
}
|
|
277
|
+
if (server.env) {
|
|
278
|
+
params.env = server.env;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
else if (server.url) {
|
|
282
|
+
// HTTP transport - determine if SSE or regular HTTP
|
|
283
|
+
if (server.url.includes('/sse') || server.url.includes('text/event-stream')) {
|
|
284
|
+
params.type = 'sse';
|
|
285
|
+
}
|
|
286
|
+
else {
|
|
287
|
+
params.type = 'http';
|
|
288
|
+
}
|
|
289
|
+
params.url = server.url;
|
|
290
|
+
}
|
|
291
|
+
else {
|
|
292
|
+
throw new Error(`Invalid server configuration: ${server.name} has neither command nor url`);
|
|
293
|
+
}
|
|
294
|
+
return params;
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Import MCP servers to 1mcp configuration
|
|
298
|
+
*/
|
|
299
|
+
async function importServersTo1mcp(servers) {
|
|
300
|
+
const mcpConfig = McpConfigManager.getInstance();
|
|
301
|
+
// Get current transport config
|
|
302
|
+
const currentConfig = mcpConfig.getTransportConfig();
|
|
303
|
+
for (const server of servers) {
|
|
304
|
+
// Check if server already exists
|
|
305
|
+
if (currentConfig[server.name]) {
|
|
306
|
+
console.log(`ā ļø Server "${server.name}" already exists in 1mcp config - skipping`);
|
|
307
|
+
continue;
|
|
308
|
+
}
|
|
309
|
+
try {
|
|
310
|
+
// Convert to proper MCPServerParams format
|
|
311
|
+
const serverParams = convertToMCPServerParams(server);
|
|
312
|
+
// Add server to configuration
|
|
313
|
+
setServer(server.name, serverParams);
|
|
314
|
+
console.log(`ā
Imported server: ${server.name}`);
|
|
315
|
+
// Log what was imported
|
|
316
|
+
if (serverParams.type === 'stdio') {
|
|
317
|
+
console.log(` Type: stdio`);
|
|
318
|
+
console.log(` Command: ${serverParams.command}`);
|
|
319
|
+
if (serverParams.args)
|
|
320
|
+
console.log(` Args: ${serverParams.args.join(' ')}`);
|
|
321
|
+
}
|
|
322
|
+
else if (serverParams.type === 'http' || serverParams.type === 'sse') {
|
|
323
|
+
console.log(` Type: ${serverParams.type}`);
|
|
324
|
+
console.log(` URL: ${serverParams.url}`);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
catch (error) {
|
|
328
|
+
console.error(`ā Failed to import server "${server.name}": ${error.message}`);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Prompt user to choose from multiple configurations
|
|
334
|
+
*/
|
|
335
|
+
async function promptUserChoice(configs) {
|
|
336
|
+
console.log('\nš Multiple configurations found:');
|
|
337
|
+
configs.forEach((config, index) => {
|
|
338
|
+
console.log(`${index + 1}. ${config.path} (${config.level}, ${config.servers.length} servers)`);
|
|
339
|
+
});
|
|
340
|
+
const rl = readline.createInterface({
|
|
341
|
+
input: process.stdin,
|
|
342
|
+
output: process.stdout,
|
|
343
|
+
});
|
|
344
|
+
return new Promise((resolve) => {
|
|
345
|
+
rl.question('\nWhich configuration would you like to use? (number): ', (answer) => {
|
|
346
|
+
rl.close();
|
|
347
|
+
const choice = parseInt(answer, 10);
|
|
348
|
+
if (choice >= 1 && choice <= configs.length) {
|
|
349
|
+
resolve(configs[choice - 1]);
|
|
350
|
+
}
|
|
351
|
+
else {
|
|
352
|
+
console.log('Invalid choice, using first option.');
|
|
353
|
+
resolve(configs[0]);
|
|
354
|
+
}
|
|
355
|
+
});
|
|
356
|
+
});
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Confirm operation with user
|
|
360
|
+
*/
|
|
361
|
+
async function confirmOperation(preview) {
|
|
362
|
+
console.log('\nš Operation Preview:');
|
|
363
|
+
console.log(`App: ${preview.app}`);
|
|
364
|
+
console.log(`Config: ${preview.configPath}`);
|
|
365
|
+
console.log(`Servers to import: ${preview.serversToImport.join(', ') || 'none'}`);
|
|
366
|
+
console.log(`Replacement URL: ${preview.replacementUrl}`);
|
|
367
|
+
console.log(`Backup will be created: ${preview.backupPath}`);
|
|
368
|
+
if (preview.risks.length > 0) {
|
|
369
|
+
console.log('\nā ļø Potential Issues:');
|
|
370
|
+
preview.risks.forEach((risk) => console.log(` - ${risk}`));
|
|
371
|
+
}
|
|
372
|
+
const rl = readline.createInterface({
|
|
373
|
+
input: process.stdin,
|
|
374
|
+
output: process.stdout,
|
|
375
|
+
});
|
|
376
|
+
return new Promise((resolve) => {
|
|
377
|
+
rl.question('\nAre you sure you want to proceed? (y/n): ', (answer) => {
|
|
378
|
+
rl.close();
|
|
379
|
+
resolve(answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes');
|
|
380
|
+
});
|
|
381
|
+
});
|
|
382
|
+
}
|
|
383
|
+
//# sourceMappingURL=consolidate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consolidate.js","sourceRoot":"","sources":["../../../src/commands/app/consolidate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Discover command - Find installed desktop applications with MCP configurations.
|
|
3
|
+
*
|
|
4
|
+
* Scans the system for installed applications and their existing
|
|
5
|
+
* MCP server configurations.
|
|
6
|
+
*/
|
|
7
|
+
interface DiscoverOptions {
|
|
8
|
+
'show-empty': boolean;
|
|
9
|
+
'show-paths': boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Main discover command handler
|
|
13
|
+
*/
|
|
14
|
+
export declare function discoverCommand(options: DiscoverOptions): Promise<void>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=discover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../src/commands/app/discover.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AAEH,UAAU,eAAe;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAuF7E"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { discoverInstalledApps } from '../../utils/appDiscovery.js';
|
|
2
|
+
import { getAppPreset, showPlatformWarningIfNeeded } from '../../utils/appPresets.js';
|
|
3
|
+
/**
|
|
4
|
+
* Main discover command handler
|
|
5
|
+
*/
|
|
6
|
+
export async function discoverCommand(options) {
|
|
7
|
+
// Show platform warning if needed
|
|
8
|
+
showPlatformWarningIfNeeded();
|
|
9
|
+
console.log('š Discovering installed desktop applications with MCP configurations...\n');
|
|
10
|
+
try {
|
|
11
|
+
const discovery = await discoverInstalledApps();
|
|
12
|
+
// Filter based on options
|
|
13
|
+
let configurableApps = discovery.configurable;
|
|
14
|
+
if (!options['show-empty']) {
|
|
15
|
+
configurableApps = configurableApps.filter((app) => app.hasConfig && app.serverCount > 0);
|
|
16
|
+
}
|
|
17
|
+
// Show configurable apps
|
|
18
|
+
if (configurableApps.length > 0) {
|
|
19
|
+
console.log('ā
Found Applications with MCP Configurations:\n');
|
|
20
|
+
configurableApps.forEach((app) => {
|
|
21
|
+
const preset = getAppPreset(app.name);
|
|
22
|
+
const statusIcon = app.hasConfig ? (app.serverCount > 0 ? 'š¢' : 'š”') : 'š“';
|
|
23
|
+
console.log(`${statusIcon} ${preset?.displayName || app.name} (${app.name})`);
|
|
24
|
+
if (app.hasConfig) {
|
|
25
|
+
console.log(` š Configurations found: ${app.configCount}`);
|
|
26
|
+
console.log(` š§ MCP servers: ${app.serverCount}`);
|
|
27
|
+
if (options['show-paths'] && app.paths.length > 0) {
|
|
28
|
+
console.log(' š Configuration paths:');
|
|
29
|
+
app.paths.forEach((path) => {
|
|
30
|
+
console.log(` ${path}`);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
console.log(' āŖ No configuration files found');
|
|
36
|
+
}
|
|
37
|
+
console.log();
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
console.log('ā¹ļø No applications with MCP configurations found.');
|
|
42
|
+
if (!options['show-empty']) {
|
|
43
|
+
console.log('\nTip: Use --show-empty to see all supported applications, including those without configurations.');
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// Show manual-only apps
|
|
47
|
+
if (discovery.manualOnly.length > 0) {
|
|
48
|
+
console.log('š§ Manual Setup Applications (Configuration not accessible):');
|
|
49
|
+
discovery.manualOnly.forEach((appName) => {
|
|
50
|
+
const preset = getAppPreset(appName);
|
|
51
|
+
console.log(` š± ${preset?.displayName || appName} (${appName})`);
|
|
52
|
+
});
|
|
53
|
+
console.log();
|
|
54
|
+
}
|
|
55
|
+
// Summary
|
|
56
|
+
const totalWithServers = configurableApps.filter((app) => app.serverCount > 0).length;
|
|
57
|
+
const totalServers = configurableApps.reduce((sum, app) => sum + app.serverCount, 0);
|
|
58
|
+
console.log('š Discovery Summary:');
|
|
59
|
+
console.log(` šÆ Apps with MCP servers: ${totalWithServers}`);
|
|
60
|
+
console.log(` š§ Total MCP servers found: ${totalServers}`);
|
|
61
|
+
console.log(` š± Manual setup apps: ${discovery.manualOnly.length}`);
|
|
62
|
+
if (totalWithServers > 0) {
|
|
63
|
+
console.log('\nš” Next steps:');
|
|
64
|
+
console.log(' 1. Review the applications and their MCP servers above');
|
|
65
|
+
console.log(' 2. Consolidate into 1mcp: npx @1mcp/agent app consolidate <app-name>');
|
|
66
|
+
console.log(' 3. Start 1mcp server to proxy all your MCP servers');
|
|
67
|
+
console.log('\nš Quick consolidation (all apps):');
|
|
68
|
+
const appsWithServers = configurableApps.filter((app) => app.serverCount > 0).map((app) => app.name);
|
|
69
|
+
if (appsWithServers.length > 0) {
|
|
70
|
+
console.log(` npx @1mcp/agent app consolidate ${appsWithServers.join(' ')}`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
console.error(`ā Discovery failed: ${error.message}`);
|
|
76
|
+
process.exit(1);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=discover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../src/commands/app/discover.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Argv } from 'yargs';
|
|
2
|
+
/**
|
|
3
|
+
* App command group entry point.
|
|
4
|
+
*
|
|
5
|
+
* Manages desktop application MCP configurations, allowing users to
|
|
6
|
+
* consolidate MCP servers from apps into 1mcp and restore them when needed.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Register app command group and subcommands
|
|
10
|
+
*/
|
|
11
|
+
export declare function setupAppCommands(yargs: Argv): Argv;
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/app/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAGlC;;;;;GAKG;AAEH;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CA2QlD"}
|