mcpick 0.0.3 → 0.0.5

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/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # mcpick
2
2
 
3
+ ## 0.0.5
4
+
5
+ ### Patch Changes
6
+
7
+ - abc8715: fix: improve UI labels and add documentation about global
8
+ MCP server configuration
9
+
10
+ ## 0.0.4
11
+
12
+ ### Patch Changes
13
+
14
+ - 25f7d07: chore: remove non-functional launch feature
15
+
3
16
  ## 0.0.3
4
17
 
5
18
  ### Patch Changes
package/README.md CHANGED
@@ -6,9 +6,11 @@ context usage and performance.
6
6
 
7
7
  ## Installation
8
8
 
9
- ### One-time Usage
9
+ ### One-time Usage (recommended)
10
10
 
11
11
  ```bash
12
+ pnpx mcpick
13
+ # or
12
14
  pnpm dlx mcpick
13
15
  # or
14
16
  npx mcpick
@@ -59,8 +61,6 @@ McPick provides an intuitive CLI menu to:
59
61
  preserving other Claude Code settings
60
62
  - 💾 **Backup & restore** - Create focused backups of your MCP server
61
63
  configurations
62
- - 🚀 **Quick launch** - Start Claude Code with your optimized
63
- configuration
64
64
 
65
65
  ## Features
66
66
 
@@ -74,7 +74,6 @@ McPick provides an intuitive CLI menu to:
74
74
  │ ○ Backup config
75
75
  │ ○ Add MCP server
76
76
  │ ○ Restore from backup
77
- │ ○ Launch Claude Code
78
77
  │ ○ Exit
79
78
 
80
79
  ```
@@ -103,7 +102,8 @@ McPick provides an intuitive CLI menu to:
103
102
 
104
103
  1. **Before a coding session**: Run MCPick and enable only relevant
105
104
  servers (e.g., just database tools for DB work)
106
- 2. **Launch Claude Code**: Use MCPick's "Launch Claude Code" option
105
+ 2. **Launch Claude Code**: Run `claude` to start with your configured
106
+ servers
107
107
  3. **Switch contexts**: Re-run MCPick to enable different servers for
108
108
  different tasks
109
109
 
@@ -143,6 +143,11 @@ MCPick works with the standard Claude Code configuration format:
143
143
  server database)
144
144
  - **Backups**: `~/.claude/mcpick/backups/` (MCP configuration backups)
145
145
 
146
+ > **Note**: If your MCP servers do not appear in MCPick, ensure they
147
+ > are configured at the global level in Claude Code
148
+ > (`~/.claude.json`), not at the project level (`.claude.json` in your
149
+ > project directory). MCPick manages the global configuration file.
150
+
146
151
  ## Safety Features
147
152
 
148
153
  - **Non-destructive**: Only modifies the `mcpServers` section of your
@@ -154,6 +159,23 @@ MCPick works with the standard Claude Code configuration format:
154
159
  - **Error handling**: Graceful failure modes with helpful error
155
160
  messages
156
161
 
162
+ ## Future Features
163
+
164
+ McPick is actively being developed with new features planned. See the
165
+ [roadmap](./docs/ROADMAP.md) for details on:
166
+
167
+ - **Settings Validation** - Validate your Claude Code settings files
168
+ using the
169
+ [claude-code-settings-schema](https://github.com/spences10/claude-code-settings-schema)
170
+ - **Permissions Management** - Interactive tool permission
171
+ configuration with presets (Safe Mode, Dev Mode, Review Mode)
172
+ - **Configuration Profiles** - Save and switch between complete
173
+ configuration snapshots for different workflows
174
+
175
+ Have ideas for other features?
176
+ [Open an issue](https://github.com/spences10/mcpick/issues) or check
177
+ out the [contribution guide](./docs/ROADMAP.md)!
178
+
157
179
  ## Requirements
158
180
 
159
181
  - Node.js 22+
@@ -25,7 +25,7 @@ export async function edit_config() {
25
25
  hint: server.description || '',
26
26
  }));
