mcpick 0.0.23 → 0.0.25

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.
Files changed (32) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +8 -2
  3. package/dist/{add-LJQa2my2.js → add-7mhUpbrt.js} +20 -13
  4. package/dist/{add-json-TEdYweZ5.js → add-json-BMM2L4hv.js} +16 -12
  5. package/dist/{backup-kyS5IVIr.js → backup-C-YJmgps.js} +4 -4
  6. package/dist/{cache-DTfzTsEE.js → cache-BOYZhUF6.js} +4 -3
  7. package/dist/{cli-By-0nYNQ.js → cli-sOeHH4CK.js} +22 -22
  8. package/dist/{clients-qMozizys.js → clients-D5KAuQ5U.js} +3 -3
  9. package/dist/{clone-BVhYjRGO.js → clone-BRJA55js.js} +5 -5
  10. package/dist/{config-DzMmTJYL.js → config-Bzh374VP.js} +4 -13
  11. package/dist/{dev-Cst8WkQ-.js → dev-B-WlQSqY.js} +4 -4
  12. package/dist/{disable-BaOs9lrm.js → disable-Br0aVG3u.js} +16 -12
  13. package/dist/{enable--3mjSmTq.js → enable-DUolKCEH.js} +16 -12
  14. package/dist/{get-CjhNWyRj.js → get-D-6Cl_CO.js} +3 -3
  15. package/dist/{hooks-DFmxgD0t.js → hooks-BKPmZViU.js} +3 -3
  16. package/dist/index.js +595 -393
  17. package/dist/{list-D5CkCXpP.js → list-DMcaHDfM.js} +4 -4
  18. package/dist/{marketplace-C3EGyIG0.js → marketplace-DTW7Ys8k.js} +4 -4
  19. package/dist/mutation-ukRPw3qM.js +19 -0
  20. package/dist/{output-HtT5HCof.js → output-BS1TMOWt.js} +1 -1
  21. package/dist/{plugin-cache-BSgB42wa.js → plugin-cache-Dw1I2YuO.js} +10 -3
  22. package/dist/{plugins-Dn2mPFKm.js → plugins-BzLD4og0.js} +4 -4
  23. package/dist/profile-CmIWUJH_.js +163 -0
  24. package/dist/{reload-257iU7Z7.js → reload-Di28s_rY.js} +2 -2
  25. package/dist/{remove-26XFzkPd.js → remove-B32EuYRC.js} +16 -11
  26. package/dist/{reset-project-choices-D2F04LfC.js → reset-project-choices-DX4TnZ2i.js} +3 -3
  27. package/dist/{restore-BYYsoNqF.js → restore-ByS4xi0y.js} +5 -5
  28. package/dist/{rollback-CPdaME91.js → rollback-DdDJrA8y.js} +3 -3
  29. package/dist/{skills-DfWk9mpk.js → skills-pvyQ17XU.js} +3 -3
  30. package/dist/{validation-xMlbgGCF.js → validation-CfPAjPJ5.js} +21 -2
  31. package/package.json +1 -1
  32. package/dist/profile-Dq3ORPil.js +0 -119
package/CHANGELOG.md CHANGED
@@ -1,5 +1,35 @@
1
1
  # mcpick
2
2
 
3
+ ## 0.0.25
4
+
5
+ ### Patch Changes
6
+
7
+ - dd735be: Migrate server registry storage to portable versioned MCP
8
+ server entries with legacy compatibility.
9
+ - 0a6cc35: Add subprocess integration coverage for built CLI routing,
10
+ mutations, rollback, errors, and redaction.
11
+ - efed902: Remove unsupported dry-run functionality and reframe
12
+ mutation safety around observability and rollback metadata.
13
+ - 6adad04: Preserve disabled plugin hooks during cache clear by
14
+ re-disabling restored marketplace hook definitions.
15
+ - 6ff5070: Align TUI client picker defaults with reverse-sorted
16
+ visible client ordering across flows.
17
+ - d723e32: Improve mutation output with config paths, backup metadata,
18
+ and structured adapter write results.
19
+ - 9f366cf: Save and apply portable MCP profiles across client
20
+ adapters.
21
+ - b2131bd: Align interactive profile load and save flows with
22
+ adapter-backed portable client profile services.
23
+
24
+ ## 0.0.24
25
+
26
+ ### Patch Changes
27
+
28
+ - 1d8cdd4: Add dry-run previews for config mutations with redacted
29
+ structured diffs.
30
+ - 7059ba7: Refactor TUI profile and adapter flows to share CLI
31
+ mutation services, clarifying Claude-specific behavior.
32
+
3
33
  ## 0.0.23
