wopee-mcp 1.0.1

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 (48) hide show
  1. package/INTEGRATION.md +441 -0
  2. package/LICENSE +200 -0
  3. package/QUICK_START.md +50 -0
  4. package/README.md +658 -0
  5. package/dist/config.d.ts +48 -0
  6. package/dist/config.js +165 -0
  7. package/dist/config.js.map +1 -0
  8. package/dist/graphql/client.d.ts +34 -0
  9. package/dist/graphql/client.js +75 -0
  10. package/dist/graphql/client.js.map +1 -0
  11. package/dist/index.d.ts +2 -0
  12. package/dist/index.js +672 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/tools/wopee_dispatch_agent.d.ts +8 -0
  15. package/dist/tools/wopee_dispatch_agent.js +41 -0
  16. package/dist/tools/wopee_dispatch_agent.js.map +1 -0
  17. package/dist/tools/wopee_dispatch_analysis.d.ts +8 -0
  18. package/dist/tools/wopee_dispatch_analysis.js +50 -0
  19. package/dist/tools/wopee_dispatch_analysis.js.map +1 -0
  20. package/dist/tools/wopee_fetch_analysis_suites.d.ts +8 -0
  21. package/dist/tools/wopee_fetch_analysis_suites.js +81 -0
  22. package/dist/tools/wopee_fetch_analysis_suites.js.map +1 -0
  23. package/dist/tools/wopee_generate_app_context.d.ts +8 -0
  24. package/dist/tools/wopee_generate_app_context.js +62 -0
  25. package/dist/tools/wopee_generate_app_context.js.map +1 -0
  26. package/dist/tools/wopee_generate_general_user_stories.d.ts +8 -0
  27. package/dist/tools/wopee_generate_general_user_stories.js +62 -0
  28. package/dist/tools/wopee_generate_general_user_stories.js.map +1 -0
  29. package/dist/tools/wopee_generate_test_cases.d.ts +8 -0
  30. package/dist/tools/wopee_generate_test_cases.js +74 -0
  31. package/dist/tools/wopee_generate_test_cases.js.map +1 -0
  32. package/dist/tools/wopee_generate_user_stories.d.ts +8 -0
  33. package/dist/tools/wopee_generate_user_stories.js +74 -0
  34. package/dist/tools/wopee_generate_user_stories.js.map +1 -0
  35. package/dist/tools/wopee_get_app_context.d.ts +8 -0
  36. package/dist/tools/wopee_get_app_context.js +41 -0
  37. package/dist/tools/wopee_get_app_context.js.map +1 -0
  38. package/dist/tools/wopee_get_test_cases.d.ts +9 -0
  39. package/dist/tools/wopee_get_test_cases.js +43 -0
  40. package/dist/tools/wopee_get_test_cases.js.map +1 -0
  41. package/dist/tools/wopee_get_user_stories.d.ts +8 -0
  42. package/dist/tools/wopee_get_user_stories.js +41 -0
  43. package/dist/tools/wopee_get_user_stories.js.map +1 -0
  44. package/dist/types/index.d.ts +425 -0
  45. package/dist/types/index.js +143 -0
  46. package/dist/types/index.js.map +1 -0
  47. package/env.example +7 -0
  48. package/package.json +117 -0
