easyeda-mcp-pro 0.3.2 → 0.4.0

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.
@@ -0,0 +1,523 @@
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
+ import { dirname, join } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { exec } from 'node:child_process';
5
+ import { createInterface } from 'node:readline/promises';
6
+ import { stdin as input, stdout as output } from 'node:process';
7
+ // ── Constants ───────────────────────────────────────────────
8
+ const SERVER_NAME = 'easyeda-mcp-pro';
9
+ const NPX_COMMAND = 'npx';
10
+ const NPX_ARGS = ['-y', `${SERVER_NAME}@latest`];
11
+ function resolvePackageRoot() {
12
+ return fileURLToPath(new URL('../../', import.meta.url));
13
+ }
14
+ function getExtensionPath() {
15
+ return join(resolvePackageRoot(), 'easyeda-bridge-extension.eext');
16
+ }
17
+ // ── Client definitions ──────────────────────────────────────
18
+ function home() {
19
+ return process.env.HOME ?? process.env.USERPROFILE ?? '';
20
+ }
21
+ function appData() {
22
+ return process.env.APPDATA ?? join(home(), 'AppData', 'Roaming');
23
+ }
24
+ const CLIENTS = [
25
+ {
26
+ name: 'claude',
27
+ displayName: 'Claude Desktop',
28
+ serverKey: 'mcpServers',
29
+ configPaths: [
30
+ { platform: 'win32', path: join(appData(), 'Claude', 'claude_desktop_config.json') },
31
+ {
32
+ platform: 'darwin',
33
+ path: join(home(), 'Library', 'Application Support', 'Claude', 'claude_desktop_config.json'),
34
+ },
35
+ { platform: 'linux', path: join(home(), '.config', 'Claude', 'claude_desktop_config.json') },
36
+ ],
37
+ },
38
+ {
39
+ name: 'cursor',
40
+ displayName: 'Cursor IDE',
41
+ serverKey: 'mcpServers',
42
+ configPaths: [{ platform: 'all', path: join(home(), '.cursor', 'mcp.json') }],
43
+ },
44
+ {
45
+ name: 'vscode',
46
+ displayName: 'VS Code (Copilot)',
47
+ serverKey: 'servers',
48
+ configPaths: [
49
+ { platform: 'win32', path: join(appData(), 'Code', 'User', 'mcp.json') },
50
+ {
51
+ platform: 'darwin',
52
+ path: join(home(), 'Library', 'Application Support', 'Code', 'User', 'mcp.json'),
53
+ },
54
+ { platform: 'linux', path: join(home(), '.config', 'Code', 'User', 'mcp.json') },
55
+ ],
56
+ },
57
+ {
58
+ name: 'windsurf',
59
+ displayName: 'Windsurf (Codeium)',
60
+ serverKey: 'mcpServers',
61
+ configPaths: [
62
+ { platform: 'all', path: join(home(), '.codeium', 'windsurf', 'mcp_config.json') },
63
+ ],
64
+ },
65
+ {
66
+ name: 'cline',
67
+ displayName: 'Cline',
68
+ serverKey: 'mcpServers',
69
+ configPaths: [
70
+ {
71
+ platform: 'win32',
72
+ path: join(appData(), 'Code', 'User', 'globalStorage', 'saoudrizwan.claude-dev', 'settings', 'cline_mcp_settings.json'),
73
+ },
74
+ {
75
+ platform: 'darwin',
76
+ path: join(home(), 'Library', 'Application Support', 'Code', 'User', 'globalStorage', 'saoudrizwan.claude-dev', 'settings', 'cline_mcp_settings.json'),
77
+ },
78
+ {
79
+ platform: 'linux',
80
+ path: join(home(), '.config', 'Code', 'User', 'globalStorage', 'saoudrizwan.claude-dev', 'settings', 'cline_mcp_settings.json'),
81
+ },
82
+ ],
83
+ },
84
+ {
85
+ name: 'gemini',
86
+ displayName: 'Gemini CLI / Antigravity',
87
+ serverKey: 'mcpServers',
88
+ configPaths: [{ platform: 'all', path: join(home(), '.gemini', 'settings.json') }],
89
+ },
90
+ {
91
+ name: 'zed',
92
+ displayName: 'Zed Editor',
93
+ serverKey: 'context_servers',
94
+ configPaths: [
95
+ { platform: 'darwin', path: join(home(), '.config', 'zed', 'settings.json') },
96
+ { platform: 'linux', path: join(home(), '.config', 'zed', 'settings.json') },
97
+ { platform: 'win32', path: join(appData(), 'Zed', 'settings.json') },
98
+ ],
99
+ },
100
+ {
101
+ name: 'amazonq',
102
+ displayName: 'Amazon Q Developer',
103
+ serverKey: 'mcpServers',
104
+ configPaths: [{ platform: 'all', path: join(home(), '.aws', 'amazonq', 'mcp.json') }],
105
+ },
106
+ {
107
+ name: 'continue',
108
+ displayName: 'Continue.dev',
109
+ serverKey: 'mcpServers',
110
+ configPaths: [{ platform: 'all', path: join(home(), '.continue', 'config.json') }],
111
+ },
112
+ ];
113
+ // ── Helpers ─────────────────────────────────────────────────
114
+ function findConfigPath(client) {
115
+ const platform = process.platform;
116
+ // First try to find an existing config file
117
+ for (const cp of client.configPaths) {
118
+ if (cp.platform === 'all' || cp.platform === platform) {
119
+ if (existsSync(cp.path))
120
+ return cp.path;
121
+ }
122
+ }
123
+ // If none exists, return the first matching platform path
124
+ for (const cp of client.configPaths) {
125
+ if (cp.platform === 'all' || cp.platform === platform) {
126
+ return cp.path;
127
+ }
128
+ }
129
+ return null;
130
+ }
131
+ function buildServerEntry(profile, client) {
132
+ const base = {
133
+ command: NPX_COMMAND,
134
+ args: [...NPX_ARGS],
135
+ };
136
+ if (profile !== 'core') {
137
+ base.env = { TOOL_PROFILE: profile };
138
+ }
139
+ // Cline has extra fields
140
+ if (client.name === 'cline') {
141
+ base.disabled = false;
142
+ base.autoApprove = [];
143
+ }
144
+ // Zed uses different structure
145
+ if (client.name === 'zed') {
146
+ return {
147
+ command: {
148
+ path: NPX_COMMAND,
149
+ args: [...NPX_ARGS],
150
+ env: profile !== 'core' ? { TOOL_PROFILE: profile } : undefined,
151
+ },
152
+ settings: {},
153
+ };
154
+ }
155
+ return base;
156
+ }
157
+ function readJsonFile(path) {
158
+ try {
159
+ const raw = readFileSync(path, 'utf8');
160
+ return JSON.parse(raw);
161
+ }
162
+ catch {
163
+ return {};
164
+ }
165
+ }
166
+ function writeJsonFile(path, data) {
167
+ const dir = dirname(path);
168
+ if (!existsSync(dir)) {
169
+ mkdirSync(dir, { recursive: true });
170
+ }
171
+ writeFileSync(path, JSON.stringify(data, null, 2) + '\n', 'utf8');
172
+ }
173
+ function mergeServerEntry(existing, serverKey, serverEntry) {
174
+ const servers = existing[serverKey] ?? {};
175
+ servers[SERVER_NAME] = serverEntry;
176
+ return { ...existing, [serverKey]: servers };
177
+ }
178
+ // ── Status helper ───────────────────────────────────────────
179
+ function ok(text) {
180
+ return ` ✅ ${text}`;
181
+ }
182
+ function info(text) {
183
+ return ` ℹ️ ${text}`;
184
+ }
185
+ function warn(text) {
186
+ return ` ⚠️ ${text}`;
187
+ }
188
+ // ── Core: setup a single client ─────────────────────────────
189
+ function setupClient(client, profile) {
190
+ const lines = [];
191
+ const configPath = findConfigPath(client);
192
+ if (!configPath) {
193
+ lines.push(warn(`No config path found for ${client.displayName} on ${process.platform}`));
194
+ return lines;
195
+ }
196
+ const serverEntry = buildServerEntry(profile, client);
197
+ const fileExists = existsSync(configPath);
198
+ const existing = fileExists ? readJsonFile(configPath) : {};
199
+ const merged = mergeServerEntry(existing, client.serverKey, serverEntry);
200
+ writeJsonFile(configPath, merged);
201
+ if (fileExists) {
202
+ lines.push(ok(`Updated ${client.displayName} config`));
203
+ }
204
+ else {
205
+ lines.push(ok(`Created ${client.displayName} config`));
206
+ }
207
+ lines.push(info(`Path: ${configPath}`));
208
+ return lines;
209
+ }
210
+ // ── Public: run setup command ───────────────────────────────
211
+ export function runSetup(options) {
212
+ const profile = options.profile ?? 'core';
213
+ const clientName = options.client ?? 'list';
214
+ if (clientName === 'list') {
215
+ return formatClientList();
216
+ }
217
+ const lines = [`easyeda-mcp-pro setup (profile: ${profile})`, ''];
218
+ if (clientName === 'all') {
219
+ const detected = detectInstalledClients();
220
+ if (detected.length === 0) {
221
+ lines.push(warn('No MCP clients detected on this system.'));
222
+ lines.push('');
223
+ lines.push('Supported clients:');
224
+ for (const c of CLIENTS) {
225
+ lines.push(` • ${c.displayName} (${c.name})`);
226
+ }
227
+ return lines.join('\n');
228
+ }
229
+ lines.push(`Detected ${detected.length} client(s):`);
230
+ lines.push('');
231
+ for (const client of detected) {
232
+ lines.push(`── ${client.displayName} ──`);
233
+ lines.push(...setupClient(client, profile));
234
+ lines.push('');
235
+ }
236
+ }
237
+ else {
238
+ const client = CLIENTS.find((c) => c.name === clientName);
239
+ if (!client) {
240
+ lines.push(warn(`Unknown client: ${clientName}`));
241
+ lines.push('');
242
+ lines.push('Available clients:');
243
+ for (const c of CLIENTS) {
244
+ lines.push(` • ${c.name} — ${c.displayName}`);
245
+ }
246
+ return lines.join('\n');
247
+ }
248
+ lines.push(`── ${client.displayName} ──`);
249
+ lines.push(...setupClient(client, profile));
250
+ }
251
+ lines.push('');
252
+ lines.push('Next steps:');
253
+ lines.push(' 1. Install the EasyEDA Pro bridge extension:');
254
+ lines.push(` npx ${SERVER_NAME} extension`);
255
+ lines.push(' 2. Restart your MCP client to load the new server.');
256
+ lines.push(' 3. Open a project in EasyEDA Pro, then click MCP Bridge > Connect.');
257
+ return lines.join('\n');
258
+ }
259
+ // ── Public: extension command ───────────────────────────────
260
+ export function runExtension(options) {
261
+ const extPath = getExtensionPath();
262
+ const exists = existsSync(extPath);
263
+ const lines = ['easyeda-mcp-pro extension', ''];
264
+ if (exists) {
265
+ lines.push(ok(`Extension package found`));
266
+ lines.push(info(`Path: ${extPath}`));
267
+ }
268
+ else {
269
+ lines.push(warn('Extension package not found.'));
270
+ lines.push(info(`Expected at: ${extPath}`));
271
+ lines.push('');
272
+ lines.push('Build it with:');
273
+ lines.push(' pnpm build:extension');
274
+ return lines.join('\n');
275
+ }
276
+ if (options.open) {
277
+ lines.push('');
278
+ lines.push(info('Opening extension file location...'));
279
+ openFileLocation(extPath);
280
+ }
281
+ if (options.copy) {
282
+ const dest = join(options.copy, 'easyeda-bridge-extension.eext');
283
+ try {
284
+ const data = readFileSync(extPath);
285
+ const destDir = dirname(dest);
286
+ if (!existsSync(destDir))
287
+ mkdirSync(destDir, { recursive: true });
288
+ writeFileSync(dest, data);
289
+ lines.push(ok(`Copied to ${dest}`));
290
+ }
291
+ catch (err) {
292
+ lines.push(warn(`Failed to copy: ${err}`));
293
+ }
294
+ }
295
+ lines.push('');
296
+ lines.push('Installation:');
297
+ lines.push(' 1. Open EasyEDA Pro');
298
+ lines.push(' 2. Go to Settings → Extensions → Extension Manager');
299
+ lines.push(' 3. Click "Import Extension" and select the .eext file above');
300
+ lines.push(' 4. Enable "Allow External Interaction" for the extension');
301
+ lines.push(' 5. Click MCP Bridge → Connect in the menu bar');
302
+ return lines.join('\n');
303
+ }
304
+ // ── Public: list available clients ──────────────────────────
305
+ export function formatClientList() {
306
+ const lines = ['easyeda-mcp-pro — supported MCP clients', ''];
307
+ const detected = detectInstalledClients();
308
+ for (const client of CLIENTS) {
309
+ const isDetected = detected.some((d) => d.name === client.name);
310
+ const configPath = findConfigPath(client);
311
+ const hasConfig = configPath ? existsSync(configPath) : false;
312
+ const hasEntry = hasConfig && configPath ? configHasServer(configPath, client.serverKey) : false;
313
+ let status;
314
+ if (hasEntry) {
315
+ status = '✅ configured';
316
+ }
317
+ else if (isDetected) {
318
+ status = '🔵 detected';
319
+ }
320
+ else {
321
+ status = '⚪ not found';
322
+ }
323
+ lines.push(` ${status} ${client.displayName} (${client.name})`);
324
+ }
325
+ lines.push('');
326
+ lines.push('Usage:');
327
+ lines.push(` npx ${SERVER_NAME} setup <client> Configure a specific client`);
328
+ lines.push(` npx ${SERVER_NAME} setup all Configure all detected clients`);
329
+ lines.push(` npx ${SERVER_NAME} setup claude Example: Claude Desktop`);
330
+ lines.push('');
331
+ lines.push('Options:');
332
+ lines.push(' --profile <name> Tool profile: core (default), pro, full, dev');
333
+ return lines.join('\n');
334
+ }
335
+ // ── Detection ───────────────────────────────────────────────
336
+ function detectInstalledClients() {
337
+ return CLIENTS.filter((client) => {
338
+ const configPath = findConfigPath(client);
339
+ if (!configPath)
340
+ return false;
341
+ // Check if config file exists
342
+ if (existsSync(configPath))
343
+ return true;
344
+ // Check if parent directory exists (client is likely installed)
345
+ const parentDir = dirname(configPath);
346
+ return existsSync(parentDir);
347
+ });
348
+ }
349
+ function configHasServer(configPath, serverKey) {
350
+ try {
351
+ const data = readJsonFile(configPath);
352
+ const servers = data[serverKey];
353
+ return servers !== undefined && SERVER_NAME in servers;
354
+ }
355
+ catch {
356
+ return false;
357
+ }
358
+ }
359
+ // ── Platform helpers ────────────────────────────────────────
360
+ function openFileLocation(filePath) {
361
+ const dir = dirname(filePath);
362
+ try {
363
+ switch (process.platform) {
364
+ case 'win32':
365
+ exec(`explorer /select,"${filePath.replace(/\//g, '\\')}"`);
366
+ break;
367
+ case 'darwin':
368
+ exec(`open -R "${filePath}"`);
369
+ break;
370
+ default:
371
+ exec(`xdg-open "${dir}"`);
372
+ break;
373
+ }
374
+ }
375
+ catch {
376
+ // Silently ignore — the path is already printed
377
+ }
378
+ }
379
+ // ── Interactive Setup Wizard ────────────────────────────────
380
+ export async function runInteractiveInit() {
381
+ const rl = createInterface({ input, output });
382
+ console.log('╔══════════════════════════════════════════════════════════╗');
383
+ console.log('║ easyeda-mcp-pro Setup Wizard ║');
384
+ console.log('╚══════════════════════════════════════════════════════════╝');
385
+ console.log();
386
+ try {
387
+ // 1. Client Choice
388
+ console.log('Step 1: Choose MCP Client to Configure');
389
+ console.log('--------------------------------------');
390
+ const detected = detectInstalledClients();
391
+ const clientOptions = [
392
+ { name: 'claude', display: 'Claude Desktop' },
393
+ { name: 'cursor', display: 'Cursor IDE' },
394
+ { name: 'vscode', display: 'VS Code (Copilot)' },
395
+ { name: 'windsurf', display: 'Windsurf (Codeium)' },
396
+ { name: 'cline', display: 'Cline' },
397
+ { name: 'gemini', display: 'Gemini CLI / Antigravity' },
398
+ { name: 'zed', display: 'Zed Editor' },
399
+ { name: 'amazonq', display: 'Amazon Q Developer' },
400
+ { name: 'continue', display: 'Continue.dev' },
401
+ ];
402
+ for (let i = 0; i < clientOptions.length; i++) {
403
+ const opt = clientOptions[i];
404
+ const isDet = detected.some((d) => d.name === opt.name);
405
+ console.log(` ${i + 1}. ${opt.display}${isDet ? ' (Detected 🔵)' : ''}`);
406
+ }
407
+ console.log(` ${clientOptions.length + 1}. Configure All Detected`);
408
+ console.log();
409
+ let clientChoiceIndex = -1;
410
+ while (true) {
411
+ const answer = await rl.question(`Select client [1-${clientOptions.length + 1}]: `);
412
+ const val = parseInt(answer.trim(), 10);
413
+ if (val >= 1 && val <= clientOptions.length + 1) {
414
+ clientChoiceIndex = val - 1;
415
+ break;
416
+ }
417
+ console.log('Invalid choice. Please select a valid number.');
418
+ }
419
+ const selectedClient = clientChoiceIndex === clientOptions.length ? 'all' : clientOptions[clientChoiceIndex].name;
420
+ console.log();
421
+ // 2. Profile Choice
422
+ console.log('Step 2: Choose Tool Profile');
423
+ console.log('---------------------------');
424
+ console.log(' 1. core - Basic tools for normal workflow (default)');
425
+ console.log(' 2. pro - Core tools + manufacturing exports (Gerber, PDF, pick-place)');
426
+ console.log(' 3. full - Pro tools + documented EasyEDA API full control');
427
+ console.log(' 4. dev - Full tools + runtime/bridge debugging probes');
428
+ console.log();
429
+ let profileChoice = 'core';
430
+ while (true) {
431
+ const answer = await rl.question('Select profile [1-4, default 1]: ');
432
+ const val = answer.trim();
433
+ if (!val) {
434
+ profileChoice = 'core';
435
+ break;
436
+ }
437
+ const num = parseInt(val, 10);
438
+ if (num === 1) {
439
+ profileChoice = 'core';
440
+ break;
441
+ }
442
+ if (num === 2) {
443
+ profileChoice = 'pro';
444
+ break;
445
+ }
446
+ if (num === 3) {
447
+ profileChoice = 'full';
448
+ break;
449
+ }
450
+ if (num === 4) {
451
+ profileChoice = 'dev';
452
+ break;
453
+ }
454
+ console.log('Invalid choice. Please select a valid number.');
455
+ }
456
+ console.log();
457
+ // 3. Extension Choice
458
+ console.log('Step 3: Setup EasyEDA Pro Bridge Extension');
459
+ console.log('------------------------------------------');
460
+ console.log(' 1. Open folder containing extension package (.eext)');
461
+ console.log(' 2. Copy extension package to a custom folder');
462
+ console.log(' 3. Skip for now');
463
+ console.log();
464
+ let extChoice = 3;
465
+ while (true) {
466
+ const answer = await rl.question('Select option [1-3, default 1]: ');
467
+ const val = answer.trim();
468
+ if (!val) {
469
+ extChoice = 1;
470
+ break;
471
+ }
472
+ const num = parseInt(val, 10);
473
+ if (num >= 1 && num <= 3) {
474
+ extChoice = num;
475
+ break;
476
+ }
477
+ console.log('Invalid choice. Please select a valid number.');
478
+ }
479
+ let copyTarget;
480
+ if (extChoice === 2) {
481
+ while (true) {
482
+ const answer = await rl.question('Enter destination directory path: ');
483
+ const dir = answer.trim();
484
+ if (dir) {
485
+ copyTarget = dir;
486
+ break;
487
+ }
488
+ console.log('Path cannot be empty.');
489
+ }
490
+ }
491
+ console.log();
492
+ console.log('=== Configuring... ===');
493
+ console.log();
494
+ // Perform Client Setup
495
+ const setupResult = runSetup({ client: selectedClient, profile: profileChoice });
496
+ console.log(setupResult);
497
+ console.log();
498
+ // Perform Extension Setup
499
+ if (extChoice === 1) {
500
+ const extResult = runExtension({ open: true });
501
+ console.log(extResult);
502
+ }
503
+ else if (extChoice === 2 && copyTarget) {
504
+ const extResult = runExtension({ copy: copyTarget });
505
+ console.log(extResult);
506
+ }
507
+ else {
508
+ console.log('Extension setup skipped. You can always run:');
509
+ console.log(' npx easyeda-mcp-pro extension --open');
510
+ }
511
+ console.log();
512
+ console.log('════════════════════════════════════════════════════════════');
513
+ console.log('🎉 Setup wizard complete! Please restart your client IDE.');
514
+ console.log('════════════════════════════════════════════════════════════');
515
+ }
516
+ catch (err) {
517
+ console.error('Error during setup wizard:', err);
518
+ }
519
+ finally {
520
+ rl.close();
521
+ }
522
+ }
523
+ //# sourceMappingURL=auto-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-setup.js","sourceRoot":"","sources":["../../src/cli/auto-setup.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,10 @@
1
- type CliCommand = 'server' | 'setup-local' | 'doctor' | 'help' | 'version';
1
+ type CliCommand = 'server' | 'setup-local' | 'setup' | 'extension' | 'doctor' | 'help' | 'version' | 'init';
2
2
  export interface ParsedCliArgs {
3
3
  command: CliCommand;
4
+ setupClient?: string;
5
+ setupProfile?: string;
6
+ extensionOpen?: boolean;
7
+ extensionCopy?: string;
4
8
  }
