easyeda-mcp-pro 0.3.1 → 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.
Files changed (40) hide show
  1. package/README.md +302 -29
  2. package/dist/bridge/manager.js +5 -0
  3. package/dist/bridge/manager.js.map +1 -1
  4. package/dist/bridge/protocol.d.ts +1 -0
  5. package/dist/bridge/protocol.js +1 -0
  6. package/dist/bridge/protocol.js.map +1 -1
  7. package/dist/bridge/types.d.ts +10 -0
  8. package/dist/bridge/types.js +10 -0
  9. package/dist/bridge/types.js.map +1 -1
  10. package/dist/cli/auto-setup.d.ts +12 -0
  11. package/dist/cli/auto-setup.js +523 -0
  12. package/dist/cli/auto-setup.js.map +1 -0
  13. package/dist/cli/local-setup.d.ts +5 -1
  14. package/dist/cli/local-setup.js +38 -4
  15. package/dist/cli/local-setup.js.map +1 -1
  16. package/dist/config/profiles.js +4 -4
  17. package/dist/config/version.d.ts +1 -1
  18. package/dist/config/version.js +1 -1
  19. package/dist/index.js +13 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/server/factory.js +14 -0
  22. package/dist/server/factory.js.map +1 -1
  23. package/dist/tools/L1_bom.js +90 -63
  24. package/dist/tools/L1_bom.js.map +1 -1
  25. package/dist/tools/L1_export.js +4 -6
  26. package/dist/tools/L1_export.js.map +1 -1
  27. package/dist/tools/L1_pcb_write.d.ts +6 -0
  28. package/dist/tools/L1_pcb_write.js +277 -0
  29. package/dist/tools/L1_pcb_write.js.map +1 -0
  30. package/dist/tools/L1_schematic.js +64 -3
  31. package/dist/tools/L1_schematic.js.map +1 -1
  32. package/dist/tools/register.js +2 -0
  33. package/dist/tools/register.js.map +1 -1
  34. package/dist/tools/registry.js +38 -9
  35. package/dist/tools/registry.js.map +1 -1
  36. package/dist/tools/types.d.ts +10 -0
  37. package/dist/vendors/lcsc/client.d.ts +7 -0
  38. package/dist/vendors/lcsc/client.js.map +1 -1
  39. package/easyeda-bridge-extension.eext +0 -0
  40. package/package.json +38 -24
@@ -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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"}