package/dist/index.js ADDED
@@ -0,0 +1,672 @@
1
+ #!/usr/bin/env node
2
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
3
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
+ import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
5
+ import { configManager } from './config.js';
6
+ import { wopee_dispatch_analysis } from './tools/wopee_dispatch_analysis.js';
7
+ import { wopee_dispatch_agent } from './tools/wopee_dispatch_agent.js';
8
+ import { wopee_generate_app_context } from './tools/wopee_generate_app_context.js';
9
+ import { wopee_generate_general_user_stories } from './tools/wopee_generate_general_user_stories.js';
10
+ import { wopee_generate_user_stories } from './tools/wopee_generate_user_stories.js';
11
+ import { wopee_generate_test_cases } from './tools/wopee_generate_test_cases.js';
12
+ import { wopee_get_app_context } from './tools/wopee_get_app_context.js';
13
+ import { wopee_get_user_stories } from './tools/wopee_get_user_stories.js';
14
+ import { wopee_get_test_cases } from './tools/wopee_get_test_cases.js';
15
+ import { wopee_fetch_analysis_suites } from './tools/wopee_fetch_analysis_suites.js';
16
+ /**
17
+ * Wopee MCP Server
18
+ *
19
+ * This server provides tools for interacting with the Wopee testing platform
20
+ * including starting analysis, generating app context, user stories, tests,
21
+ * and running test executions.
22
+ */
23
+ class WopeeMCPServer {
24
+ server;
25
+ constructor() {
26
+ this.server = new Server({
27
+ name: 'wopee-mcp',
28
+ version: '1.0.0',
29
+ }, {
30
+ capabilities: {
31
+ tools: {},
32
+ },
33
+ });
34
+ this.setupToolHandlers();
35
+ this.setupErrorHandling();
36
+ }
37
+ /**
38
+ * Setup tool handlers for all Wopee tools
39
+ */
40
+ setupToolHandlers() {
41
+ // List available tools
42
+ this.server.setRequestHandler(ListToolsRequestSchema, async () => {
43
+ return {
44
+ tools: [
45
+ {
46
+ name: 'wopee_dispatch_analysis',
47
+ description: 'Dispatch a new analysis for the given project to understand the application structure and behavior',
48
+ inputSchema: {
49
+ type: 'object',
50
+ properties: {
51
+ projectUuid: {
52
+ type: 'string',
53
+ description: 'UUID of the project to analyze',
54
+ },
55
+ iterations: {
56
+ type: 'number',
57
+ description: 'Number of iterations for the analysis',
58
+ },
59
+ suiteAnalysisConfig: {
60
+ type: 'object',
61
+ description: 'Configuration for the analysis suite',
62
+ properties: {
63
+ username: {
64
+ type: 'string',
65
+ description: 'Username for authentication',
66
+ },
67
+ password: {
68
+ type: 'string',
69
+ description: 'Password for authentication',
70
+ },
71
+ cookiesPreference: {
72
+ type: 'string',
73
+ enum: ['ACCEPT_ALL', 'DECLINE_ALL', 'IGNORE'],
74
+ description: 'Cookie preference for the analysis',
75
+ },
76
+ additionalInstructions: {
77
+ type: 'string',
78
+ description: 'Additional instructions for the analysis',
79
+ },
80
+ additionalVariables: {
81
+ type: 'string',
82
+ description: 'Additional variables for the analysis',
83
+ },
84
+ },
85
+ },
86
+ rerun: {
87
+ type: 'object',
88
+ description: 'Rerun configuration',
89
+ properties: {
90
+ suiteUuid: {
91
+ type: 'string',
92
+ description: 'UUID of the suite to rerun',
93
+ },
94
+ analysisIdentifier: {
95
+ type: 'string',
96
+ description: 'Identifier for the analysis',
97
+ },
98
+ mode: {
99
+ type: 'string',
100
+ enum: ['FULL', 'CRAWLING'],
101
+ description: 'Rerun mode',
102
+ },
103
+ },
104
+ required: ['suiteUuid', 'analysisIdentifier', 'mode'],
105
+ },
106
+ },
107
+ required: ['projectUuid'],
108
+ },
109
+ },
110
+ {
111
+ name: 'wopee_dispatch_agent',
112
+ description: 'Dispatch agent to run tests for the given project and suite',
113
+ inputSchema: {
114
+ type: 'object',
115
+ properties: {
116
+ projectUuid: {
117
+ type: 'string',
118
+ description: 'UUID of the project',
119
+ },
120
+ suiteUuid: {
121
+ type: 'string',
122
+ description: 'UUID of the test suite',
123
+ },
124
+ analysisIdentifier: {
125
+ type: 'string',
126
+ description: 'Identifier for the analysis',
127
+ },
128
+ testCases: {
129
+ type: 'array',
130
+ description: 'Array of selected test cases to run',
131
+ items: {
132
+ type: 'object',
133
+ properties: {
134
+ testCaseId: {
135
+ type: 'string',
136
+ description: 'ID of the test case',
137
+ },
138
+ userStoryId: {
139
+ type: 'string',
140
+ description: 'ID of the user story',
141
+ },
142
+ },
143
+ required: ['testCaseId', 'userStoryId'],
144
+ },
145
+ },
146
+ skipRateLimitCheck: {
147
+ type: 'boolean',
148
+ description: 'Whether to skip rate limit check',
149
+ },
150
+ },
151
+ required: ['projectUuid', 'suiteUuid', 'analysisIdentifier'],
152
+ },
153
+ },
154
+ {
155
+ name: 'wopee_generate_app_context',
156
+ description: 'Generate application context based on analysis results to understand the app structure',
157
+ inputSchema: {
158
+ type: 'object',
159
+ properties: {
160
+ projectUuid: {
161
+ type: 'string',
162
+ description: 'UUID of the project',
163
+ },
164
+ suiteUuid: {
165
+ type: 'string',
166
+ description: 'UUID of the test suite',
167
+ },
168
+ extraPrompt: {
169
+ type: 'string',
170
+ description: 'Additional prompt to modify the app context generation',
171
+ },
172
+ selectedUserStories: {
173
+ type: 'array',
174
+ items: {
175
+ type: 'string',
176
+ },
177
+ description: 'Array of selected user story IDs',
178
+ },
179
+ suiteAnalysisConfig: {
180
+ type: 'object',
181
+ description: 'Configuration for the analysis suite',
182
+ properties: {
183
+ username: {
184
+ type: 'string',
185
+ description: 'Username for authentication',
186
+ },
187
+ password: {
188
+ type: 'string',
189
+ description: 'Password for authentication',
190
+ },
191
+ cookiesPreference: {
192
+ type: 'string',
193
+ enum: ['ACCEPT_ALL', 'DECLINE_ALL', 'IGNORE'],
194
+ description: 'Cookie preference for the analysis',
195
+ },
196
+ additionalInstructions: {
197
+ type: 'string',
198
+ description: 'Additional instructions for the analysis',
199
+ },
200
+ additionalVariables: {
201
+ type: 'string',
202
+ description: 'Additional variables for the analysis',
203
+ },
204
+ },
205
+ },
206
+ continueGeneration: {
207
+ type: 'boolean',
208
+ description: 'Whether to continue generation from previous state',
209
+ },
210
+ },
211
+ required: ['projectUuid', 'suiteUuid'],
212
+ },
213
+ },
214
+ {
215
+ name: 'wopee_generate_general_user_stories',
216
+ description: 'Generate general user stories based on analysis results to understand user workflows',
217
+ inputSchema: {
218
+ type: 'object',
219
+ properties: {
220
+ projectUuid: {
221
+ type: 'string',
222
+ description: 'UUID of the project',
223
+ },
224
+ suiteUuid: {
225
+ type: 'string',
226
+ description: 'UUID of the test suite',
227
+ },
228
+ extraPrompt: {
229
+ type: 'string',
230
+ description: 'Additional prompt to modify the user story generation',
231
+ },
232
+ selectedUserStories: {
233
+ type: 'array',
234
+ items: {
235
+ type: 'string',
236
+ },
237
+ description: 'Array of selected user story IDs',
238
+ },
239
+ suiteAnalysisConfig: {
240
+ type: 'object',
241
+ description: 'Configuration for the analysis suite',
242
+ properties: {
243
+ username: {
244
+ type: 'string',
245
+ description: 'Username for authentication',
246
+ },
247
+ password: {
248
+ type: 'string',
249
+ description: 'Password for authentication',
250
+ },
251
+ cookiesPreference: {
252
+ type: 'string',
253
+ enum: ['ACCEPT_ALL', 'DECLINE_ALL', 'IGNORE'],
254
+ description: 'Cookie preference for the analysis',
255
+ },
256
+ additionalInstructions: {
257
+ type: 'string',
258
+ description: 'Additional instructions for the analysis',
259
+ },
260
+ additionalVariables: {
261
+ type: 'string',
262
+ description: 'Additional variables for the analysis',
263
+ },
264
+ },
265
+ },
266
+ continueGeneration: {
267
+ type: 'boolean',
268
+ description: 'Whether to continue generation from previous state',
269
+ },
270
+ },
271
+ required: ['projectUuid', 'suiteUuid'],
272
+ },
273
+ },
274
+ {
275
+ name: 'wopee_generate_user_stories',
276
+ description: 'Generate user stories based on analysis results to understand user workflows',
277
+ inputSchema: {
278
+ type: 'object',
279
+ properties: {
280
+ projectUuid: {
281
+ type: 'string',
282
+ description: 'UUID of the project',
283
+ },
284
+ suiteUuid: {
285
+ type: 'string',
286
+ description: 'UUID of the test suite',
287
+ },
288
+ extraPrompt: {
289
+ type: 'string',
290
+ description: 'Additional prompt to modify the user story generation',
291
+ },
292
+ selectedUserStories: {
293
+ type: 'array',
294
+ items: {
295
+ type: 'string',
296
+ },
297
+ description: 'Array of selected user story IDs',
298
+ },
299
+ suiteAnalysisConfig: {
300
+ type: 'object',
301
+ description: 'Configuration for the analysis suite',
302
+ properties: {
303
+ username: {
304
+ type: 'string',
305
+ description: 'Username for authentication',
306
+ },
307
+ password: {
308
+ type: 'string',
309
+ description: 'Password for authentication',
310
+ },
311
+ cookiesPreference: {
312
+ type: 'string',
313
+ enum: ['ACCEPT_ALL', 'DECLINE_ALL', 'IGNORE'],
314
+ description: 'Cookie preference for the analysis',
315
+ },
316
+ additionalInstructions: {
317
+ type: 'string',
318
+ description: 'Additional instructions for the analysis',
319
+ },
320
+ additionalVariables: {
321
+ type: 'string',
322
+ description: 'Additional variables for the analysis',
323
+ },
324
+ },
325
+ },
326
+ continueGeneration: {
327
+ type: 'boolean',
328
+ description: 'Whether to continue generation from previous state',
329
+ },
330
+ },
331
+ required: ['projectUuid', 'suiteUuid'],
332
+ },
333
+ },
334
+ {
335
+ name: 'wopee_generate_test_cases',
336
+ description: 'Generate test cases based on analysis results and user stories',
337
+ inputSchema: {
338
+ type: 'object',
339
+ properties: {
340
+ projectUuid: {
341
+ type: 'string',
342
+ description: 'UUID of the project',
343
+ },
344
+ suiteUuid: {
345
+ type: 'string',
346
+ description: 'UUID of the test suite',
347
+ },
348
+ extraPrompt: {
349
+ type: 'string',
350
+ description: 'Additional prompt to modify the test case generation',
351
+ },
352
+ selectedUserStories: {
353
+ type: 'array',
354
+ items: {
355
+ type: 'string',
356
+ },
357
+ description: 'Array of selected user story IDs',
358
+ },
359
+ suiteAnalysisConfig: {
360
+ type: 'object',
361
+ description: 'Configuration for the analysis suite',
362
+ properties: {
363
+ username: {
364
+ type: 'string',
365
+ description: 'Username for authentication',
366
+ },
367
+ password: {
368
+ type: 'string',
369
+ description: 'Password for authentication',
370
+ },
371
+ cookiesPreference: {
372
+ type: 'string',
373
+ enum: ['ACCEPT_ALL', 'DECLINE_ALL', 'IGNORE'],
374
+ description: 'Cookie preference for the analysis',
375
+ },
376
+ additionalInstructions: {
377
+ type: 'string',
378
+ description: 'Additional instructions for the analysis',
379
+ },
380
+ additionalVariables: {
381
+ type: 'string',
382
+ description: 'Additional variables for the analysis',
383
+ },
384
+ },
385
+ },
386
+ continueGeneration: {
387
+ type: 'boolean',
388
+ description: 'Whether to continue generation from previous state',
389
+ },
390
+ },
391
+ required: ['projectUuid', 'suiteUuid'],
392
+ },
393
+ },
394
+ {
395
+ name: 'wopee_get_app_context',
396
+ description: 'Get existing app context for the given project and suite',
397
+ inputSchema: {
398
+ type: 'object',
399
+ properties: {
400
+ projectUuid: {
401
+ type: 'string',
402
+ description: 'UUID of the project',
403
+ },
404
+ suiteUuid: {
405
+ type: 'string',
406
+ description: 'UUID of the test suite',
407
+ },
408
+ },
409
+ required: ['projectUuid', 'suiteUuid'],
410
+ },
411
+ },
412
+ {
413
+ name: 'wopee_get_user_stories',
414
+ description: 'Get existing user stories for the given project and suite',
415
+ inputSchema: {
416
+ type: 'object',
417
+ properties: {
418
+ projectUuid: {
419
+ type: 'string',
420
+ description: 'UUID of the project',
421
+ },
422
+ suiteUuid: {
423
+ type: 'string',
424
+ description: 'UUID of the test suite',
425
+ },
426
+ },
427
+ required: ['projectUuid', 'suiteUuid'],
428
+ },
429
+ },
430
+ {
431
+ name: 'wopee_get_test_cases',
432
+ description: 'Get existing test cases for the given project and suite',
433
+ inputSchema: {
434
+ type: 'object',
435
+ properties: {
436
+ projectUuid: {
437
+ type: 'string',
438
+ description: 'UUID of the project',
439
+ },
440
+ suiteUuid: {
441
+ type: 'string',
442
+ description: 'UUID of the test suite',
443
+ },
444
+ },
445
+ required: ['projectUuid', 'suiteUuid'],
446
+ },
447
+ },
448
+ {
449
+ name: 'wopee_fetch_analysis_suites',
450
+ description: 'Fetch all analysis suites for a given project',
451
+ inputSchema: {
452
+ type: 'object',
453
+ properties: {
454
+ projectUuid: {
455
+ type: 'string',
456
+ description: 'UUID of the project',
457
+ },
458
+ },
459
+ required: ['projectUuid'],
460
+ },
461
+ },
462
+ ],
463
+ };
464
+ });
465
+ // Handle tool calls
466
+ this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
467
+ const { name, arguments: args } = request.params;
468
+ try {
469
+ switch (name) {
470
+ case 'wopee_dispatch_analysis':
471
+ return {
472
+ content: [
473
+ {
474
+ type: 'text',
475
+ text: JSON.stringify(await wopee_dispatch_analysis(args), null, 2),
476
+ },
477
+ ],
478
+ };
479
+ case 'wopee_dispatch_agent':
480
+ return {
481
+ content: [
482
+ {
483
+ type: 'text',
484
+ text: JSON.stringify(await wopee_dispatch_agent(args), null, 2),
485
+ },
486
+ ],
487
+ };
488
+ case 'wopee_generate_app_context':
489
+ return {
490
+ content: [
491
+ {
492
+ type: 'text',
493
+ text: JSON.stringify(await wopee_generate_app_context(args), null, 2),
494
+ },
495
+ ],
496
+ };
497
+ case 'wopee_generate_general_user_stories':
498
+ return {
499
+ content: [
500
+ {
501
+ type: 'text',
502
+ text: JSON.stringify(await wopee_generate_general_user_stories(args), null, 2),
503
+ },
504
+ ],
505
+ };
506
+ case 'wopee_generate_user_stories':
507
+ return {
508
+ content: [
509
+ {
510
+ type: 'text',
511
+ text: JSON.stringify(await wopee_generate_user_stories(args), null, 2),
512
+ },
513
+ ],
514
+ };
515
+ case 'wopee_generate_test_cases':
516
+ return {
517
+ content: [
518
+ {
519
+ type: 'text',
520
+ text: JSON.stringify(await wopee_generate_test_cases(args), null, 2),
521
+ },
522
+ ],
523
+ };
524
+ case 'wopee_get_app_context':
525
+ return {
526
+ content: [
527
+ {
528
+ type: 'text',
529
+ text: JSON.stringify(await wopee_get_app_context(args), null, 2),
530
+ },
531
+ ],
532
+ };
533
+ case 'wopee_get_user_stories':
534
+ return {
535
+ content: [
536
+ {
537
+ type: 'text',
538
+ text: JSON.stringify(await wopee_get_user_stories(args), null, 2),
539
+ },
540
+ ],
541
+ };
542
+ case 'wopee_get_test_cases':
543
+ return {
544
+ content: [
545
+ {
546
+ type: 'text',
547
+ text: JSON.stringify(await wopee_get_test_cases(args), null, 2),
548
+ },
549
+ ],
550
+ };
551
+ case 'wopee_fetch_analysis_suites':
552
+ return {
553
+ content: [
554
+ {
555
+ type: 'text',
556
+ text: JSON.stringify(await wopee_fetch_analysis_suites(args), null, 2),
557
+ },
558
+ ],
559
+ };
560
+ default:
561
+ throw new Error(`Unknown tool: ${name}`);
562
+ }
563
+ }
564
+ catch (error) {
565
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
566
+ return {
567
+ content: [
568
+ {
569
+ type: 'text',
570
+ text: JSON.stringify({
571
+ success: false,
572
+ error: `Tool execution failed: ${errorMessage}`,
573
+ }, null, 2),
574
+ },
575
+ ],
576
+ isError: true,
577
+ };
578
+ }
579
+ });
580
+ }
581
+ /**
582
+ * Setup error handling for the server
583
+ */
584
+ setupErrorHandling() {
585
+ this.server.onerror = (error) => {
586
+ console.error('[MCP Error]', error);
587
+ };
588
+ process.on('SIGINT', async () => {
589
+ await this.server.close();
590
+ process.exit(0);
591
+ });
592
+ }
593
+ /**
594
+ * Start the MCP server
595
+ */
596
+ async start() {
597
+ // Validate configuration before starting
598
+ try {
599
+ const config = configManager.getInstance().getConfig();
600
+ console.log(`[Wopee MCP] Starting server with API URL: ${config.apiUrl}`);
601
+ }
602
+ catch (error) {
603
+ console.error('[Wopee MCP] Configuration error:', error);
604
+ process.exit(1);
605
+ }
606
+ const transport = new StdioServerTransport();
607
+ await this.server.connect(transport);
608
+ console.log('[Wopee MCP] Server started successfully');
609
+ }
610
+ }
611
+ // Start the server if this file is run directly
612
+ if (import.meta.url === `file://${process.argv[1]}`) {
613
+ // Check for help flag
614
+ if (process.argv.includes('--help') || process.argv.includes('-h')) {
615
+ console.log(`
616
+ Wopee MCP Server - Autonomous Testing Platform Integration
617
+
618
+ USAGE:
619
+ wopee-mcp [options]
620
+
621
+ OPTIONS:
622
+ -h, --help Show this help message
623
+ -v, --version Show version information
624
+
625
+ ENVIRONMENT VARIABLES:
626
+ WOPEE_API_KEY Your Wopee API key (required)
627
+ WOPEE_PROJECT_UUID Your Wopee project UUID (required)
628
+ WOPEE_API_URL Wopee API endpoint (optional, defaults to https://api.wopee.io/)
629
+
630
+ AVAILABLE TOOLS:
631
+ wopee_dispatch_analysis Dispatch analysis for a project
632
+ wopee_dispatch_agent Dispatch agent to run tests
633
+ wopee_generate_app_context Generate application context from analysis
634
+ wopee_generate_general_user_stories Generate general user stories from analysis
635
+ wopee_generate_user_stories Generate user stories from analysis
636
+ wopee_generate_test_cases Generate test cases from analysis and user stories
637
+ wopee_get_app_context Get existing app context for a project and suite
638
+ wopee_get_user_stories Get existing user stories for a project and suite
639
+ wopee_get_test_cases Get existing test cases for a project and suite
640
+ wopee_fetch_analysis_suites Fetch all analysis suites for a project
641
+
642
+ DOCUMENTATION:
643
+ README.md - Complete documentation
644
+ INTEGRATION.md - VS Code & Cursor integration guide
645
+ QUICK_START.md - Quick start guide
646
+
647
+ EXAMPLES:
648
+ # Start the MCP server
649
+ wopee-mcp
650
+
651
+ # Show version
652
+ wopee-mcp --version
653
+
654
+ # Show help
655
+ wopee-mcp --help
656
+
657
+ For more information, visit: https://github.com/autonomous-testing/wopee-mcp
658
+ `);
659
+ process.exit(0);
660
+ }
661
+ // Check for version flag
662
+ if (process.argv.includes('--version') || process.argv.includes('-v')) {
663
+ console.log('1.0.0');
664
+ process.exit(0);
665
+ }
666
+ const server = new WopeeMCPServer();
667
+ server.start().catch((error) => {
668
+ console.error('[Wopee MCP] Failed to start server:', error);
669
+ process.exit(1);
670
+ });
671
+ }
672
+ //# sourceMappingURL=index.js.map