mcpick 0.0.19 → 0.0.20
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/.github/workflows/ci.yml +26 -0
- package/CHANGELOG.md +8 -0
- package/LICENSE +21 -0
- package/dist/{add-B9nVyh8T.js → add-BDyaBew0.js} +2 -2
- package/dist/{add-json-CXNDl3al.js → add-json-BjgzdeG-.js} +2 -2
- package/dist/{claude-cli-BeA-bmoW.js → claude-cli-DnmBJrjg.js} +97 -46
- package/dist/{cli-DNNZjJYL.js → cli-CsFfnWBo.js} +11 -11
- package/dist/{clone-DLFLewBY.js → clone-DYKPEsar.js} +2 -2
- package/dist/{disable-BA8tXPJN.js → disable-xJXZfUR_.js} +2 -2
- package/dist/{enable-Bdnnn_Cq.js → enable-RrpcN6la.js} +2 -2
- package/dist/{get-BPjMXTMc.js → get-Bb1eOOIZ.js} +2 -2
- package/dist/index.js +5 -3
- package/dist/{marketplace-Br89Tg-Z.js → marketplace-DcKk5dc1.js} +2 -2
- package/dist/{plugins-DHYJF5CP.js → plugins-Dc7DN6R_.js} +2 -2
- package/dist/{remove-DIPWYMpk.js → remove-D1owHLhG.js} +2 -2
- package/dist/{reset-project-choices-DRM5KByw.js → reset-project-choices-BfRSNN3m.js} +2 -2
- package/package.json +6 -6
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
test:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
steps:
|
|
13
|
+
- uses: actions/checkout@v6
|
|
14
|
+
|
|
15
|
+
- uses: pnpm/action-setup@v6
|
|
16
|
+
|
|
17
|
+
- uses: actions/setup-node@v6
|
|
18
|
+
with:
|
|
19
|
+
node-version-file: package.json
|
|
20
|
+
cache: pnpm
|
|
21
|
+
|
|
22
|
+
- run: pnpm install --frozen-lockfile
|
|
23
|
+
|
|
24
|
+
- run: pnpm run build
|
|
25
|
+
|
|
26
|
+
- run: pnpm run test
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# mcpick
|
|
2
2
|
|
|
3
|
+
## 0.0.20
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 00ea930: chore: add unit tests and CI workflow with GitHub Actions
|
|
8
|
+
- 37a62e1: feat: auto-show help instead of TUI in non-TTY environments for LLM agents
|
|
9
|
+
- fc1db54: fix: replace exec with execFile to eliminate shell injection on all platforms
|
|
10
|
+
|
|
3
11
|
## 0.0.19
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Scott Spence
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as validate_mcp_server } from "./validation-xMlbgGCF.js";
|
|
2
2
|
import { t as add_server_to_registry } from "./registry-CfUKT7_C.js";
|
|
3
|
-
import { t as add_mcp_via_cli } from "./claude-cli-
|
|
3
|
+
import { t as add_mcp_via_cli } from "./claude-cli-DnmBJrjg.js";
|
|
4
4
|
import { n as output, t as error } from "./output-BchYq0mR.js";
|
|
5
5
|
import { defineCommand } from "citty";
|
|
6
6
|
//#region src/cli/commands/add.ts
|
|
@@ -110,4 +110,4 @@ function parse_key_value_pairs(input) {
|
|
|
110
110
|
//#endregion
|
|
111
111
|
export { add_default as default };
|
|
112
112
|
|
|
113
|
-
//# sourceMappingURL=add-
|
|
113
|
+
//# sourceMappingURL=add-BDyaBew0.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { u as mcp_add_json_via_cli } from "./claude-cli-
|
|
1
|
+
import { u as mcp_add_json_via_cli } from "./claude-cli-DnmBJrjg.js";
|
|
2
2
|
import { n as output, t as error } from "./output-BchYq0mR.js";
|
|
3
3
|
import { defineCommand } from "citty";
|
|
4
4
|
//#region src/cli/commands/add-json.ts
|
|
@@ -55,4 +55,4 @@ var add_json_default = defineCommand({
|
|
|
55
55
|
//#endregion
|
|
56
56
|
export { add_json_default as default };
|
|
57
57
|
|
|
58
|
-
//# sourceMappingURL=add-json-
|
|
58
|
+
//# sourceMappingURL=add-json-BjgzdeG-.js.map
|
|
@@ -1,58 +1,56 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { execFile } from "node:child_process";
|
|
2
2
|
import { promisify } from "node:util";
|
|
3
3
|
//#region src/utils/claude-cli.ts
|
|
4
|
-
const
|
|
4
|
+
const exec_file_async = promisify(execFile);
|
|
5
5
|
/**
|
|
6
6
|
* Check if Claude CLI is available
|
|
7
7
|
*/
|
|
8
8
|
async function check_claude_cli() {
|
|
9
9
|
try {
|
|
10
|
-
await
|
|
10
|
+
await exec_file_async("claude", ["--version"]);
|
|
11
11
|
return true;
|
|
12
12
|
} catch {
|
|
13
13
|
return false;
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
18
|
-
|
|
19
|
-
function shell_escape(str) {
|
|
20
|
-
return `'${str.replace(/'/g, "'\\''")}'`;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Validate environment variable key
|
|
24
|
-
* Must start with letter or underscore, contain only alphanumeric and underscores
|
|
17
|
+
* Validate environment variable key.
|
|
18
|
+
* Must start with letter or underscore, contain only alphanumeric and underscores.
|
|
25
19
|
*/
|
|
26
20
|
function is_valid_env_key(key) {
|
|
27
21
|
return /^[A-Za-z_][A-Za-z0-9_]*$/.test(key);
|
|
28
22
|
}
|
|
29
23
|
/**
|
|
30
|
-
* Build
|
|
24
|
+
* Build args array for claude mcp add command.
|
|
25
|
+
* Returns raw args — no shell escaping needed since we use execFile.
|
|
31
26
|
*/
|
|
32
|
-
function
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
"mcp",
|
|
36
|
-
"add"
|
|
37
|
-
];
|
|
38
|
-
parts.push(shell_escape(server.name));
|
|
27
|
+
function build_add_args(server, scope) {
|
|
28
|
+
const args = ["mcp", "add"];
|
|
29
|
+
args.push(server.name);
|
|
39
30
|
const transport = server.type || "stdio";
|
|
40
|
-
if (transport !== "stdio")
|
|
41
|
-
|
|
31
|
+
if (transport !== "stdio") args.push("--transport", transport);
|
|
32
|
+
args.push("--scope", scope);
|
|
42
33
|
if (transport === "stdio") {
|
|
43
34
|
if (server.env) {
|
|
44
|
-
for (const [key, value] of Object.entries(server.env)) if (is_valid_env_key(key))
|
|
35
|
+
for (const [key, value] of Object.entries(server.env)) if (is_valid_env_key(key)) args.push("-e", `${key}=${value}`);
|
|
45
36
|
}
|
|
46
37
|
if ("command" in server && server.command) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
if (server.args && server.args.length > 0)
|
|
38
|
+
args.push("--");
|
|
39
|
+
args.push(server.command);
|
|
40
|
+
if (server.args && server.args.length > 0) args.push(...server.args);
|
|
50
41
|
}
|
|
51
42
|
} else {
|
|
52
|
-
if ("url" in server && server.url)
|
|
53
|
-
if ("headers" in server && server.headers) for (const [key, value] of Object.entries(server.headers))
|
|
43
|
+
if ("url" in server && server.url) args.push(server.url);
|
|
44
|
+
if ("headers" in server && server.headers) for (const [key, value] of Object.entries(server.headers)) args.push("-H", `${key}: ${value}`);
|
|
54
45
|
}
|
|
55
|
-
return
|
|
46
|
+
return args;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Run a claude CLI command using execFile (no shell).
|
|
50
|
+
* This avoids all shell escaping issues on every platform.
|
|
51
|
+
*/
|
|
52
|
+
async function run_claude(args) {
|
|
53
|
+
return exec_file_async("claude", args);
|
|
56
54
|
}
|
|
57
55
|
/**
|
|
58
56
|
* Add an MCP server using Claude CLI
|
|
@@ -62,9 +60,8 @@ async function add_mcp_via_cli(server, scope) {
|
|
|
62
60
|
success: false,
|
|
63
61
|
error: "Claude CLI not found. Please install Claude Code CLI."
|
|
64
62
|
};
|
|
65
|
-
const command = build_add_command(server, scope);
|
|
66
63
|
try {
|
|
67
|
-
await
|
|
64
|
+
await run_claude(build_add_args(server, scope));
|
|
68
65
|
return { success: true };
|
|
69
66
|
} catch (error) {
|
|
70
67
|
return {
|
|
@@ -82,7 +79,11 @@ async function remove_mcp_via_cli(name) {
|
|
|
82
79
|
error: "Claude CLI not found. Please install Claude Code CLI."
|
|
83
80
|
};
|
|
84
81
|
try {
|
|
85
|
-
await
|
|
82
|
+
await run_claude([
|
|
83
|
+
"mcp",
|
|
84
|
+
"remove",
|
|
85
|
+
name
|
|
86
|
+
]);
|
|
86
87
|
return { success: true };
|
|
87
88
|
} catch (error) {
|
|
88
89
|
return {
|
|
@@ -100,7 +101,13 @@ async function install_plugin_via_cli(key, scope = "user") {
|
|
|
100
101
|
error: "Claude CLI not found. Please install Claude Code CLI."
|
|
101
102
|
};
|
|
102
103
|
try {
|
|
103
|
-
await
|
|
104
|
+
await run_claude([
|
|
105
|
+
"plugin",
|
|
106
|
+
"install",
|
|
107
|
+
key,
|
|
108
|
+
"--scope",
|
|
109
|
+
scope
|
|
110
|
+
]);
|
|
104
111
|
return { success: true };
|
|
105
112
|
} catch (error) {
|
|
106
113
|
return {
|
|
@@ -118,7 +125,13 @@ async function uninstall_plugin_via_cli(key, scope = "user") {
|
|
|
118
125
|
error: "Claude CLI not found. Please install Claude Code CLI."
|
|
119
126
|
};
|
|
120
127
|
try {
|
|
121
|
-
await
|
|
128
|
+
await run_claude([
|
|
129
|
+
"plugin",
|
|
130
|
+
"uninstall",
|
|
131
|
+
key,
|
|
132
|
+
"--scope",
|
|
133
|
+
scope
|
|
134
|
+
]);
|
|
122
135
|
return { success: true };
|
|
123
136
|
} catch (error) {
|
|
124
137
|
return {
|
|
@@ -136,7 +149,13 @@ async function update_plugin_via_cli(key, scope = "user") {
|
|
|
136
149
|
error: "Claude CLI not found. Please install Claude Code CLI."
|
|
137
150
|
};
|
|
138
151
|
try {
|
|
139
|
-
await
|
|
152
|
+
await run_claude([
|
|
153
|
+
"plugin",
|
|
154
|
+
"update",
|
|
155
|
+
key,
|
|
156
|
+
"--scope",
|
|
157
|
+
scope
|
|
158
|
+
]);
|
|
140
159
|
return { success: true };
|
|
141
160
|
} catch (error) {
|
|
142
161
|
return {
|
|
@@ -146,9 +165,6 @@ async function update_plugin_via_cli(key, scope = "user") {
|
|
|
146
165
|
}
|
|
147
166
|
}
|
|
148
167
|
/**
|
|
149
|
-
* Add a marketplace via Claude CLI
|
|
150
|
-
*/
|
|
151
|
-
/**
|
|
152
168
|
* Extract GitHub owner/repo from various source formats.
|
|
153
169
|
* Returns null if not a recognizable GitHub reference.
|
|
154
170
|
*/
|
|
@@ -203,7 +219,12 @@ async function marketplace_add_via_cli(source) {
|
|
|
203
219
|
};
|
|
204
220
|
}
|
|
205
221
|
try {
|
|
206
|
-
await
|
|
222
|
+
await run_claude([
|
|
223
|
+
"plugin",
|
|
224
|
+
"marketplace",
|
|
225
|
+
"add",
|
|
226
|
+
source
|
|
227
|
+
]);
|
|
207
228
|
return { success: true };
|
|
208
229
|
} catch (error) {
|
|
209
230
|
const message = error instanceof Error ? error.message : "Unknown error";
|
|
@@ -230,7 +251,12 @@ async function marketplace_remove_via_cli(name) {
|
|
|
230
251
|
error: "Claude CLI not found. Please install Claude Code CLI."
|
|
231
252
|
};
|
|
232
253
|
try {
|
|
233
|
-
await
|
|
254
|
+
await run_claude([
|
|
255
|
+
"plugin",
|
|
256
|
+
"marketplace",
|
|
257
|
+
"remove",
|
|
258
|
+
name
|
|
259
|
+
]);
|
|
234
260
|
return { success: true };
|
|
235
261
|
} catch (error) {
|
|
236
262
|
return {
|
|
@@ -248,7 +274,13 @@ async function marketplace_update_via_cli(name) {
|
|
|
248
274
|
error: "Claude CLI not found. Please install Claude Code CLI."
|
|
249
275
|
};
|
|
250
276
|
try {
|
|
251
|
-
|
|
277
|
+
const args = [
|
|
278
|
+
"plugin",
|
|
279
|
+
"marketplace",
|
|
280
|
+
"update"
|
|
281
|
+
];
|
|
282
|
+
if (name) args.push(name);
|
|
283
|
+
await run_claude(args);
|
|
252
284
|
return { success: true };
|
|
253
285
|
} catch (error) {
|
|
254
286
|
return {
|
|
@@ -266,7 +298,11 @@ async function marketplace_list_via_cli() {
|
|
|
266
298
|
error: "Claude CLI not found. Please install Claude Code CLI."
|
|
267
299
|
};
|
|
268
300
|
try {
|
|
269
|
-
const { stdout } = await
|
|
301
|
+
const { stdout } = await run_claude([
|
|
302
|
+
"plugin",
|
|
303
|
+
"marketplace",
|
|
304
|
+
"list"
|
|
305
|
+
]);
|
|
270
306
|
return {
|
|
271
307
|
success: true,
|
|
272
308
|
stdout: stdout.trim()
|
|
@@ -297,7 +333,11 @@ async function validate_plugin_via_cli(path) {
|
|
|
297
333
|
error: "Claude CLI not found. Please install Claude Code CLI."
|
|
298
334
|
};
|
|
299
335
|
try {
|
|
300
|
-
const { stdout } = await
|
|
336
|
+
const { stdout } = await run_claude([
|
|
337
|
+
"plugin",
|
|
338
|
+
"validate",
|
|
339
|
+
path
|
|
340
|
+
]);
|
|
301
341
|
return {
|
|
302
342
|
success: true,
|
|
303
343
|
stdout: stdout.trim()
|
|
@@ -318,7 +358,11 @@ async function mcp_get_via_cli(name) {
|
|
|
318
358
|
error: "Claude CLI not found. Please install Claude Code CLI."
|
|
319
359
|
};
|
|
320
360
|
try {
|
|
321
|
-
const { stdout } = await
|
|
361
|
+
const { stdout } = await run_claude([
|
|
362
|
+
"mcp",
|
|
363
|
+
"get",
|
|
364
|
+
name
|
|
365
|
+
]);
|
|
322
366
|
return {
|
|
323
367
|
success: true,
|
|
324
368
|
stdout: stdout.trim()
|
|
@@ -339,7 +383,14 @@ async function mcp_add_json_via_cli(name, json, scope = "local") {
|
|
|
339
383
|
error: "Claude CLI not found. Please install Claude Code CLI."
|
|
340
384
|
};
|
|
341
385
|
try {
|
|
342
|
-
await
|
|
386
|
+
await run_claude([
|
|
387
|
+
"mcp",
|
|
388
|
+
"add-json",
|
|
389
|
+
name,
|
|
390
|
+
json,
|
|
391
|
+
"--scope",
|
|
392
|
+
scope
|
|
393
|
+
]);
|
|
343
394
|
return { success: true };
|
|
344
395
|
} catch (error) {
|
|
345
396
|
return {
|
|
@@ -357,7 +408,7 @@ async function mcp_reset_project_choices_via_cli() {
|
|
|
357
408
|
error: "Claude CLI not found. Please install Claude Code CLI."
|
|
358
409
|
};
|
|
359
410
|
try {
|
|
360
|
-
await
|
|
411
|
+
await run_claude(["mcp", "reset-project-choices"]);
|
|
361
412
|
return { success: true };
|
|
362
413
|
} catch (error) {
|
|
363
414
|
return {
|
|
@@ -391,4 +442,4 @@ function get_scope_options() {
|
|
|
391
442
|
//#endregion
|
|
392
443
|
export { install_plugin_via_cli as a, marketplace_remove_via_cli as c, mcp_get_via_cli as d, mcp_reset_project_choices_via_cli as f, validate_plugin_via_cli as g, update_plugin_via_cli as h, get_scope_options as i, marketplace_update_via_cli as l, uninstall_plugin_via_cli as m, check_claude_cli as n, marketplace_add_via_cli as o, remove_mcp_via_cli as p, get_scope_description as r, marketplace_list_via_cli as s, add_mcp_via_cli as t, mcp_add_json_via_cli as u };
|
|
393
444
|
|
|
394
|
-
//# sourceMappingURL=claude-cli-
|
|
445
|
+
//# sourceMappingURL=claude-cli-DnmBJrjg.js.map
|
|
@@ -7,22 +7,22 @@ const main = defineCommand({
|
|
|
7
7
|
},
|
|
8
8
|
subCommands: {
|
|
9
9
|
list: () => import("./list-B8YeDWt6.js").then((m) => m.default),
|
|
10
|
-
enable: () => import("./enable-
|
|
11
|
-
disable: () => import("./disable-
|
|
12
|
-
remove: () => import("./remove-
|
|
13
|
-
add: () => import("./add-
|
|
14
|
-
"add-json": () => import("./add-json-
|
|
15
|
-
clone: () => import("./clone-
|
|
16
|
-
get: () => import("./get-
|
|
17
|
-
"reset-project-choices": () => import("./reset-project-choices-
|
|
10
|
+
enable: () => import("./enable-RrpcN6la.js").then((m) => m.default),
|
|
11
|
+
disable: () => import("./disable-xJXZfUR_.js").then((m) => m.default),
|
|
12
|
+
remove: () => import("./remove-D1owHLhG.js").then((m) => m.default),
|
|
13
|
+
add: () => import("./add-BDyaBew0.js").then((m) => m.default),
|
|
14
|
+
"add-json": () => import("./add-json-BjgzdeG-.js").then((m) => m.default),
|
|
15
|
+
clone: () => import("./clone-DYKPEsar.js").then((m) => m.default),
|
|
16
|
+
get: () => import("./get-Bb1eOOIZ.js").then((m) => m.default),
|
|
17
|
+
"reset-project-choices": () => import("./reset-project-choices-BfRSNN3m.js").then((m) => m.default),
|
|
18
18
|
backup: () => import("./backup-DSDhHI5f.js").then((m) => m.default),
|
|
19
19
|
restore: () => import("./restore-DdMfUljI.js").then((m) => m.default),
|
|
20
20
|
profile: () => import("./profile-CX97sMGp.js").then((m) => m.default),
|
|
21
|
-
plugins: () => import("./plugins-
|
|
21
|
+
plugins: () => import("./plugins-Dc7DN6R_.js").then((m) => m.default),
|
|
22
22
|
hooks: () => import("./hooks-Bmn7pUZa.js").then((m) => m.default),
|
|
23
23
|
cache: () => import("./cache-D6kd7qE8.js").then((m) => m.default),
|
|
24
24
|
dev: () => import("./dev-DRJRNp7y.js").then((m) => m.default),
|
|
25
|
-
marketplace: () => import("./marketplace-
|
|
25
|
+
marketplace: () => import("./marketplace-DcKk5dc1.js").then((m) => m.default),
|
|
26
26
|
reload: () => import("./reload-CYDhkCVZ.js").then((m) => m.default)
|
|
27
27
|
}
|
|
28
28
|
});
|
|
@@ -81,4 +81,4 @@ const run = () => runMain(main, { showUsage: show_usage_with_examples });
|
|
|
81
81
|
//#endregion
|
|
82
82
|
export { run };
|
|
83
83
|
|
|
84
|
-
//# sourceMappingURL=cli-
|
|
84
|
+
//# sourceMappingURL=cli-CsFfnWBo.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as validate_mcp_server } from "./validation-xMlbgGCF.js";
|
|
2
2
|
import { t as add_server_to_registry } from "./registry-CfUKT7_C.js";
|
|
3
|
-
import { t as add_mcp_via_cli } from "./claude-cli-
|
|
3
|
+
import { t as add_mcp_via_cli } from "./claude-cli-DnmBJrjg.js";
|
|
4
4
|
import { i as find_server_in_scope, r as detect_server_scope } from "./config-DijVdEFn.js";
|
|
5
5
|
import { n as output, t as error } from "./output-BchYq0mR.js";
|
|
6
6
|
import { t as redact_server } from "./redact-O35tjnRD.js";
|
|
@@ -85,4 +85,4 @@ var clone_default = defineCommand({
|
|
|
85
85
|
//#endregion
|
|
86
86
|
export { clone_default as default };
|
|
87
87
|
|
|
88
|
-
//# sourceMappingURL=clone-
|
|
88
|
+
//# sourceMappingURL=clone-DYKPEsar.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as get_all_available_servers } from "./registry-CfUKT7_C.js";
|
|
2
|
-
import { p as remove_mcp_via_cli } from "./claude-cli-
|
|
2
|
+
import { p as remove_mcp_via_cli } from "./claude-cli-DnmBJrjg.js";
|
|
3
3
|
import { t as error } from "./output-BchYq0mR.js";
|
|
4
4
|
import { defineCommand } from "citty";
|
|
5
5
|
//#region src/cli/commands/disable.ts
|
|
@@ -36,4 +36,4 @@ var disable_default = defineCommand({
|
|
|
36
36
|
//#endregion
|
|
37
37
|
export { disable_default as default };
|
|
38
38
|
|
|
39
|
-
//# sourceMappingURL=disable-
|
|
39
|
+
//# sourceMappingURL=disable-xJXZfUR_.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { n as get_all_available_servers } from "./registry-CfUKT7_C.js";
|
|
2
|
-
import { t as add_mcp_via_cli } from "./claude-cli-
|
|
2
|
+
import { t as add_mcp_via_cli } from "./claude-cli-DnmBJrjg.js";
|
|
3
3
|
import { t as error } from "./output-BchYq0mR.js";
|
|
4
4
|
import { defineCommand } from "citty";
|
|
5
5
|
//#region src/cli/commands/enable.ts
|
|
@@ -37,4 +37,4 @@ var enable_default = defineCommand({
|
|
|
37
37
|
//#endregion
|
|
38
38
|
export { enable_default as default };
|
|
39
39
|
|
|
40
|
-
//# sourceMappingURL=enable-
|
|
40
|
+
//# sourceMappingURL=enable-RrpcN6la.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { d as mcp_get_via_cli } from "./claude-cli-
|
|
1
|
+
import { d as mcp_get_via_cli } from "./claude-cli-DnmBJrjg.js";
|
|
2
2
|
import { n as output, t as error } from "./output-BchYq0mR.js";
|
|
3
3
|
import { defineCommand } from "citty";
|
|
4
4
|
//#region src/cli/commands/get.ts
|
|
@@ -38,4 +38,4 @@ var get_default = defineCommand({
|
|
|
38
38
|
//#endregion
|
|
39
39
|
export { get_default as default };
|
|
40
40
|
|
|
41
|
-
//# sourceMappingURL=get-
|
|
41
|
+
//# sourceMappingURL=get-Bb1eOOIZ.js.map
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { m as get_plugin_backup_filename, n as get_backup_filename, r as get_backups_dir, t as ensure_directory_exists } from "./paths-BPISiJi4.js";
|
|
3
3
|
import { n as validate_mcp_server } from "./validation-xMlbgGCF.js";
|
|
4
4
|
import { i as list_plugin_backups, n as get_all_available_servers, o as sync_servers_to_registry, r as list_backups, t as add_server_to_registry } from "./registry-CfUKT7_C.js";
|
|
5
|
-
import { a as install_plugin_via_cli, c as marketplace_remove_via_cli, h as update_plugin_via_cli, i as get_scope_options, l as marketplace_update_via_cli, m as uninstall_plugin_via_cli, n as check_claude_cli, o as marketplace_add_via_cli, p as remove_mcp_via_cli, r as get_scope_description, t as add_mcp_via_cli } from "./claude-cli-
|
|
5
|
+
import { a as install_plugin_via_cli, c as marketplace_remove_via_cli, h as update_plugin_via_cli, i as get_scope_options, l as marketplace_update_via_cli, m as uninstall_plugin_via_cli, n as check_claude_cli, o as marketplace_add_via_cli, p as remove_mcp_via_cli, r as get_scope_description, t as add_mcp_via_cli } from "./claude-cli-DnmBJrjg.js";
|
|
6
6
|
import { a as get_enabled_servers, c as write_claude_config, n as create_config_from_servers, o as get_enabled_servers_for_scope, s as read_claude_config } from "./config-DijVdEFn.js";
|
|
7
7
|
import { a as read_claude_settings, i as get_all_plugins, n as build_enabled_plugins, r as get_all_hooks, s as write_claude_settings } from "./settings-DEcWtzLE.js";
|
|
8
8
|
import { d as refresh_all_marketplaces, l as read_known_marketplaces, n as clear_plugin_caches, r as get_cached_plugins_info, t as clean_orphaned_versions, u as read_marketplace_manifest } from "./plugin-cache-Bby9Dxm9.js";
|
|
@@ -1238,8 +1238,10 @@ const SUBCOMMANDS = new Set([
|
|
|
1238
1238
|
"reload"
|
|
1239
1239
|
]);
|
|
1240
1240
|
const arg = process.argv[2];
|
|
1241
|
-
if (arg && SUBCOMMANDS.has(arg) || arg === "--help" || arg === "-h"
|
|
1242
|
-
|
|
1241
|
+
if (arg && SUBCOMMANDS.has(arg) || arg === "--help" || arg === "-h" || !process.stdout.isTTY) {
|
|
1242
|
+
if (!arg && !process.stdout.isTTY) process.argv.push("--help");
|
|
1243
|
+
import("./cli-CsFfnWBo.js").then((m) => m.run());
|
|
1244
|
+
} else main().catch((error) => {
|
|
1243
1245
|
console.error("Fatal error:", error);
|
|
1244
1246
|
process.exit(1);
|
|
1245
1247
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as marketplace_remove_via_cli, l as marketplace_update_via_cli, o as marketplace_add_via_cli, s as marketplace_list_via_cli } from "./claude-cli-
|
|
1
|
+
import { c as marketplace_remove_via_cli, l as marketplace_update_via_cli, o as marketplace_add_via_cli, s as marketplace_list_via_cli } from "./claude-cli-DnmBJrjg.js";
|
|
2
2
|
import { u as read_marketplace_manifest } from "./plugin-cache-Bby9Dxm9.js";
|
|
3
3
|
import { a as redisable_restored_hooks, t as check_restored_hooks } from "./hook-state-Di8lUsPr.js";
|
|
4
4
|
import { n as output, t as error } from "./output-BchYq0mR.js";
|
|
@@ -165,4 +165,4 @@ var marketplace_default = defineCommand({
|
|
|
165
165
|
//#endregion
|
|
166
166
|
export { marketplace_default as default };
|
|
167
167
|
|
|
168
|
-
//# sourceMappingURL=marketplace-
|
|
168
|
+
//# sourceMappingURL=marketplace-DcKk5dc1.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as install_plugin_via_cli, g as validate_plugin_via_cli, h as update_plugin_via_cli, m as uninstall_plugin_via_cli } from "./claude-cli-
|
|
1
|
+
import { a as install_plugin_via_cli, g as validate_plugin_via_cli, h as update_plugin_via_cli, m as uninstall_plugin_via_cli } from "./claude-cli-DnmBJrjg.js";
|
|
2
2
|
import { a as read_claude_settings, i as get_all_plugins, n as build_enabled_plugins, s as write_claude_settings } from "./settings-DEcWtzLE.js";
|
|
3
3
|
import { l as read_known_marketplaces, o as parse_plugin_key } from "./plugin-cache-Bby9Dxm9.js";
|
|
4
4
|
import { n as output, t as error } from "./output-BchYq0mR.js";
|
|
@@ -209,4 +209,4 @@ var plugins_default = defineCommand({
|
|
|
209
209
|
//#endregion
|
|
210
210
|
export { plugins_default as default };
|
|
211
211
|
|
|
212
|
-
//# sourceMappingURL=plugins-
|
|
212
|
+
//# sourceMappingURL=plugins-Dc7DN6R_.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as read_server_registry, n as get_all_available_servers, s as write_server_registry } from "./registry-CfUKT7_C.js";
|
|
2
|
-
import { p as remove_mcp_via_cli } from "./claude-cli-
|
|
2
|
+
import { p as remove_mcp_via_cli } from "./claude-cli-DnmBJrjg.js";
|
|
3
3
|
import { t as error } from "./output-BchYq0mR.js";
|
|
4
4
|
import { defineCommand } from "citty";
|
|
5
5
|
//#region src/cli/commands/remove.ts
|
|
@@ -28,4 +28,4 @@ var remove_default = defineCommand({
|
|
|
28
28
|
//#endregion
|
|
29
29
|
export { remove_default as default };
|
|
30
30
|
|
|
31
|
-
//# sourceMappingURL=remove-
|
|
31
|
+
//# sourceMappingURL=remove-D1owHLhG.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { f as mcp_reset_project_choices_via_cli } from "./claude-cli-
|
|
1
|
+
import { f as mcp_reset_project_choices_via_cli } from "./claude-cli-DnmBJrjg.js";
|
|
2
2
|
import { n as output, t as error } from "./output-BchYq0mR.js";
|
|
3
3
|
import { defineCommand } from "citty";
|
|
4
4
|
//#region src/cli/commands/reset-project-choices.ts
|
|
@@ -25,4 +25,4 @@ var reset_project_choices_default = defineCommand({
|
|
|
25
25
|
//#endregion
|
|
26
26
|
export { reset_project_choices_default as default };
|
|
27
27
|
|
|
28
|
-
//# sourceMappingURL=reset-project-choices-
|
|
28
|
+
//# sourceMappingURL=reset-project-choices-BfRSNN3m.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcpick",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.20",
|
|
4
4
|
"description": "Claude Code extension manager — MCP servers, plugins (skills, hooks, agents), and marketplaces",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude",
|
|
@@ -17,15 +17,15 @@
|
|
|
17
17
|
"type": "module",
|
|
18
18
|
"main": "./dist/index.js",
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@clack/prompts": "^1.
|
|
21
|
-
"citty": "^0.2.
|
|
20
|
+
"@clack/prompts": "^1.2.0",
|
|
21
|
+
"citty": "^0.2.2",
|
|
22
22
|
"valibot": "^1.3.1"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"@changesets/cli": "^2.30.0",
|
|
26
|
-
"@types/node": "^25.
|
|
27
|
-
"vite-plus": "^0.1.
|
|
28
|
-
"vitest": "^4.1.
|
|
26
|
+
"@types/node": "^25.6.0",
|
|
27
|
+
"vite-plus": "^0.1.16",
|
|
28
|
+
"vitest": "^4.1.4"
|
|
29
29
|
},
|
|
30
30
|
"engines": {
|
|
31
31
|
"node": ">=22.0.0"
|