5
9
  export interface LocalSetupInfo {
6
10
  packageName: string;
@@ -12,9 +12,26 @@ export function parseCliArgs(args) {
12
12
  case '--setup-local':
13
13
  case 'setup-local':
14
14
  return { command: 'setup-local' };
15
+ case '--setup':
16
+ case 'setup': {
17
+ const client = args[1] ?? 'list';
18
+ const profileIdx = args.indexOf('--profile');
19
+ const profile = profileIdx !== -1 ? args[profileIdx + 1] : undefined;
20
+ return { command: 'setup', setupClient: client, setupProfile: profile };
21
+ }
22
+ case '--extension':
23
+ case 'extension': {
24
+ const open = args.includes('--open');
25
+ const copyIdx = args.indexOf('--copy');
26
+ const copy = copyIdx !== -1 ? args[copyIdx + 1] : undefined;
27
+ return { command: 'extension', extensionOpen: open, extensionCopy: copy };
28
+ }
15
29
  case '--doctor':
16
30
  case 'doctor':
17
31
  return { command: 'doctor' };
32
+ case '--init':
33
+ case 'init':
34
+ return { command: 'init' };
18
35
  case '--help':
19
36
  case '-h':
20
37
  case 'help':
@@ -125,10 +142,27 @@ export function formatHelp() {
125
142
  'easyeda-mcp-pro',
126
143
  '',
127
144
  'Usage:',
128
- ' easyeda-mcp-pro Start the MCP server using stdio/http config',
129
- ' easyeda-mcp-pro --setup-local Print MCP client config and extension package path',
130
- ' easyeda-mcp-pro --doctor Check local runtime, package, and bridge status',
131
- ' easyeda-mcp-pro --version Print package version',
145
+ ' easyeda-mcp-pro Start the MCP server (stdio/http)',
146
+ '',
147
+ ' easyeda-mcp-pro init Start interactive setup wizard',
148
+ '',
149
+ ' easyeda-mcp-pro setup [client] Auto-configure an MCP client',
150
+ ' Clients: claude, cursor, vscode, windsurf, cline, gemini, zed, amazonq, continue, all',
151
+ ' Options: --profile <core|pro|full|dev>',
152
+ '',
153
+ ' easyeda-mcp-pro extension Show bridge extension path and install guide',
154
+ ' Options: --open Open file location in file manager',
155
+ ' --copy <dir> Copy .eext to the specified directory',
156
+ '',
157
+ ' easyeda-mcp-pro --setup-local Print MCP client config (legacy)',
158
+ ' easyeda-mcp-pro --doctor Check runtime, package, and bridge status',
159
+ ' easyeda-mcp-pro --version Print package version',
160
+ '',
161
+ 'Examples:',
162
+ ' npx easyeda-mcp-pro init Run interactive setup wizard',
163
+ ' npx easyeda-mcp-pro setup claude Configure Claude Desktop',
164
+ ' npx easyeda-mcp-pro setup all --profile full Configure all detected clients',
165
+ ' npx easyeda-mcp-pro extension --open Open extension file location',
132
166
  ].join('\n');
133
167
  }
134
168
  export function formatVersion(packageRoot = resolvePackageRoot()) {
@@ -1 +1 @@
1
- {"version":3,"file":"local-setup.js","sourceRoot":"","sources":["../../src/cli/local-setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-setup.js","sourceRoot":"","sources":["../../src/cli/local-setup.ts"],"names":[],"mappings":"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"}