4
34
 
5
35
  ### Patch Changes
package/README.md CHANGED
@@ -141,14 +141,20 @@ npx mcpick cache refresh
141
141
 
142
142
  ## Profiles and backups
143
143
 
144
- Profiles and backups currently preserve MCP server and Claude Code
145
- plugin state.
144
+ Profiles are portable MCP server snapshots. Claude Code plugin state
145
+ is preserved as optional Claude-specific profile metadata.
146
146
 
147
147
  ```bash
148
+ # Legacy Claude Code shortcuts still work
148
149
  npx mcpick --profile database
149
150
  npx mcpick --save-profile mysetup
150
151
  npx mcpick --list-profiles
151
152
 
153
+ # Save/load profiles for a specific MCP client
154
+ npx mcpick profile save work --client vscode --scope project
155
+ npx mcpick profile load work --client opencode --scope project
156
+ npx mcpick profile load work --client pi --scope user
157
+
152
158
  npx mcpick backup
153
159
  npx mcpick restore [file]
154
160
 
@@ -1,6 +1,7 @@
1
- import { n as validate_mcp_server } from "./validation-xMlbgGCF.js";
2
- import { A as add_client_server, F as resolve_client_location, M as get_client_adapter, d as add_mcp_via_cli, w as add_server_to_registry } from "./index.js";
3
- import { n as output, t as error } from "./output-HtT5HCof.js";
1
+ import { n as validate_mcp_server } from "./validation-CfPAjPJ5.js";
2
+ import { E as add_server_to_registry, L as resolve_client_location, M as add_client_server, P as get_client_adapter, p as add_mcp_via_cli } from "./index.js";
3
+ import { n as print_mutation_details, t as claude_mutation_context } from "./mutation-ukRPw3qM.js";
4
+ import { n as output, t as error } from "./output-BS1TMOWt.js";
4
5
  import { defineCommand } from "citty";
5
6
  //#region src/cli/commands/add.ts
6
7
  var add_default = defineCommand({
@@ -99,15 +100,20 @@ var add_default = defineCommand({
99
100
  }
100
101
  await add_server_to_registry(server);
101
102
  const result = await add_mcp_via_cli(server, scope);
103
+ const mutation = claude_mutation_context("add", scope, [server.name]);
102
104
  if (add_args.json) output({
103
105
  added: server.name,
104
- client: "claude-code",
105
- scope,
106
+ ...mutation,
106
107
  cli: result.success,
107
108
  error: result.error
108
109
  }, true);
109
- else if (result.success) console.log(`Added '${server.name}' and enabled (scope: ${scope})`);
110
- else console.log(`Added '${server.name}' to registry but CLI failed: ${result.error}`);
110
+ else if (result.success) {
111
+ console.log(`Added '${server.name}' and enabled (scope: ${scope})`);
112
+ print_mutation_details(mutation);
113
+ } else {
114
+ console.log(`Added '${server.name}' to registry but CLI failed: ${result.error}`);
115
+ print_mutation_details(mutation);
116
+ }
111
117
  }
112
118
  });
113
119
  function build_portable_server(args, transport) {
@@ -138,14 +144,15 @@ async function add_to_client(client, server, scope, location_path, json) {
138
144
  ].includes(scope)) error(`Invalid scope: ${scope}. Use local, project, or user.`);
139
145
  try {
140
146
  const location = resolve_client_location(adapter, scope, location_path);
141
- await add_client_server(adapter, location, server);
147
+ const mutation = await add_client_server(adapter, location, server);
142
148
  if (json) output({
143
149
  added: server.name,
144
- client: adapter.id,
145
- scope: location.scope,
146
- location: location.path
150
+ ...mutation
147
151
  }, true);
148
- else console.log(`Added '${server.name}' (${adapter.id}:${location.scope})`);
152
+ else {
153
+ console.log(`Added '${server.name}' (${adapter.id}:${location.scope})`);
154
+ print_mutation_details(mutation);
155
+ }
149
156
  } catch (err) {
150
157
  error(err instanceof Error ? err.message : "Failed to add server");
151
158
  }
@@ -161,4 +168,4 @@ function parse_key_value_pairs(input) {
161
168
  //#endregion
162
169
  export { add_default as default };
163
170
 
164
- //# sourceMappingURL=add-LJQa2my2.js.map
171
+ //# sourceMappingURL=add-7mhUpbrt.js.map
@@ -1,5 +1,6 @@
1
- import { F as resolve_client_location, M as get_client_adapter, _ as mcp_add_json_via_cli, j as add_client_server_config } from "./index.js";
2
- import { n as output, t as error } from "./output-HtT5HCof.js";
1
+ import { L as resolve_client_location, N as add_client_server_config, P as get_client_adapter, y as mcp_add_json_via_cli } from "./index.js";
2
+ import { n as print_mutation_details, t as claude_mutation_context } from "./mutation-ukRPw3qM.js";
3
+ import { n as output, t as error } from "./output-BS1TMOWt.js";
3
4
  import { defineCommand } from "citty";
4
5
  //#region src/cli/commands/add-json.ts
5
6
  var add_json_default = defineCommand({
@@ -56,15 +57,17 @@ var add_json_default = defineCommand({
56
57
  "user"
57
58
  ].includes(scope)) error(`Invalid scope: ${scope}. Use local, project, or user.`);
58
59
  const result = await mcp_add_json_via_cli(args.name, args.config, scope);
60
+ const mutation = claude_mutation_context("add", scope, [args.name]);
59
61
  if (args.json) output({
60
62
  added: args.name,
61
- client: "claude-code",
62
- scope,
63
+ ...mutation,
63
64
  success: result.success,
64
65
  error: result.error
65
66
  }, true);
66
- else if (result.success) console.log(`Added '${args.name}' from JSON (scope: ${scope})`);
67
- else error(result.error || "Unknown error");
67
+ else if (result.success) {
68
+ console.log(`Added '${args.name}' from JSON (scope: ${scope})`);
69
+ print_mutation_details(mutation);
70
+ } else error(result.error || "Unknown error");
68
71
  }
69
72
  });
70
73
  async function add_json_to_client(client, name, config, scope, location_path, json) {
@@ -77,14 +80,15 @@ async function add_json_to_client(client, name, config, scope, location_path, js
77
80
  ].includes(scope)) error(`Invalid scope: ${scope}. Use local, project, or user.`);
78
81
  try {
79
82
  const location = resolve_client_location(adapter, scope, location_path);
80
- await add_client_server_config(adapter, location, name, config);
83
+ const mutation = await add_client_server_config(adapter, location, name, config);
81
84
  if (json) output({
82
85
  added: name,
83
- client: adapter.id,
84
- scope: location.scope,
85
- location: location.path
86
+ ...mutation
86
87
  }, true);
87
- else console.log(`Added '${name}' from JSON (${adapter.id}:${location.scope})`);
88
+ else {
89
+ console.log(`Added '${name}' from JSON (${adapter.id}:${location.scope})`);
90
+ print_mutation_details(mutation);
91
+ }
88
92
  } catch (err) {
89
93
  error(err instanceof Error ? err.message : "Failed to add server");
90
94
  }
@@ -92,4 +96,4 @@ async function add_json_to_client(client, name, config, scope, location_path, js
92
96
  //#endregion
93
97
  export { add_json_default as default };
94
98
 
95
- //# sourceMappingURL=add-json-TEdYweZ5.js.map
99
+ //# sourceMappingURL=add-json-BMM2L4hv.js.map
@@ -1,7 +1,7 @@
1
1
  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";
2
- import { s as read_claude_config } from "./config-DzMmTJYL.js";
3
- import { V as read_claude_settings } from "./index.js";
4
- import { n as output } from "./output-HtT5HCof.js";
2
+ import { o as read_claude_config } from "./config-Bzh374VP.js";
3
+ import { U as read_claude_settings } from "./index.js";
4
+ import { n as output } from "./output-BS1TMOWt.js";
5
5
  import { readdir, unlink, writeFile } from "node:fs/promises";
6
6
  import { join } from "node:path";
7
7
  import { defineCommand } from "citty";
@@ -61,4 +61,4 @@ var backup_default = defineCommand({
61
61
  //#endregion
62
62
  export { backup_default as default };
63
63
 
64
- //# sourceMappingURL=backup-kyS5IVIr.js.map
64
+ //# sourceMappingURL=backup-C-YJmgps.js.map
@@ -1,5 +1,5 @@
1
- import { a as list_linked_plugins, c as read_installed_plugins, d as refresh_all_marketplaces, f as scan_all_cache_keys, i as link_local_plugin, n as clear_plugin_caches, p as unlink_local_plugin, r as get_cached_plugins_info, t as clean_orphaned_versions } from "./plugin-cache-BSgB42wa.js";
2
- import { n as output, t as error } from "./output-HtT5HCof.js";
1
+ import { a as list_linked_plugins, c as read_installed_plugins, d as refresh_all_marketplaces, f as scan_all_cache_keys, i as link_local_plugin, n as clear_plugin_caches, p as unlink_local_plugin, r as get_cached_plugins_info, t as clean_orphaned_versions } from "./plugin-cache-Dw1I2YuO.js";
2
+ import { n as output, t as error } from "./output-BS1TMOWt.js";
3
3
  import { defineCommand } from "citty";
4
4
  var cache_default = defineCommand({
5
5
  meta: {
@@ -82,6 +82,7 @@ var cache_default = defineCommand({
82
82
  if (args.json) output(result, true);
83
83
  else {
84
84
  for (const key of result.cleared) console.log(`Cleared: ${key}`);
85
+ if (result.redisabledHooks?.success) console.log(`Re-disabled restored hooks: ${result.redisabledHooks.success}`);
85
86
  for (const err of result.errors) console.error(`Error: ${err}`);
86
87
  if (result.cleared.length > 0) console.log("\nRun /reload-plugins in Claude Code or restart your session.");
87
88
  }
@@ -223,4 +224,4 @@ var cache_default = defineCommand({
223
224
  //#endregion
224
225
  export { cache_default as default };
225
226
 
226
- //# sourceMappingURL=cache-DTfzTsEE.js.map
227
+ //# sourceMappingURL=cache-BOYZhUF6.js.map
@@ -6,27 +6,27 @@ const main = defineCommand({
6
6
  description: "Vendor-neutral MCP configuration manager with first-class Claude Code support"
7
7
  },
8
8
  subCommands: {
9
- list: () => import("./list-D5CkCXpP.js").then((m) => m.default),
10
- enable: () => import("./enable--3mjSmTq.js").then((m) => m.default),
11
- disable: () => import("./disable-BaOs9lrm.js").then((m) => m.default),
12
- clients: () => import("./clients-qMozizys.js").then((m) => m.default),
13
- remove: () => import("./remove-26XFzkPd.js").then((m) => m.default),
14
- add: () => import("./add-LJQa2my2.js").then((m) => m.default),
15
- "add-json": () => import("./add-json-TEdYweZ5.js").then((m) => m.default),
16
- clone: () => import("./clone-BVhYjRGO.js").then((m) => m.default),
17
- get: () => import("./get-CjhNWyRj.js").then((m) => m.default),
18
- "reset-project-choices": () => import("./reset-project-choices-D2F04LfC.js").then((m) => m.default),
19
- backup: () => import("./backup-kyS5IVIr.js").then((m) => m.default),
20
- restore: () => import("./restore-BYYsoNqF.js").then((m) => m.default),
21
- profile: () => import("./profile-Dq3ORPil.js").then((m) => m.default),
22
- skills: () => import("./skills-DfWk9mpk.js").then((m) => m.default),
23
- plugins: () => import("./plugins-Dn2mPFKm.js").then((m) => m.default),
24
- hooks: () => import("./hooks-DFmxgD0t.js").then((m) => m.default),
25
- cache: () => import("./cache-DTfzTsEE.js").then((m) => m.default),
26
- dev: () => import("./dev-Cst8WkQ-.js").then((m) => m.default),
27
- marketplace: () => import("./marketplace-C3EGyIG0.js").then((m) => m.default),
28
- reload: () => import("./reload-257iU7Z7.js").then((m) => m.default),
29
- rollback: () => import("./rollback-CPdaME91.js").then((m) => m.default)
9
+ list: () => import("./list-DMcaHDfM.js").then((m) => m.default),
10
+ enable: () => import("./enable-DUolKCEH.js").then((m) => m.default),
11
+ disable: () => import("./disable-Br0aVG3u.js").then((m) => m.default),
12
+ clients: () => import("./clients-D5KAuQ5U.js").then((m) => m.default),
13
+ remove: () => import("./remove-B32EuYRC.js").then((m) => m.default),
14
+ add: () => import("./add-7mhUpbrt.js").then((m) => m.default),
15
+ "add-json": () => import("./add-json-BMM2L4hv.js").then((m) => m.default),
16
+ clone: () => import("./clone-BRJA55js.js").then((m) => m.default),
17
+ get: () => import("./get-D-6Cl_CO.js").then((m) => m.default),
18
+ "reset-project-choices": () => import("./reset-project-choices-DX4TnZ2i.js").then((m) => m.default),
19
+ backup: () => import("./backup-C-YJmgps.js").then((m) => m.default),
20
+ restore: () => import("./restore-ByS4xi0y.js").then((m) => m.default),
21
+ profile: () => import("./profile-CmIWUJH_.js").then((m) => m.default),
22
+ skills: () => import("./skills-pvyQ17XU.js").then((m) => m.default),
23
+ plugins: () => import("./plugins-BzLD4og0.js").then((m) => m.default),
24
+ hooks: () => import("./hooks-BKPmZViU.js").then((m) => m.default),
25
+ cache: () => import("./cache-BOYZhUF6.js").then((m) => m.default),
26
+ dev: () => import("./dev-B-WlQSqY.js").then((m) => m.default),
27
+ marketplace: () => import("./marketplace-DTW7Ys8k.js").then((m) => m.default),
28
+ reload: () => import("./reload-Di28s_rY.js").then((m) => m.default),
29
+ rollback: () => import("./rollback-DdDJrA8y.js").then((m) => m.default)
30
30
  }
31
31
  });
32
32
  /**
@@ -109,4 +109,4 @@ const run = () => runMain(main, { showUsage: show_usage_with_examples });
109
109
  //#endregion
110
110
  export { run };
111
111
 
112
- //# sourceMappingURL=cli-By-0nYNQ.js.map
112
+ //# sourceMappingURL=cli-sOeHH4CK.js.map
@@ -1,5 +1,5 @@
1
- import { N as list_client_locations } from "./index.js";
2
- import { n as output } from "./output-HtT5HCof.js";
1
+ import { F as list_client_locations } from "./index.js";
2
+ import { n as output } from "./output-BS1TMOWt.js";
3
3
  import { defineCommand } from "citty";
4
4
  //#region src/cli/commands/clients.ts
5
5
  var clients_default = defineCommand({
@@ -27,4 +27,4 @@ var clients_default = defineCommand({
27
27
  //#endregion
28
28
  export { clients_default as default };
29
29
 
30
- //# sourceMappingURL=clients-qMozizys.js.map
30
+ //# sourceMappingURL=clients-D5KAuQ5U.js.map
@@ -1,8 +1,8 @@
1
- import { n as validate_mcp_server } from "./validation-xMlbgGCF.js";
2
- import { i as find_server_in_scope, r as detect_server_scope } from "./config-DzMmTJYL.js";
1
+ import { n as validate_mcp_server } from "./validation-CfPAjPJ5.js";
2
+ import { n as detect_server_scope, r as find_server_in_scope } from "./config-Bzh374VP.js";
3
3
  import { n as redact_server } from "./redact-wBMtzbno.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-HtT5HCof.js";
4
+ import { E as add_server_to_registry, p as add_mcp_via_cli } from "./index.js";
5
+ import { n as output, t as error } from "./output-BS1TMOWt.js";
6
6
  import { defineCommand } from "citty";
7
7
  //#region src/cli/commands/clone.ts
8
8
  var clone_default = defineCommand({
@@ -84,4 +84,4 @@ var clone_default = defineCommand({
84
84
  //#endregion
85
85
  export { clone_default as default };
86
86
 
87
- //# sourceMappingURL=clone-BVhYjRGO.js.map
87
+ //# sourceMappingURL=clone-BRJA55js.js.map
@@ -1,11 +1,10 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-CiIaOW0V.js";
2
2
  import { i as get_claude_config_path, o as get_current_project_path, v as get_project_mcp_json_path } from "./paths-BPISiJi4.js";
3
- import { t as validate_claude_config } from "./validation-xMlbgGCF.js";
4
- import { W as atomic_json_write } from "./index.js";
3
+ import { t as validate_claude_config } from "./validation-CfPAjPJ5.js";
4
+ import { K as atomic_json_write } from "./index.js";
5
5
  import { access, readFile } from "node:fs/promises";
6
6
  //#region src/core/config.ts
7
7
  var config_exports = /* @__PURE__ */ __exportAll({
8
- create_config_from_servers: () => create_config_from_servers,
9
8
  detect_server_scope: () => detect_server_scope,
10
9
  find_server_in_scope: () => find_server_in_scope,
11
10
  get_enabled_servers: () => get_enabled_servers,
@@ -37,14 +36,6 @@ function get_enabled_servers(config) {
37
36
  name
38
37
  }));
39
38
  }
40
- function create_config_from_servers(selected_servers) {
41
- const mcp_servers = {};
42
- selected_servers.forEach((server) => {
43
- const { name, ...server_config } = server;
44
- mcp_servers[name] = server_config;
45
- });
46
- return { mcpServers: mcp_servers };
47
- }
48
39
  /**
49
40
  * Find a server's full config in a specific scope.
50
41
  */
@@ -171,6 +162,6 @@ async function get_enabled_servers_for_scope(scope) {
171
162
  }
172
163
  }
173
164
  //#endregion
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 };
165
+ export { get_enabled_servers_for_scope as a, get_enabled_servers as i, detect_server_scope as n, read_claude_config as o, find_server_in_scope as r, write_claude_config as s, config_exports as t };
175
166
 
176
- //# sourceMappingURL=config-DzMmTJYL.js.map
167
+ //# sourceMappingURL=config-Bzh374VP.js.map
@@ -1,8 +1,8 @@
1
1
  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-BPISiJi4.js";
2
- import { i as find_server_in_scope, r as detect_server_scope } from "./config-DzMmTJYL.js";
2
+ import { n as detect_server_scope, r as find_server_in_scope } from "./config-Bzh374VP.js";
3
3
  import { r as redact_server_base } from "./redact-wBMtzbno.js";
4
- import { W as atomic_json_write } from "./index.js";
5
- import { n as output, t as error } from "./output-HtT5HCof.js";
4
+ import { K as atomic_json_write } from "./index.js";
5
+ import { n as output, t as error } from "./output-BS1TMOWt.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-Cst8WkQ-.js.map
265
+ //# sourceMappingURL=dev-B-WlQSqY.js.map
@@ -1,5 +1,6 @@
1
- import { F as resolve_client_location, I as set_client_server_enabled, M as get_client_adapter, T as get_all_available_servers, b as remove_mcp_via_cli } from "./index.js";
2
- import { n as output, t as error } from "./output-HtT5HCof.js";
1
+ import { D as get_all_available_servers, L as resolve_client_location, P as get_client_adapter, R as set_client_server_enabled, S as remove_mcp_via_cli } from "./index.js";
2
+ import { n as print_mutation_details, t as claude_mutation_context } from "./mutation-ukRPw3qM.js";
3
+ import { n as output, t as error } from "./output-BS1TMOWt.js";
3
4
  import { defineCommand } from "citty";
4
5
  //#region src/cli/commands/disable.ts
5
6
  var disable_default = defineCommand({
@@ -46,12 +47,15 @@ var disable_default = defineCommand({
46
47
  await get_all_available_servers();
47
48
  const result = await remove_mcp_via_cli(args.server, scope);
48
49
  if (!result.success) error(result.error || "Failed to disable server");
50
+ const mutation = claude_mutation_context("disable", scope, [args.server]);
49
51
  if (args.json) output({
50
52
  disabled: args.server,
51
- client: "claude-code",
52
- scope
53
+ ...mutation
53
54
  }, true);
54
- else console.log(`Disabled '${args.server}' (scope: ${scope})`);
55
+ else {
56
+ console.log(`Disabled '${args.server}' (scope: ${scope})`);
57
+ print_mutation_details(mutation);
58
+ }
55
59
  }
56
60
  });
57
61
  async function disable_client_server(client, server, scope, location_path, json) {
@@ -64,15 +68,15 @@ async function disable_client_server(client, server, scope, location_path, json)
64
68
  ].includes(scope)) error(`Invalid scope: ${scope}. Use local, project, or user.`);
65
69
  try {
66
70
  const location = resolve_client_location(adapter, scope, location_path);
67
- const enabled_count = await set_client_server_enabled(adapter, location, server, false);
71
+ const mutation = await set_client_server_enabled(adapter, location, server, false);
68
72
  if (json) output({
69
73
  disabled: server,
70
- client: adapter.id,
71
- scope: location.scope,
72
- location: location.path,
73
- enabledCount: enabled_count
74
+ ...mutation
74
75
  }, true);
75
- else console.log(`Disabled '${server}' (${adapter.id}:${location.scope})`);
76
+ else {
77
+ console.log(`Disabled '${server}' (${adapter.id}:${location.scope})`);
78
+ print_mutation_details(mutation);
79
+ }
76
80
  } catch (err) {
77
81
  error(err instanceof Error ? err.message : "Failed to disable server");
78
82
  }
@@ -80,4 +84,4 @@ async function disable_client_server(client, server, scope, location_path, json)
80
84
  //#endregion
81
85
  export { disable_default as default };
82
86
 
83
- //# sourceMappingURL=disable-BaOs9lrm.js.map
87
+ //# sourceMappingURL=disable-Br0aVG3u.js.map
@@ -1,5 +1,6 @@
1
- import { F as resolve_client_location, I as set_client_server_enabled, M as get_client_adapter, T as get_all_available_servers, d as add_mcp_via_cli } from "./index.js";
2
- import { n as output, t as error } from "./output-HtT5HCof.js";
1
+ import { D as get_all_available_servers, L as resolve_client_location, P as get_client_adapter, R as set_client_server_enabled, p as add_mcp_via_cli } from "./index.js";
2
+ import { n as print_mutation_details, t as claude_mutation_context } from "./mutation-ukRPw3qM.js";
3
+ import { n as output, t as error } from "./output-BS1TMOWt.js";
3
4
  import { defineCommand } from "citty";
4
5
  //#region src/cli/commands/enable.ts
5
6
  var enable_default = defineCommand({
@@ -47,12 +48,15 @@ var enable_default = defineCommand({
47
48
  if (!server) error(`Server '${args.server}' not found in registry. Run 'mcpick list' to see available servers.`);
48
49
  const result = await add_mcp_via_cli(server, scope);
49
50
  if (!result.success) error(result.error || "Failed to enable server");
51
+ const mutation = claude_mutation_context("enable", scope, [server.name]);
50
52
  if (args.json) output({
51
53
  enabled: server.name,
52
- client: "claude-code",
53
- scope
54
+ ...mutation
54
55
  }, true);
55
- else console.log(`Enabled '${server.name}' (scope: ${scope})`);
56
+ else {
57
+ console.log(`Enabled '${server.name}' (scope: ${scope})`);
58
+ print_mutation_details(mutation);
59
+ }
56
60
  }
57
61
  });
58
62
  async function enable_client_server(client, server, scope, location_path, json) {
@@ -65,15 +69,15 @@ async function enable_client_server(client, server, scope, location_path, json)
65
69
  ].includes(scope)) error(`Invalid scope: ${scope}. Use local, project, or user.`);
66
70
  try {
67
71
  const location = resolve_client_location(adapter, scope, location_path);
68
- const enabled_count = await set_client_server_enabled(adapter, location, server, true);
72
+ const mutation = await set_client_server_enabled(adapter, location, server, true);
69
73
  if (json) output({
70
74
  enabled: server,
71
- client: adapter.id,
72
- scope: location.scope,
73
- location: location.path,
74
- enabledCount: enabled_count
75
+ ...mutation
75
76
  }, true);
76
- else console.log(`Enabled '${server}' (${adapter.id}:${location.scope})`);
77
+ else {
78
+ console.log(`Enabled '${server}' (${adapter.id}:${location.scope})`);
79
+ print_mutation_details(mutation);
80
+ }
77
81
  } catch (err) {
78
82
  error(err instanceof Error ? err.message : "Failed to enable server");
79
83
  }
@@ -81,4 +85,4 @@ async function enable_client_server(client, server, scope, location_path, json)
81
85
  //#endregion
82
86
  export { enable_default as default };
83
87
 
84
- //# sourceMappingURL=enable--3mjSmTq.js.map
88
+ //# sourceMappingURL=enable-DUolKCEH.js.map
@@ -1,5 +1,5 @@
1
- import { v as mcp_get_via_cli } from "./index.js";
2
- import { n as output, t as error } from "./output-HtT5HCof.js";
1
+ import { b as mcp_get_via_cli } from "./index.js";
2
+ import { n as output, t as error } from "./output-BS1TMOWt.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-CjhNWyRj.js.map
41
+ //# sourceMappingURL=get-D-6Cl_CO.js.map
@@ -1,5 +1,5 @@
1
- import { H as remove_hook, L as add_hook, 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, z as get_all_hooks } from "./index.js";
2
- import { n as output, t as error } from "./output-HtT5HCof.js";
1
+ import { V as get_all_hooks, W as remove_hook, c as check_restored_hooks, d as read_disabled_hooks, f as redisable_restored_hooks, l as disable_plugin_hook, u as enable_plugin_hook, z as add_hook } from "./index.js";
2
+ import { n as output, t as error } from "./output-BS1TMOWt.js";
3
3
  import { defineCommand } from "citty";
4
4
  var hooks_default = defineCommand({
5
5
  meta: {
@@ -276,4 +276,4 @@ var hooks_default = defineCommand({
276
276
  //#endregion
277
277
  export { hooks_default as default };
278
278
 
279
- //# sourceMappingURL=hooks-DFmxgD0t.js.map
279
+ //# sourceMappingURL=hooks-BKPmZViU.js.map