@getmcp/cli 0.1.5 → 0.3.1
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 +144 -20
- package/dist/bin.d.ts +7 -5
- package/dist/bin.d.ts.map +1 -1
- package/dist/bin.js +88 -28
- package/dist/bin.js.map +1 -1
- package/dist/commands/add.d.ts +10 -1
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +208 -71
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/check.d.ts +9 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +76 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/find.d.ts +10 -0
- package/dist/commands/find.d.ts.map +1 -0
- package/dist/commands/find.js +83 -0
- package/dist/commands/find.js.map +1 -0
- package/dist/commands/init.d.ts +8 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +257 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +25 -27
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/remove.d.ts +9 -1
- package/dist/commands/remove.d.ts.map +1 -1
- package/dist/commands/remove.js +83 -33
- package/dist/commands/remove.js.map +1 -1
- package/dist/commands/update.d.ts +14 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +99 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/config-file.d.ts.map +1 -1
- package/dist/config-file.js +6 -16
- package/dist/config-file.js.map +1 -1
- package/dist/detect.d.ts.map +1 -1
- package/dist/detect.js.map +1 -1
- package/dist/errors.d.ts +49 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +84 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/lock.d.ts +49 -0
- package/dist/lock.d.ts.map +1 -0
- package/dist/lock.js +108 -0
- package/dist/lock.js.map +1 -0
- package/dist/preferences.d.ts.map +1 -1
- package/dist/preferences.js.map +1 -1
- package/dist/utils.d.ts +30 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +101 -0
- package/dist/utils.js.map +1 -0
- package/package.json +39 -39
package/dist/commands/add.js
CHANGED
|
@@ -8,15 +8,23 @@
|
|
|
8
8
|
* 4. User selects which apps to configure
|
|
9
9
|
* 5. Generate config for each selected app
|
|
10
10
|
* 6. Merge into existing config files (never overwrite)
|
|
11
|
+
*
|
|
12
|
+
* Supports non-interactive mode via --yes, --app, --all-apps flags.
|
|
13
|
+
* Supports --dry-run to preview changes without writing.
|
|
11
14
|
*/
|
|
12
|
-
import
|
|
13
|
-
import { getAllServers, getServer, searchServers
|
|
14
|
-
import { getGenerator } from "@getmcp/generators";
|
|
15
|
+
import * as p from "@clack/prompts";
|
|
16
|
+
import { getAllServers, getServer, searchServers } from "@getmcp/registry";
|
|
17
|
+
import { getGenerator, getAppIds } from "@getmcp/generators";
|
|
15
18
|
import { isStdioConfig } from "@getmcp/core";
|
|
16
19
|
import { detectApps } from "../detect.js";
|
|
17
20
|
import { mergeServerIntoConfig, writeConfigFile } from "../config-file.js";
|
|
18
21
|
import { getSavedSelectedApps, saveSelectedApps } from "../preferences.js";
|
|
19
|
-
|
|
22
|
+
import { trackInstallation } from "../lock.js";
|
|
23
|
+
import { shortenPath } from "../utils.js";
|
|
24
|
+
import { ServerNotFoundError, AppNotDetectedError, InvalidAppError, NonInteractiveError, formatError, } from "../errors.js";
|
|
25
|
+
export async function addCommand(serverIdArg, options = {}) {
|
|
26
|
+
const isNonInteractive = options.yes || !process.stdin.isTTY;
|
|
27
|
+
p.intro("getmcp add");
|
|
20
28
|
// Step 1: Select server
|
|
21
29
|
let entry;
|
|
22
30
|
if (serverIdArg) {
|
|
@@ -25,130 +33,259 @@ export async function addCommand(serverIdArg) {
|
|
|
25
33
|
// Try fuzzy search
|
|
26
34
|
const matches = searchServers(serverIdArg);
|
|
27
35
|
if (matches.length === 0) {
|
|
28
|
-
|
|
36
|
+
p.log.error(new ServerNotFoundError(serverIdArg).format());
|
|
29
37
|
process.exit(1);
|
|
30
38
|
}
|
|
31
39
|
if (matches.length === 1) {
|
|
32
40
|
entry = matches[0];
|
|
33
41
|
}
|
|
42
|
+
else if (isNonInteractive) {
|
|
43
|
+
// In non-interactive mode, take first match
|
|
44
|
+
entry = matches[0];
|
|
45
|
+
p.log.info(`Multiple matches for "${serverIdArg}", using: ${matches[0].name}`);
|
|
46
|
+
}
|
|
34
47
|
else {
|
|
35
|
-
|
|
48
|
+
const selected = await p.select({
|
|
36
49
|
message: `Multiple matches for "${serverIdArg}". Pick one:`,
|
|
37
|
-
|
|
38
|
-
|
|
50
|
+
options: matches.map((s) => ({
|
|
51
|
+
label: s.name,
|
|
52
|
+
hint: s.description,
|
|
39
53
|
value: s,
|
|
40
54
|
})),
|
|
41
55
|
});
|
|
56
|
+
if (p.isCancel(selected)) {
|
|
57
|
+
p.cancel("Operation cancelled.");
|
|
58
|
+
process.exit(0);
|
|
59
|
+
}
|
|
60
|
+
entry = selected;
|
|
42
61
|
}
|
|
43
62
|
}
|
|
44
63
|
else {
|
|
45
64
|
entry = found;
|
|
46
65
|
}
|
|
47
66
|
}
|
|
67
|
+
else if (isNonInteractive) {
|
|
68
|
+
p.log.error(new NonInteractiveError("server ID is required in non-interactive mode").format());
|
|
69
|
+
process.exit(1);
|
|
70
|
+
}
|
|
48
71
|
else {
|
|
49
72
|
const servers = getAllServers();
|
|
50
|
-
|
|
73
|
+
const selected = await p.select({
|
|
51
74
|
message: "Select an MCP server to install:",
|
|
52
|
-
|
|
53
|
-
|
|
75
|
+
options: servers.map((s) => ({
|
|
76
|
+
label: s.name,
|
|
77
|
+
hint: s.description,
|
|
54
78
|
value: s,
|
|
55
79
|
})),
|
|
56
80
|
});
|
|
81
|
+
if (p.isCancel(selected)) {
|
|
82
|
+
p.cancel("Operation cancelled.");
|
|
83
|
+
process.exit(0);
|
|
84
|
+
}
|
|
85
|
+
entry = selected;
|
|
57
86
|
}
|
|
58
|
-
|
|
59
|
-
console.log(` ${entry.description}\n`);
|
|
87
|
+
p.log.info(`Installing: ${entry.name}\n ${entry.description}`);
|
|
60
88
|
// Step 2: Prompt for required environment variables
|
|
61
89
|
const config = structuredClone(entry.config);
|
|
62
90
|
if (entry.requiredEnvVars.length > 0 && isStdioConfig(config)) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
91
|
+
if (isNonInteractive) {
|
|
92
|
+
// In non-interactive mode, check if env vars are already set in the environment
|
|
93
|
+
let allSet = true;
|
|
94
|
+
for (const envVar of entry.requiredEnvVars) {
|
|
95
|
+
const envValue = process.env[envVar];
|
|
96
|
+
if (envValue) {
|
|
97
|
+
config.env[envVar] = envValue;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
allSet = false;
|
|
101
|
+
p.log.warn(`Required env var ${envVar} is not set in environment`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (!allSet) {
|
|
105
|
+
p.log.warn("Some required environment variables are missing. The server may not work correctly.\n Set them in your shell environment and re-run, or run interactively to be prompted.");
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
p.log.step("This server requires environment variables:");
|
|
110
|
+
for (const envVar of entry.requiredEnvVars) {
|
|
111
|
+
const isSensitive = SENSITIVE_PATTERNS.test(envVar);
|
|
112
|
+
const promptFn = isSensitive ? p.password : p.text;
|
|
113
|
+
const value = await promptFn({
|
|
114
|
+
message: `${envVar}:`,
|
|
115
|
+
validate: (val) => {
|
|
116
|
+
if (!val || !val.trim())
|
|
117
|
+
return `${envVar} is required`;
|
|
118
|
+
},
|
|
119
|
+
});
|
|
120
|
+
if (p.isCancel(value)) {
|
|
121
|
+
p.cancel("Operation cancelled.");
|
|
122
|
+
process.exit(0);
|
|
123
|
+
}
|
|
124
|
+
config.env[envVar] = value.trim();
|
|
125
|
+
}
|
|
71
126
|
}
|
|
72
|
-
console.log();
|
|
73
127
|
}
|
|
74
128
|
// Step 3: Detect apps and build selection list
|
|
75
129
|
const allApps = detectApps();
|
|
76
130
|
const detected = allApps.filter((app) => app.exists);
|
|
77
131
|
const notDetectedProjectScoped = allApps.filter((app) => !app.exists && app.scope === "project");
|
|
78
|
-
if (detected.length === 0 && notDetectedProjectScoped.length === 0) {
|
|
79
|
-
console.log("No AI applications detected on this system.");
|
|
80
|
-
console.log("You can manually copy the config from below:\n");
|
|
81
|
-
printManualConfig(entry, config);
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
132
|
// Step 4: Select target apps
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
133
|
+
let selectedApps;
|
|
134
|
+
if (options.allApps) {
|
|
135
|
+
// --all-apps: use all detected apps
|
|
136
|
+
selectedApps = detected;
|
|
137
|
+
if (selectedApps.length === 0) {
|
|
138
|
+
p.log.error(new AppNotDetectedError().format());
|
|
139
|
+
printManualConfig(entry, config);
|
|
140
|
+
p.outro("Done");
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
else if (options.apps && options.apps.length > 0) {
|
|
145
|
+
// --app <id>: use specified apps
|
|
146
|
+
const validIds = getAppIds();
|
|
147
|
+
selectedApps = [];
|
|
148
|
+
for (const appId of options.apps) {
|
|
149
|
+
if (!validIds.includes(appId)) {
|
|
150
|
+
p.log.error(new InvalidAppError(appId, validIds).format());
|
|
151
|
+
process.exit(1);
|
|
152
|
+
}
|
|
153
|
+
const app = allApps.find((a) => a.id === appId);
|
|
154
|
+
if (app) {
|
|
155
|
+
selectedApps.push(app);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
p.log.warn(`App "${appId}" has no config path for this platform. Skipping.`);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
if (selectedApps.length === 0) {
|
|
162
|
+
p.log.error("None of the specified apps are available on this platform.");
|
|
163
|
+
process.exit(1);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
else if (isNonInteractive) {
|
|
167
|
+
// Non-interactive without --app: use all detected
|
|
168
|
+
selectedApps = detected;
|
|
169
|
+
if (selectedApps.length === 0) {
|
|
170
|
+
p.log.error(new AppNotDetectedError().format());
|
|
171
|
+
printManualConfig(entry, config);
|
|
172
|
+
p.outro("Done");
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
// Interactive mode
|
|
178
|
+
if (detected.length === 0 && notDetectedProjectScoped.length === 0) {
|
|
179
|
+
p.log.warn("No AI applications detected on this system.\n You can manually copy the config from below:");
|
|
180
|
+
printManualConfig(entry, config);
|
|
181
|
+
p.outro("Done");
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
const savedApps = getSavedSelectedApps();
|
|
185
|
+
const hasSavedPreferences = savedApps !== null;
|
|
186
|
+
const choices = [
|
|
187
|
+
...detected.map((app) => ({
|
|
188
|
+
label: app.name,
|
|
189
|
+
value: app,
|
|
190
|
+
hint: shortenPath(app.configPath),
|
|
191
|
+
})),
|
|
192
|
+
...notDetectedProjectScoped.map((app) => ({
|
|
193
|
+
label: app.name,
|
|
194
|
+
value: app,
|
|
195
|
+
hint: `${shortenPath(app.configPath)} (not detected)`,
|
|
196
|
+
})),
|
|
197
|
+
];
|
|
198
|
+
const initialValues = choices
|
|
199
|
+
.filter((c) => (hasSavedPreferences ? savedApps.includes(c.value.id) : c.value.exists))
|
|
200
|
+
.map((c) => c.value);
|
|
201
|
+
const selected = await p.multiselect({
|
|
202
|
+
message: "Select apps to configure:",
|
|
203
|
+
options: choices,
|
|
204
|
+
initialValues,
|
|
205
|
+
required: true,
|
|
206
|
+
});
|
|
207
|
+
if (p.isCancel(selected)) {
|
|
208
|
+
p.cancel("Operation cancelled.");
|
|
209
|
+
process.exit(0);
|
|
210
|
+
}
|
|
211
|
+
selectedApps = selected;
|
|
212
|
+
// Save selected apps for next run
|
|
213
|
+
saveSelectedApps(selectedApps.map((app) => app.id));
|
|
214
|
+
}
|
|
109
215
|
// Step 5+6: Generate and merge for each selected app
|
|
216
|
+
if (options.dryRun) {
|
|
217
|
+
p.log.step("Dry run — showing what would be written:\n");
|
|
218
|
+
}
|
|
219
|
+
const spin = p.spinner();
|
|
220
|
+
spin.start(`Configuring ${selectedApps.length} app(s)...`);
|
|
221
|
+
const results = [];
|
|
110
222
|
for (const app of selectedApps) {
|
|
111
223
|
try {
|
|
112
224
|
const generator = getGenerator(app.id);
|
|
113
225
|
const generatedConfig = generator.generate(entry.id, config);
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
226
|
+
if (options.dryRun) {
|
|
227
|
+
spin.stop(`Preview for ${app.name}:`);
|
|
228
|
+
const serialized = generator.serialize(generatedConfig);
|
|
229
|
+
p.note(`File: ${shortenPath(app.configPath)}\n\n${serialized}`, app.name);
|
|
230
|
+
spin.start("Continuing...");
|
|
231
|
+
results.push({ app, ok: true });
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
const merged = mergeServerIntoConfig(app.configPath, generatedConfig);
|
|
235
|
+
writeConfigFile(app.configPath, merged);
|
|
236
|
+
results.push({ app, ok: true });
|
|
237
|
+
}
|
|
117
238
|
}
|
|
118
239
|
catch (err) {
|
|
119
|
-
|
|
240
|
+
results.push({
|
|
241
|
+
app,
|
|
242
|
+
ok: false,
|
|
243
|
+
error: formatError(err),
|
|
244
|
+
});
|
|
120
245
|
}
|
|
121
246
|
}
|
|
122
|
-
|
|
247
|
+
spin.stop("Configuration complete.");
|
|
248
|
+
// Show results summary
|
|
249
|
+
for (const r of results) {
|
|
250
|
+
if (r.ok) {
|
|
251
|
+
p.log.success(`${r.app.name}: ${shortenPath(r.app.configPath)}`);
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
p.log.error(`${r.app.name}: ${r.error}`);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
// Track installation (unless dry-run)
|
|
258
|
+
if (!options.dryRun) {
|
|
259
|
+
const successApps = results.filter((r) => r.ok).map((r) => r.app.id);
|
|
260
|
+
if (successApps.length > 0) {
|
|
261
|
+
trackInstallation(entry.id, successApps, entry.requiredEnvVars);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
const action = options.dryRun ? "would be configured" : "has been configured";
|
|
265
|
+
p.outro(`"${entry.name}" ${action}.`);
|
|
123
266
|
// Reminder for apps that need restart
|
|
124
267
|
const needsRestart = selectedApps.some((a) => ["claude-desktop", "windsurf", "cursor"].includes(a.id));
|
|
125
|
-
if (needsRestart) {
|
|
126
|
-
|
|
268
|
+
if (needsRestart && !options.dryRun) {
|
|
269
|
+
p.log.info("Some apps may need to be restarted to pick up changes.");
|
|
127
270
|
}
|
|
128
|
-
// PyCharm-specific warning
|
|
271
|
+
// PyCharm-specific warning
|
|
129
272
|
const hasPycharm = selectedApps.some((a) => a.id === "pycharm");
|
|
130
|
-
if (hasPycharm) {
|
|
131
|
-
|
|
132
|
-
"
|
|
133
|
-
"
|
|
134
|
-
"\nThe new servers will not appear until you restart the IDE.");
|
|
273
|
+
if (hasPycharm && !options.dryRun) {
|
|
274
|
+
p.log.warn("MCP servers in PyCharm require the JetBrains AI Assistant plugin:\n" +
|
|
275
|
+
" https://plugins.jetbrains.com/plugin/22282-jetbrains-ai-assistant\n\n" +
|
|
276
|
+
" PyCharm must be closed and reopened for changes to take effect.");
|
|
135
277
|
}
|
|
136
278
|
}
|
|
137
279
|
function printManualConfig(entry, config) {
|
|
138
|
-
// Show the canonical format
|
|
139
280
|
const canonical = {
|
|
140
281
|
mcpServers: {
|
|
141
282
|
[entry.id]: config,
|
|
142
283
|
},
|
|
143
284
|
};
|
|
144
|
-
|
|
285
|
+
p.note(JSON.stringify(canonical, null, 2), "Canonical config");
|
|
145
286
|
}
|
|
146
287
|
/**
|
|
147
288
|
* Heuristic to detect if an environment variable name likely holds a secret.
|
|
148
|
-
* Returns true for names containing common secret-related keywords.
|
|
149
289
|
*/
|
|
150
290
|
const SENSITIVE_PATTERNS = /TOKEN|KEY|SECRET|PASSWORD|CREDENTIAL|AUTH|PAT|PRIVATE/i;
|
|
151
|
-
function isSensitiveEnvVar(name) {
|
|
152
|
-
return SENSITIVE_PATTERNS.test(name);
|
|
153
|
-
}
|
|
154
291
|
//# sourceMappingURL=add.js.map
|
package/dist/commands/add.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `getmcp check` command.
|
|
3
|
+
*
|
|
4
|
+
* Compares the lock file against the current registry to show
|
|
5
|
+
* which tracked servers are still available, and reports any
|
|
6
|
+
* apps where the server may have been removed externally.
|
|
7
|
+
*/
|
|
8
|
+
export declare function checkCommand(): Promise<void>;
|
|
9
|
+
//# sourceMappingURL=check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CA2ElD"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `getmcp check` command.
|
|
3
|
+
*
|
|
4
|
+
* Compares the lock file against the current registry to show
|
|
5
|
+
* which tracked servers are still available, and reports any
|
|
6
|
+
* apps where the server may have been removed externally.
|
|
7
|
+
*/
|
|
8
|
+
import * as p from "@clack/prompts";
|
|
9
|
+
import { getServer } from "@getmcp/registry";
|
|
10
|
+
import { getTrackedServers } from "../lock.js";
|
|
11
|
+
import { detectInstalledApps } from "../detect.js";
|
|
12
|
+
import { listServersInConfig } from "../config-file.js";
|
|
13
|
+
import { shortenPath } from "../utils.js";
|
|
14
|
+
export async function checkCommand() {
|
|
15
|
+
p.intro("getmcp check");
|
|
16
|
+
const lock = getTrackedServers();
|
|
17
|
+
const entries = Object.entries(lock.installations);
|
|
18
|
+
if (entries.length === 0) {
|
|
19
|
+
p.log.info("No tracked installations. Use 'getmcp add' to install servers.");
|
|
20
|
+
p.outro("Done");
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const installedApps = detectInstalledApps();
|
|
24
|
+
const installedAppIds = new Set(installedApps.map((a) => a.id));
|
|
25
|
+
const appConfigMap = new Map(installedApps.map((a) => [a.id, a]));
|
|
26
|
+
p.log.info(`Tracked installations: ${entries.length}`);
|
|
27
|
+
let issues = 0;
|
|
28
|
+
for (const [serverId, installation] of entries) {
|
|
29
|
+
const registryEntry = getServer(serverId);
|
|
30
|
+
if (!registryEntry) {
|
|
31
|
+
p.log.warn(`${serverId}: no longer in registry\n` +
|
|
32
|
+
` Installed in: ${installation.apps.join(", ")}\n` +
|
|
33
|
+
` Installed at: ${installation.installedAt}`);
|
|
34
|
+
issues++;
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
// Check if the server is still configured in each tracked app
|
|
38
|
+
const missingFrom = [];
|
|
39
|
+
const presentIn = [];
|
|
40
|
+
for (const appId of installation.apps) {
|
|
41
|
+
if (!installedAppIds.has(appId)) {
|
|
42
|
+
missingFrom.push(`${appId} (app not detected)`);
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
const app = appConfigMap.get(appId);
|
|
46
|
+
try {
|
|
47
|
+
const servers = listServersInConfig(app.configPath);
|
|
48
|
+
if (servers.includes(serverId)) {
|
|
49
|
+
presentIn.push(`${app.name} (${shortenPath(app.configPath)})`);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
missingFrom.push(`${app.name} (removed from config)`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
missingFrom.push(`${app.name} (config not readable)`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (missingFrom.length > 0) {
|
|
60
|
+
p.log.warn(`${registryEntry.name} (${serverId}):\n` +
|
|
61
|
+
` Present in: ${presentIn.length > 0 ? presentIn.join(", ") : "(none)"}\n` +
|
|
62
|
+
` Missing from: ${missingFrom.join(", ")}`);
|
|
63
|
+
issues++;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
p.log.success(`${registryEntry.name} (${serverId}): OK\n` + ` Configured in: ${presentIn.join(", ")}`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (issues > 0) {
|
|
70
|
+
p.outro(`${issues} issue(s) found. Run 'getmcp update' to re-apply configurations.`);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
p.outro("All installations are up to date.");
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `getmcp find` command.
|
|
3
|
+
*
|
|
4
|
+
* Interactive fuzzy search through the registry.
|
|
5
|
+
* After selection, jumps directly into the add flow.
|
|
6
|
+
*
|
|
7
|
+
* Aliases: find, search, s, f
|
|
8
|
+
*/
|
|
9
|
+
export declare function findCommand(initialQuery?: string): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=find.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../src/commands/find.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,wBAAsB,WAAW,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqFtE"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `getmcp find` command.
|
|
3
|
+
*
|
|
4
|
+
* Interactive fuzzy search through the registry.
|
|
5
|
+
* After selection, jumps directly into the add flow.
|
|
6
|
+
*
|
|
7
|
+
* Aliases: find, search, s, f
|
|
8
|
+
*/
|
|
9
|
+
import * as p from "@clack/prompts";
|
|
10
|
+
import { getAllServers, searchServers } from "@getmcp/registry";
|
|
11
|
+
import { addCommand } from "./add.js";
|
|
12
|
+
export async function findCommand(initialQuery) {
|
|
13
|
+
p.intro("getmcp find");
|
|
14
|
+
const servers = getAllServers();
|
|
15
|
+
if (servers.length === 0) {
|
|
16
|
+
p.log.warn("No servers in registry.");
|
|
17
|
+
p.outro("Done");
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
// If a query was provided as argument, search and show results
|
|
21
|
+
let filteredServers;
|
|
22
|
+
if (initialQuery) {
|
|
23
|
+
filteredServers = searchServers(initialQuery);
|
|
24
|
+
if (filteredServers.length === 0) {
|
|
25
|
+
p.log.warn(`No servers matching "${initialQuery}".`);
|
|
26
|
+
// Offer to search again
|
|
27
|
+
const newQuery = await p.text({
|
|
28
|
+
message: "Try a different search term:",
|
|
29
|
+
placeholder: "e.g., database, github, docker",
|
|
30
|
+
});
|
|
31
|
+
if (p.isCancel(newQuery)) {
|
|
32
|
+
p.cancel("Operation cancelled.");
|
|
33
|
+
process.exit(0);
|
|
34
|
+
}
|
|
35
|
+
filteredServers = searchServers(newQuery);
|
|
36
|
+
if (filteredServers.length === 0) {
|
|
37
|
+
p.log.warn(`No servers matching "${newQuery}".`);
|
|
38
|
+
p.outro("Done");
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
// No query — prompt for search term or show all
|
|
45
|
+
const query = await p.text({
|
|
46
|
+
message: "Search for an MCP server:",
|
|
47
|
+
placeholder: "e.g., database, github, docker (leave empty to show all)",
|
|
48
|
+
});
|
|
49
|
+
if (p.isCancel(query)) {
|
|
50
|
+
p.cancel("Operation cancelled.");
|
|
51
|
+
process.exit(0);
|
|
52
|
+
}
|
|
53
|
+
filteredServers = query.trim() ? searchServers(query) : servers;
|
|
54
|
+
if (filteredServers.length === 0) {
|
|
55
|
+
p.log.warn(`No servers matching "${query}".`);
|
|
56
|
+
p.outro("Done");
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Show results and let user pick
|
|
61
|
+
const selected = await p.select({
|
|
62
|
+
message: `Found ${filteredServers.length} server(s). Select one to install:`,
|
|
63
|
+
options: filteredServers.map((s) => {
|
|
64
|
+
const transport = "command" in s.config ? "stdio" : "remote";
|
|
65
|
+
const envCount = s.requiredEnvVars.length;
|
|
66
|
+
const envNote = envCount > 0 ? ` | ${envCount} env var${envCount > 1 ? "s" : ""}` : "";
|
|
67
|
+
const categories = s.categories && s.categories.length > 0 ? ` | ${s.categories.join(", ")}` : "";
|
|
68
|
+
return {
|
|
69
|
+
label: s.name,
|
|
70
|
+
hint: `${transport}${envNote}${categories}`,
|
|
71
|
+
value: s,
|
|
72
|
+
};
|
|
73
|
+
}),
|
|
74
|
+
});
|
|
75
|
+
if (p.isCancel(selected)) {
|
|
76
|
+
p.cancel("Operation cancelled.");
|
|
77
|
+
process.exit(0);
|
|
78
|
+
}
|
|
79
|
+
p.outro(`Selected: ${selected.name}`);
|
|
80
|
+
// Jump into add flow
|
|
81
|
+
await addCommand(selected.id);
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=find.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find.js","sourceRoot":"","sources":["../../src/commands/find.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CA8RjD"}
|