27
27
  const selected_server_names = await multiselect({
28
- message: 'Select MCP servers to enable:',
28
+ message: 'Select MCP servers to enable (Toggle On/Off servers with spacebar):',
29
29
  options: server_choices,
30
30
  initialValues: currently_enabled,
31
31
  required: false,
@@ -1,31 +1,20 @@
1
- import { spinner } from '@clack/prompts';
2
- import { spawn } from 'node:child_process';
1
+ import { outro } from '@clack/prompts';
2
+ import { execSync } from 'node:child_process';
3
3
  export async function launch_claude_code() {
4
- const s = spinner();
5
4
  try {
6
- s.start('Launching Claude Code...');
7
- const claude_process = spawn('claude', ['code'], {
8
- stdio: 'ignore',
9
- detached: true,
5
+ outro('Launching Claude Code...');
6
+ // Replace the current process with claude using exec
7
+ // This ensures the terminal stays valid and Claude gets full control
8
+ execSync('claude', {
9
+ stdio: 'inherit',
10
10
  });
11
- claude_process.unref();
12
- await new Promise((resolve, reject) => {
13
- claude_process.on('error', (error) => {
14
- if (error.message.includes('ENOENT')) {
15
- reject(new Error('Claude Code not found. Make sure it is installed and in your PATH.'));
16
- }
17
- else {
18
- reject(error);
19
- }
20
- });
21
- setTimeout(() => {
22
- resolve(void 0);
23
- }, 1000);
24
- });
25
- s.stop('Claude Code launched successfully!');
26
11
  }
27
12
  catch (error) {
28
- s.stop('Failed to launch Claude Code');
13
+ if (error instanceof Error && 'status' in error) {
14
+ // Claude exited normally, just return
15
+ return;
16
+ }
17
+ // Only throw for actual errors (not exit codes)
29
18
  throw new Error(`Failed to launch Claude Code: ${error instanceof Error ? error.message : 'Unknown error'}`);
30
19
  }
31
20
  }
package/dist/index.js CHANGED
@@ -3,7 +3,6 @@ import { cancel, intro, isCancel, outro, select, } from '@clack/prompts';
3
3
  import { add_server } from './commands/add-server.js';
4
4
  import { backup_config } from './commands/backup.js';
5
5
  import { edit_config } from './commands/edit-config.js';
6
- import { launch_claude_code } from './commands/launch.js';
7
6
  import { restore_config } from './commands/restore.js';
8
7
  async function main() {
9
8
  intro('MCPick - MCP Server Configuration Manager');
@@ -14,7 +13,7 @@ async function main() {
14
13
  options: [
15
14
  {
16
15
  value: 'edit-config',
17
- label: 'Edit config',
16
+ label: 'Enable / Disable MCP servers',
18
17
  hint: 'Toggle MCP servers on/off',
19
18
  },
20
19
  {
@@ -32,11 +31,6 @@ async function main() {
32
31
  label: 'Restore from backup',
33
32
  hint: 'Restore from a previous backup',
34
33
  },
35
- {
36
- value: 'launch',
37
- label: 'Launch Claude Code',
38
- hint: 'Start Claude Code with current config',
39
- },
40
34
  {
41
35
  value: 'exit',
42
36
  label: 'Exit',
@@ -61,9 +55,6 @@ async function main() {
61
55
  case 'restore':
62
56
  await restore_config();
63
57
  break;
64
- case 'launch':
65
- await launch_claude_code();
66
- break;
67
58
  case 'exit':
68
59
  outro('Goodbye!');
69
60
  process.exit(0);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcpick",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "description": "Dynamic MCP server configuration manager for Claude Code",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -25,7 +25,7 @@
25
25
  },
26
26
  "devDependencies": {
27
27
  "@changesets/cli": "^2.29.7",
28
- "@types/node": "^24.6.1",
28
+ "@types/node": "^24.7.0",
29
29
  "prettier": "^3.6.2",
30
30
  "typescript": "^5.9.3"
31
31
  },