mcpick 0.0.21 → 0.0.22
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/copilot-instructions.md +39 -21
- package/CHANGELOG.md +19 -5
- package/CONTEXT.md +49 -0
- package/README.md +146 -127
- package/dist/{add-BDyaBew0.js → add-Bok0qbXi.js} +4 -5
- package/dist/{add-json-BjgzdeG-.js → add-json-C44vy2A_.js} +3 -3
- package/dist/{atomic-write-BqEykHp9.js → atomic-write-4lANmzsO.js} +1 -1
- package/dist/{backup-DSDhHI5f.js → backup-bdg6dvsb.js} +5 -5
- package/dist/{cache-D6kd7qE8.js → cache-CSUcGdZP.js} +3 -3
- package/dist/cli-avr5R1LO.js +111 -0
- package/dist/clients-CSQgqHzb.js +30 -0
- package/dist/{clone-DYKPEsar.js → clone-CQ0skkT6.js} +6 -7
- package/dist/{config-DijVdEFn.js → config-BhX4eAgg.js} +4 -4
- package/dist/{dev-DRJRNp7y.js → dev-CTDg5g-c.js} +6 -6
- package/dist/{disable-xJXZfUR_.js → disable-DLlOj7sc.js} +3 -4
- package/dist/{enable-RrpcN6la.js → enable-CGFYYC2A.js} +3 -4
- package/dist/{get-Bb1eOOIZ.js → get-l-eAJhBy.js} +3 -3
- package/dist/{hooks-Bmn7pUZa.js → hooks-BWZ_Kgx3.js} +4 -4
- package/dist/index.js +1479 -312
- package/dist/list-By--kltj.js +100 -0
- package/dist/{marketplace-DcKk5dc1.js → marketplace-DdiKDDKK.js} +4 -5
- package/dist/output-BgN9Uuxf.js +17 -0
- package/dist/{paths-BPISiJi4.js → paths-6wrIM8yh.js} +1 -1
- package/dist/{plugin-cache-Bby9Dxm9.js → plugin-cache-DKcW8LGV.js} +3 -3
- package/dist/{plugins-Dc7DN6R_.js → plugins-CsXE8AH4.js} +5 -5
- package/dist/{profile-CX97sMGp.js → profile-DzGPsdsl.js} +5 -5
- package/dist/redact-Dltz2gde.js +88 -0
- package/dist/{reload-CYDhkCVZ.js → reload-C29-vuvy.js} +2 -2
- package/dist/{remove-D1owHLhG.js → remove-B5q4rQRU.js} +3 -4
- package/dist/{reset-project-choices-BfRSNN3m.js → reset-project-choices-Dhh4CxIC.js} +3 -3
- package/dist/{restore-DdMfUljI.js → restore-BI8aiszM.js} +6 -6
- package/dist/{settings-DEcWtzLE.js → settings-CZR8bVfh.js} +5 -5
- package/dist/skills-DPBDmION.js +216 -0
- package/dist/{validation-xMlbgGCF.js → validation-qWlF51fw.js} +1 -1
- package/package.json +20 -6
- package/dist/claude-cli-DnmBJrjg.js +0 -445
- package/dist/cli-CsFfnWBo.js +0 -84
- package/dist/hook-state-Di8lUsPr.js +0 -171
- package/dist/list-B8YeDWt6.js +0 -64
- package/dist/output-BchYq0mR.js +0 -15
- package/dist/profile-DkY_lBEm.js +0 -70
- package/dist/redact-O35tjnRD.js +0 -26
- package/dist/registry-CfUKT7_C.js +0 -92
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { defineCommand, renderUsage, runMain } from "citty";
|
|
2
|
+
//#region src/cli/index.ts
|
|
3
|
+
const main = defineCommand({
|
|
4
|
+
meta: {
|
|
5
|
+
name: "mcpick",
|
|
6
|
+
description: "Vendor-neutral MCP configuration manager with first-class Claude Code support"
|
|
7
|
+
},
|
|
8
|
+
subCommands: {
|
|
9
|
+
list: () => import("./list-By--kltj.js").then((m) => m.default),
|
|
10
|
+
enable: () => import("./enable-CGFYYC2A.js").then((m) => m.default),
|
|
11
|
+
disable: () => import("./disable-DLlOj7sc.js").then((m) => m.default),
|
|
12
|
+
clients: () => import("./clients-CSQgqHzb.js").then((m) => m.default),
|
|
13
|
+
remove: () => import("./remove-B5q4rQRU.js").then((m) => m.default),
|
|
14
|
+
add: () => import("./add-Bok0qbXi.js").then((m) => m.default),
|
|
15
|
+
"add-json": () => import("./add-json-C44vy2A_.js").then((m) => m.default),
|
|
16
|
+
clone: () => import("./clone-CQ0skkT6.js").then((m) => m.default),
|
|
17
|
+
get: () => import("./get-l-eAJhBy.js").then((m) => m.default),
|
|
18
|
+
"reset-project-choices": () => import("./reset-project-choices-Dhh4CxIC.js").then((m) => m.default),
|
|
19
|
+
backup: () => import("./backup-bdg6dvsb.js").then((m) => m.default),
|
|
20
|
+
restore: () => import("./restore-BI8aiszM.js").then((m) => m.default),
|
|
21
|
+
profile: () => import("./profile-DzGPsdsl.js").then((m) => m.default),
|
|
22
|
+
skills: () => import("./skills-DPBDmION.js").then((m) => m.default),
|
|
23
|
+
plugins: () => import("./plugins-CsXE8AH4.js").then((m) => m.default),
|
|
24
|
+
hooks: () => import("./hooks-BWZ_Kgx3.js").then((m) => m.default),
|
|
25
|
+
cache: () => import("./cache-CSUcGdZP.js").then((m) => m.default),
|
|
26
|
+
dev: () => import("./dev-CTDg5g-c.js").then((m) => m.default),
|
|
27
|
+
marketplace: () => import("./marketplace-DdiKDDKK.js").then((m) => m.default),
|
|
28
|
+
reload: () => import("./reload-C29-vuvy.js").then((m) => m.default)
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
/**
|
|
32
|
+
* Custom help renderer that appends workflow guidance and examples
|
|
33
|
+
* after citty's standard help output. This is critical for LLM agents
|
|
34
|
+
* that rely on --help output to understand multi-step workflows.
|
|
35
|
+
*/
|
|
36
|
+
async function show_usage_with_examples(cmd, parent) {
|
|
37
|
+
const base = await renderUsage(cmd, parent);
|
|
38
|
+
if ((await (typeof cmd.meta === "function" ? cmd.meta() : cmd.meta))?.name === "mcpick") console.log(base + "\n" + WORKFLOW_SECTION + "\n" + CONCEPTS_SECTION + "\n" + EXAMPLES_SECTION + "\n");
|
|
39
|
+
else console.log(base + "\n");
|
|
40
|
+
}
|
|
41
|
+
const WORKFLOW_SECTION = `
|
|
42
|
+
\x1b[4m\x1b[1mWORKFLOW\x1b[22m\x1b[24m MCPick has two vendor-neutral layers and one Claude Code-specific layer.
|
|
43
|
+
|
|
44
|
+
MCP servers: toggle configured servers per client with mcpick list/enable/disable/clients.
|
|
45
|
+
Skills: install portable SKILL.md packs through the external skills CLI via mcpick skills.
|
|
46
|
+
Claude Code plugins/hooks/marketplaces: client-specific commands under plugins/hooks/marketplace/cache.`;
|
|
47
|
+
const CONCEPTS_SECTION = `
|
|
48
|
+
\x1b[4m\x1b[1mCONCEPTS\x1b[22m\x1b[24m
|
|
49
|
+
|
|
50
|
+
Marketplace Claude Code-specific plugin catalog hosted on GitHub, GitLab, or locally
|
|
51
|
+
Plugin Claude Code bundle containing any mix of: skills, hooks, agents, MCP servers
|
|
52
|
+
Skill Portable SKILL.md instruction pack installed into one or more agent clients
|
|
53
|
+
MCP server A tool server providing external capabilities to an AI client
|
|
54
|
+
MCP client An application that loads MCP server config (Claude Code, Gemini CLI, VS Code, Cursor, OpenCode, Pi via pi-mcp-adapter, etc.)
|
|
55
|
+
Hook An event handler that runs on tool use, session start, etc.
|
|
56
|
+
Profile A saved snapshot of your MCP server and plugin configuration`;
|
|
57
|
+
const EXAMPLES_SECTION = `
|
|
58
|
+
\x1b[4m\x1b[1mEXAMPLES\x1b[22m\x1b[24m
|
|
59
|
+
|
|
60
|
+
Add a marketplace from GitHub (owner/repo):
|
|
61
|
+
mcpick marketplace add spences10/claude-code-toolkit
|
|
62
|
+
|
|
63
|
+
Add a marketplace from a full URL:
|
|
64
|
+
mcpick marketplace add https://github.com/spences10/claude-code-toolkit
|
|
65
|
+
|
|
66
|
+
Install a plugin from a marketplace:
|
|
67
|
+
mcpick plugins install my-plugin@claude-code-toolkit
|
|
68
|
+
|
|
69
|
+
List all installed plugins and their status:
|
|
70
|
+
mcpick plugins list
|
|
71
|
+
|
|
72
|
+
Toggle an MCP server on or off:
|
|
73
|
+
mcpick enable my-server
|
|
74
|
+
mcpick disable my-server
|
|
75
|
+
|
|
76
|
+
List all MCP servers for Claude Code:
|
|
77
|
+
mcpick list
|
|
78
|
+
|
|
79
|
+
List servers for another client:
|
|
80
|
+
mcpick list --client gemini-cli --scope project
|
|
81
|
+
mcpick list --client opencode --scope project
|
|
82
|
+
mcpick list --client pi --scope user
|
|
83
|
+
|
|
84
|
+
Show supported client config locations:
|
|
85
|
+
mcpick clients
|
|
86
|
+
|
|
87
|
+
List portable skills installed for Pi:
|
|
88
|
+
mcpick skills list --agent pi --json
|
|
89
|
+
|
|
90
|
+
See skills available from a repo without installing:
|
|
91
|
+
mcpick skills add spences10/skills --list
|
|
92
|
+
|
|
93
|
+
Install one portable skill for Pi:
|
|
94
|
+
mcpick skills add spences10/skills --agent pi --skill svelte-runes --yes
|
|
95
|
+
|
|
96
|
+
Install all portable skills for OpenCode globally:
|
|
97
|
+
mcpick skills add spences10/skills --agent opencode --skill '*' --global --yes
|
|
98
|
+
|
|
99
|
+
Update portable skills non-interactively:
|
|
100
|
+
mcpick skills update --global --yes
|
|
101
|
+
|
|
102
|
+
Remove a portable skill for Pi:
|
|
103
|
+
mcpick skills remove svelte-runes --agent pi --yes
|
|
104
|
+
|
|
105
|
+
Prefer --json for machine-readable output where supported. MCPick redacts known secret patterns before printing.
|
|
106
|
+
Run without arguments to launch the interactive TUI (not suitable for LLM agents).`;
|
|
107
|
+
const run = () => runMain(main, { showUsage: show_usage_with_examples });
|
|
108
|
+
//#endregion
|
|
109
|
+
export { run };
|
|
110
|
+
|
|
111
|
+
//# sourceMappingURL=cli-avr5R1LO.js.map
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { j as list_client_locations } from "./index.js";
|
|
2
|
+
import { n as output } from "./output-BgN9Uuxf.js";
|
|
3
|
+
import { defineCommand } from "citty";
|
|
4
|
+
//#region src/cli/commands/clients.ts
|
|
5
|
+
var clients_default = defineCommand({
|
|
6
|
+
meta: {
|
|
7
|
+
name: "clients",
|
|
8
|
+
description: "List supported MCP clients and known config locations"
|
|
9
|
+
},
|
|
10
|
+
args: { json: {
|
|
11
|
+
type: "boolean",
|
|
12
|
+
description: "Output as JSON",
|
|
13
|
+
default: false
|
|
14
|
+
} },
|
|
15
|
+
async run({ args }) {
|
|
16
|
+
const locations = await list_client_locations();
|
|
17
|
+
if (args.json) {
|
|
18
|
+
output(locations, true);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
for (const location of locations) {
|
|
22
|
+
const status = location.exists ? "found" : "missing";
|
|
23
|
+
console.log(`${location.client}:${location.scope} ${status} ${location.path}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
//#endregion
|
|
28
|
+
export { clients_default as default };
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=clients-CSQgqHzb.js.map
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { n as validate_mcp_server } from "./validation-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { n as output, t as error } from "./output-
|
|
6
|
-
import { t as redact_server } from "./redact-O35tjnRD.js";
|
|
1
|
+
import { n as validate_mcp_server } from "./validation-qWlF51fw.js";
|
|
2
|
+
import { i as find_server_in_scope, r as detect_server_scope } from "./config-BhX4eAgg.js";
|
|
3
|
+
import { n as redact_server } from "./redact-Dltz2gde.js";
|
|
4
|
+
import { d as add_mcp_via_cli, w as add_server_to_registry } from "./index.js";
|
|
5
|
+
import { n as output, t as error } from "./output-BgN9Uuxf.js";
|
|
7
6
|
import { defineCommand } from "citty";
|
|
8
7
|
//#region src/cli/commands/clone.ts
|
|
9
8
|
var clone_default = defineCommand({
|
|
@@ -85,4 +84,4 @@ var clone_default = defineCommand({
|
|
|
85
84
|
//#endregion
|
|
86
85
|
export { clone_default as default };
|
|
87
86
|
|
|
88
|
-
//# sourceMappingURL=clone-
|
|
87
|
+
//# sourceMappingURL=clone-CQ0skkT6.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-CiIaOW0V.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { t as
|
|
2
|
+
import { t as atomic_json_write } from "./atomic-write-4lANmzsO.js";
|
|
3
|
+
import { i as get_claude_config_path, o as get_current_project_path, v as get_project_mcp_json_path } from "./paths-6wrIM8yh.js";
|
|
4
|
+
import { t as validate_claude_config } from "./validation-qWlF51fw.js";
|
|
5
5
|
import { access, readFile } from "node:fs/promises";
|
|
6
6
|
//#region src/core/config.ts
|
|
7
7
|
var config_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -173,4 +173,4 @@ async function get_enabled_servers_for_scope(scope) {
|
|
|
173
173
|
//#endregion
|
|
174
174
|
export { get_enabled_servers as a, write_claude_config as c, find_server_in_scope as i, create_config_from_servers as n, get_enabled_servers_for_scope as o, detect_server_scope as r, read_claude_config as s, config_exports as t };
|
|
175
175
|
|
|
176
|
-
//# sourceMappingURL=config-
|
|
176
|
+
//# sourceMappingURL=config-BhX4eAgg.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { i as find_server_in_scope, r as detect_server_scope } from "./config-
|
|
4
|
-
import {
|
|
5
|
-
import { n as
|
|
1
|
+
import { t as atomic_json_write } from "./atomic-write-4lANmzsO.js";
|
|
2
|
+
import { i as get_claude_config_path, o as get_current_project_path, s as get_dev_overrides_path, v as get_project_mcp_json_path } from "./paths-6wrIM8yh.js";
|
|
3
|
+
import { i as find_server_in_scope, r as detect_server_scope } from "./config-BhX4eAgg.js";
|
|
4
|
+
import { r as redact_server_base } from "./redact-Dltz2gde.js";
|
|
5
|
+
import { n as output, t as error } from "./output-BgN9Uuxf.js";
|
|
6
6
|
import { readFile } from "node:fs/promises";
|
|
7
7
|
import { defineCommand } from "citty";
|
|
8
8
|
//#region src/core/dev-override.ts
|
|
@@ -262,4 +262,4 @@ var dev_default = defineCommand({
|
|
|
262
262
|
//#endregion
|
|
263
263
|
export { dev_default as default };
|
|
264
264
|
|
|
265
|
-
//# sourceMappingURL=dev-
|
|
265
|
+
//# sourceMappingURL=dev-CTDg5g-c.js.map
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { t as error } from "./output-BchYq0mR.js";
|
|
1
|
+
import { T as get_all_available_servers, b as remove_mcp_via_cli } from "./index.js";
|
|
2
|
+
import { t as error } from "./output-BgN9Uuxf.js";
|
|
4
3
|
import { defineCommand } from "citty";
|
|
5
4
|
//#region src/cli/commands/disable.ts
|
|
6
5
|
var disable_default = defineCommand({
|
|
@@ -36,4 +35,4 @@ var disable_default = defineCommand({
|
|
|
36
35
|
//#endregion
|
|
37
36
|
export { disable_default as default };
|
|
38
37
|
|
|
39
|
-
//# sourceMappingURL=disable-
|
|
38
|
+
//# sourceMappingURL=disable-DLlOj7sc.js.map
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as
|
|
3
|
-
import { t as error } from "./output-BchYq0mR.js";
|
|
1
|
+
import { T as get_all_available_servers, d as add_mcp_via_cli } from "./index.js";
|
|
2
|
+
import { t as error } from "./output-BgN9Uuxf.js";
|
|
4
3
|
import { defineCommand } from "citty";
|
|
5
4
|
//#region src/cli/commands/enable.ts
|
|
6
5
|
var enable_default = defineCommand({
|
|
@@ -37,4 +36,4 @@ var enable_default = defineCommand({
|
|
|
37
36
|
//#endregion
|
|
38
37
|
export { enable_default as default };
|
|
39
38
|
|
|
40
|
-
//# sourceMappingURL=enable-
|
|
39
|
+
//# sourceMappingURL=enable-CGFYYC2A.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as output, t as error } from "./output-
|
|
1
|
+
import { v as mcp_get_via_cli } from "./index.js";
|
|
2
|
+
import { n as output, t as error } from "./output-BgN9Uuxf.js";
|
|
3
3
|
import { defineCommand } from "citty";
|
|
4
4
|
//#region src/cli/commands/get.ts
|
|
5
5
|
var get_default = defineCommand({
|
|
@@ -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-l-eAJhBy.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { o as remove_hook, r as get_all_hooks, t as add_hook } from "./settings-
|
|
2
|
-
import {
|
|
3
|
-
import { n as output, t as error } from "./output-
|
|
1
|
+
import { o as remove_hook, r as get_all_hooks, t as add_hook } from "./settings-CZR8bVfh.js";
|
|
2
|
+
import { c as enable_plugin_hook, l as read_disabled_hooks, o as check_restored_hooks, s as disable_plugin_hook, u as redisable_restored_hooks } from "./index.js";
|
|
3
|
+
import { n as output, t as error } from "./output-BgN9Uuxf.js";
|
|
4
4
|
import { defineCommand } from "citty";
|
|
5
5
|
var hooks_default = defineCommand({
|
|
6
6
|
meta: {
|
|
@@ -277,4 +277,4 @@ var hooks_default = defineCommand({
|
|
|
277
277
|
//#endregion
|
|
278
278
|
export { hooks_default as default };
|
|
279
279
|
|
|
280
|
-
//# sourceMappingURL=hooks-
|
|
280
|
+
//# sourceMappingURL=hooks-BWZ_Kgx3.js.map
|