pcbway-mcp-server 0.1.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 (103) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +322 -0
  3. package/dist/client.d.ts +35 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/client.js +135 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/config.d.ts +23 -0
  8. package/dist/config.d.ts.map +1 -0
  9. package/dist/config.js +24 -0
  10. package/dist/config.js.map +1 -0
  11. package/dist/enums.d.ts +20 -0
  12. package/dist/enums.d.ts.map +1 -0
  13. package/dist/enums.js +20 -0
  14. package/dist/enums.js.map +1 -0
  15. package/dist/index.d.ts +3 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +509 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/resources/Account.d.ts +14 -0
  20. package/dist/resources/Account.d.ts.map +1 -0
  21. package/dist/resources/Account.js +22 -0
  22. package/dist/resources/Account.js.map +1 -0
  23. package/dist/resources/AssemblyQuote.d.ts +144 -0
  24. package/dist/resources/AssemblyQuote.d.ts.map +1 -0
  25. package/dist/resources/AssemblyQuote.js +102 -0
  26. package/dist/resources/AssemblyQuote.js.map +1 -0
  27. package/dist/resources/CancelOrder.d.ts +23 -0
  28. package/dist/resources/CancelOrder.d.ts.map +1 -0
  29. package/dist/resources/CancelOrder.js +21 -0
  30. package/dist/resources/CancelOrder.js.map +1 -0
  31. package/dist/resources/CancelTGroupOrder.d.ts +23 -0
  32. package/dist/resources/CancelTGroupOrder.d.ts.map +1 -0
  33. package/dist/resources/CancelTGroupOrder.js +21 -0
  34. package/dist/resources/CancelTGroupOrder.js.map +1 -0
  35. package/dist/resources/CheckGroupOrder.d.ts +23 -0
  36. package/dist/resources/CheckGroupOrder.d.ts.map +1 -0
  37. package/dist/resources/CheckGroupOrder.js +40 -0
  38. package/dist/resources/CheckGroupOrder.js.map +1 -0
  39. package/dist/resources/CheckTGroupOrder.d.ts +23 -0
  40. package/dist/resources/CheckTGroupOrder.d.ts.map +1 -0
  41. package/dist/resources/CheckTGroupOrder.js +43 -0
  42. package/dist/resources/CheckTGroupOrder.js.map +1 -0
  43. package/dist/resources/ConfirmOrder.d.ts +107 -0
  44. package/dist/resources/ConfirmOrder.d.ts.map +1 -0
  45. package/dist/resources/ConfirmOrder.js +67 -0
  46. package/dist/resources/ConfirmOrder.js.map +1 -0
  47. package/dist/resources/GetCities.d.ts +35 -0
  48. package/dist/resources/GetCities.d.ts.map +1 -0
  49. package/dist/resources/GetCities.js +33 -0
  50. package/dist/resources/GetCities.js.map +1 -0
  51. package/dist/resources/GetCountries.d.ts +14 -0
  52. package/dist/resources/GetCountries.d.ts.map +1 -0
  53. package/dist/resources/GetCountries.js +22 -0
  54. package/dist/resources/GetCountries.js.map +1 -0
  55. package/dist/resources/GetStates.d.ts +29 -0
  56. package/dist/resources/GetStates.d.ts.map +1 -0
  57. package/dist/resources/GetStates.js +31 -0
  58. package/dist/resources/GetStates.js.map +1 -0
  59. package/dist/resources/Order.d.ts +25 -0
  60. package/dist/resources/Order.d.ts.map +1 -0
  61. package/dist/resources/Order.js +59 -0
  62. package/dist/resources/Order.js.map +1 -0
  63. package/dist/resources/OrderDetails.d.ts +23 -0
  64. package/dist/resources/OrderDetails.d.ts.map +1 -0
  65. package/dist/resources/OrderDetails.js +47 -0
  66. package/dist/resources/OrderDetails.js.map +1 -0
  67. package/dist/resources/OrderProcess.d.ts +23 -0
  68. package/dist/resources/OrderProcess.d.ts.map +1 -0
  69. package/dist/resources/OrderProcess.js +36 -0
  70. package/dist/resources/OrderProcess.js.map +1 -0
  71. package/dist/resources/PayTGroupOrder.d.ts +29 -0
  72. package/dist/resources/PayTGroupOrder.d.ts.map +1 -0
  73. package/dist/resources/PayTGroupOrder.js +41 -0
  74. package/dist/resources/PayTGroupOrder.js.map +1 -0
  75. package/dist/resources/PcbQuote.d.ts +329 -0
  76. package/dist/resources/PcbQuote.d.ts.map +1 -0
  77. package/dist/resources/PcbQuote.js +111 -0
  78. package/dist/resources/PcbQuote.js.map +1 -0
  79. package/dist/resources/PlaceOrder.d.ts +173 -0
  80. package/dist/resources/PlaceOrder.d.ts.map +1 -0
  81. package/dist/resources/PlaceOrder.js +90 -0
  82. package/dist/resources/PlaceOrder.js.map +1 -0
  83. package/dist/resources/Shipping.d.ts +65 -0
  84. package/dist/resources/Shipping.d.ts.map +1 -0
  85. package/dist/resources/Shipping.js +47 -0
  86. package/dist/resources/Shipping.js.map +1 -0
  87. package/dist/resources/SmtQuote.d.ts +89 -0
  88. package/dist/resources/SmtQuote.d.ts.map +1 -0
  89. package/dist/resources/SmtQuote.js +56 -0
  90. package/dist/resources/SmtQuote.js.map +1 -0
  91. package/dist/resources/Status.d.ts +27 -0
  92. package/dist/resources/Status.d.ts.map +1 -0
  93. package/dist/resources/Status.js +47 -0
  94. package/dist/resources/Status.js.map +1 -0
  95. package/dist/resources/common.d.ts +10 -0
  96. package/dist/resources/common.d.ts.map +1 -0
  97. package/dist/resources/common.js +69 -0
  98. package/dist/resources/common.js.map +1 -0
  99. package/dist/types.d.ts +552 -0
  100. package/dist/types.d.ts.map +1 -0
  101. package/dist/types.js +8 -0
  102. package/dist/types.js.map +1 -0
  103. package/package.json +56 -0
package/dist/index.js ADDED
@@ -0,0 +1,509 @@
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 { loadConfig } from './config.js';
6
+ import { PcbWayClient } from './client.js';
7
+ import { PcbQuote } from './resources/PcbQuote.js';
8
+ import { SmtQuote } from './resources/SmtQuote.js';
9
+ import { OrderProcess } from './resources/OrderProcess.js';
10
+ import { OrderDetails } from './resources/OrderDetails.js';
11
+ import { Shipping } from './resources/Shipping.js';
12
+ import { Account } from './resources/Account.js';
13
+ import { PlaceOrder } from './resources/PlaceOrder.js';
14
+ import { ConfirmOrder } from './resources/ConfirmOrder.js';
15
+ import { CancelOrder } from './resources/CancelOrder.js';
16
+ import { CheckTGroupOrder } from './resources/CheckTGroupOrder.js';
17
+ import { PayTGroupOrder } from './resources/PayTGroupOrder.js';
18
+ import { CancelTGroupOrder } from './resources/CancelTGroupOrder.js';
19
+ import { CheckGroupOrder } from './resources/CheckGroupOrder.js';
20
+ import { GetCountries } from './resources/GetCountries.js';
21
+ import { GetStates } from './resources/GetStates.js';
22
+ import { GetCities } from './resources/GetCities.js';
23
+ // ── Help flag ──────────────────────────────────────────────────────
24
+ function printHelp() {
25
+ const help = `
26
+ pcbway-mcp — MCP server for the PCBWay Partner API
27
+
28
+ USAGE
29
+ pcbway-mcp Start MCP server on stdin/stdout
30
+ pcbway-mcp --help Print this help
31
+
32
+ ENVIRONMENT
33
+ PCBWAY_API_KEY (required) Your PCBWay Partner API Key
34
+ PCBWAY_BASE_URL (optional) API base URL
35
+ (default: https://api-partner.pcbway.com)
36
+ PCBWAY_MAX_RETRIES (optional) Max retries for transient failures (default: 3)
37
+ PCBWAY_BASE_DELAY_MS (optional) Base exponential-backoff delay in ms (default: 500)
38
+ PCBWAY_TIMEOUT_MS (optional) Request timeout in ms (default: 30000)
39
+
40
+ TOOLS (exposed via MCP)
41
+
42
+ pcb_quote Get PCB manufacturing price quote
43
+ Required: Country, CountryCode, ShipType, Postalcode,
44
+ City, Length, Width, Qty, Layers
45
+
46
+ smt_quote Get SMT assembly price quote
47
+ Required: Country, CountryCode, ShipType, Postalcode,
48
+ City, FlexibleOption, BoardType, AssemblySide, Qty
49
+
50
+ order_process Get fabrication status / completed steps for an order
51
+ Required: OrderNo
52
+
53
+ order_details Get full order details including all PCB parameters
54
+ Required: OrderNo
55
+
56
+ shipping_freight Get shipping cost for an order (call before payment)
57
+ Required: OrderNo, ShipType, Country, CountryCode,
58
+ Postalcode, City
59
+
60
+ account_balance Query PCBWay account balance, coupon, and points
61
+
62
+ place_order Add PCB order to cart
63
+ Required: PcbFileName, BuildDays, and PCB params
64
+
65
+ confirm_order Confirm orders / make payment
66
+ Required: OrderNo, PayType (+ address when not adding to package)
67
+
68
+ cancel_order Cancel an existing order
69
+ Required: OrderNo
70
+
71
+ check_tgroup_order Check awaiting-payment order package details
72
+ Required: TGroupNo
73
+
74
+ pay_tgroup_order Pay for an awaiting-payment order package
75
+ Required: TGroupNo, PayType
76
+
77
+ cancel_tgroup_order Cancel an awaiting-payment order package
78
+ Required: TGroupNo
79
+
80
+ check_group_order Check a confirmed order package details
81
+ Required: GroupNo
82
+
83
+ get_countries List all supported countries
84
+
85
+ get_states List states/provinces for a country
86
+ Required: Country, CountryCode
87
+
88
+ get_cities List cities for a country/state
89
+ Required: Country, CountryCode
90
+
91
+ SETUP
92
+ 1. Obtain your API Key from the PCBWay Partner dashboard
93
+ 2. Export the credential:
94
+ export PCBWAY_API_KEY=your_api_key
95
+ 3. Run:
96
+ npx pcbway-mcp-server
97
+
98
+ Add to your MCP client config:
99
+ {
100
+ "mcpServers": {
101
+ "pcbway": {
102
+ "command": "npx",
103
+ "args": ["-y", "pcbway-mcp-server"],
104
+ "env": {
105
+ "PCBWAY_API_KEY": "..."
106
+ }
107
+ }
108
+ }
109
+ }
110
+ `;
111
+ // eslint-disable-next-line no-console
112
+ console.log(help);
113
+ }
114
+ // ── Tool definitions ───────────────────────────────────────────────
115
+ const tools = [
116
+ {
117
+ name: 'pcb_quote',
118
+ description: 'Get a PCB manufacturing price quote from PCBWay',
119
+ inputSchema: {
120
+ type: 'object',
121
+ properties: {
122
+ Country: { type: 'string', description: 'Country name (e.g. "UNITED STATES OF AMERICA")' },
123
+ CountryCode: { type: 'string', description: 'Country code (e.g. "US")' },
124
+ ShipType: { type: 'number', description: 'Logistics company (1=DHL, 10=FedEx IP, 4=SF Express, etc.)' },
125
+ Postalcode: { type: 'string', description: 'Postal code' },
126
+ City: { type: 'string', description: 'City' },
127
+ Length: { type: 'number', description: 'Board length in mm' },
128
+ Width: { type: 'number', description: 'Board width in mm' },
129
+ Qty: { type: 'number', description: 'Quantity (5-10000)' },
130
+ Layers: { type: 'number', description: 'Number of layers (1,2,4,6,8,10,12,14)' },
131
+ BoardType: { type: 'string', description: 'Board type: "Single PCB" (default), "Panel PCB as design", "Panel PCB by Supplier"' },
132
+ Material: { type: 'string', description: 'PCB material: FR-4 (default), Aluminum, Rogers, HDI, Copper' },
133
+ FR4Tg: { type: 'string', description: 'FR4 Tg grade (default: TG150)' },
134
+ Thickness: { type: 'number', description: 'Board thickness in mm (default: 1.6)' },
135
+ MinTrackSpacing: { type: 'string', description: 'Min track/space (default: "6/6mil")' },
136
+ MinHoleSize: { type: 'number', description: 'Min hole size in mm (default: 0.3)' },
137
+ SolderMask: { type: 'string', description: 'Solder mask color (default: "Green")' },
138
+ Silkscreen: { type: 'string', description: 'Silkscreen color (default: "White")' },
139
+ SurfaceFinish: { type: 'string', description: 'Surface finish (default: "HASL with lead")' },
140
+ ViaProcess: { type: 'string', description: 'Via process (default: "Tenting vias")' },
141
+ FinishedCopper: { type: 'string', description: 'Copper weight (default: "1 oz Cu")' },
142
+ Note: { type: 'string', description: 'Other special requests' },
143
+ },
144
+ required: ['Country', 'CountryCode', 'ShipType', 'Postalcode', 'City', 'Length', 'Width', 'Qty', 'Layers'],
145
+ },
146
+ },
147
+ {
148
+ name: 'smt_quote',
149
+ description: 'Get an SMT assembly price quote from PCBWay',
150
+ inputSchema: {
151
+ type: 'object',
152
+ properties: {
153
+ Country: { type: 'string', description: 'Country name' },
154
+ CountryCode: { type: 'string', description: 'Country code (e.g. "US")' },
155
+ ShipType: { type: 'number', description: 'Logistics company (1=DHL, 10=FedEx IP, etc.)' },
156
+ Postalcode: { type: 'string', description: 'Postal code' },
157
+ City: { type: 'string', description: 'City' },
158
+ FlexibleOption: { type: 'string', enum: ['Turnkey', 'Kitted or Consigned', 'Combo'], description: 'Assembly flexible option' },
159
+ BoardType: { type: 'string', enum: ['Single pieces', 'Panelized PCBs'], description: 'Board type' },
160
+ AssemblySide: { type: 'string', enum: ['Top side', 'Bottom side', 'Both sides'], description: 'Assembly side' },
161
+ Qty: { type: 'number', description: 'Quantity to assemble' },
162
+ UniqueParts: { type: 'number', description: 'Number of unique parts (default: 0)' },
163
+ SMTParts: { type: 'number', description: 'Number of SMT parts (default: 0)' },
164
+ HoleParts: { type: 'number', description: 'Number of through-hole parts (default: 0)' },
165
+ },
166
+ required: ['Country', 'CountryCode', 'ShipType', 'Postalcode', 'City', 'FlexibleOption', 'BoardType', 'AssemblySide', 'Qty'],
167
+ },
168
+ },
169
+ {
170
+ name: 'order_process',
171
+ description: 'Get fabrication status and completed process steps for a PCBWay order',
172
+ inputSchema: {
173
+ type: 'object',
174
+ properties: {
175
+ OrderNo: { type: 'string', description: 'PCBWay order number (e.g. "W0002AS1")' },
176
+ },
177
+ required: ['OrderNo'],
178
+ },
179
+ },
180
+ {
181
+ name: 'order_details',
182
+ description: 'Get full order details including all PCB parameters',
183
+ inputSchema: {
184
+ type: 'object',
185
+ properties: {
186
+ OrderNo: { type: 'string', description: 'PCBWay order number (e.g. "W0002AS1")' },
187
+ },
188
+ required: ['OrderNo'],
189
+ },
190
+ },
191
+ {
192
+ name: 'shipping_freight',
193
+ description: 'Get shipping cost quote for an order (call before payment)',
194
+ inputSchema: {
195
+ type: 'object',
196
+ properties: {
197
+ OrderNo: { type: 'string', description: 'PCBWay order number (or comma-separated for multiple)' },
198
+ ShipType: { type: 'number', description: 'Logistics company (1=DHL, 10=FedEx IP, etc.)' },
199
+ Country: { type: 'string', description: 'Country name' },
200
+ CountryCode: { type: 'string', description: 'Country code (e.g. "US")' },
201
+ Postalcode: { type: 'string', description: 'Postal code' },
202
+ City: { type: 'string', description: 'City' },
203
+ State: { type: 'string', description: 'State/Province/Region (optional)' },
204
+ AddGroupNo: { type: 'string', description: 'Order package number when adding to package (optional)' },
205
+ },
206
+ required: ['OrderNo', 'ShipType', 'Country', 'CountryCode', 'Postalcode', 'City'],
207
+ },
208
+ },
209
+ {
210
+ name: 'account_balance',
211
+ description: 'Query PCBWay account balance, coupon value, and reward points',
212
+ inputSchema: {
213
+ type: 'object',
214
+ properties: {},
215
+ required: [],
216
+ },
217
+ },
218
+ {
219
+ name: 'place_order',
220
+ description: 'Add a PCB order to cart',
221
+ inputSchema: {
222
+ type: 'object',
223
+ properties: {
224
+ PcbFileName: { type: 'string', description: 'PCB file name' },
225
+ BuildDays: { type: 'number', description: 'Production cycle in days (from quote)' },
226
+ Length: { type: 'number', description: 'Board length in mm' },
227
+ Width: { type: 'number', description: 'Board width in mm' },
228
+ Qty: { type: 'number', description: 'Quantity' },
229
+ Layers: { type: 'number', description: 'Number of layers' },
230
+ BoardType: { type: 'string', description: 'Board type (default: "Single PCB")' },
231
+ Material: { type: 'string', description: 'PCB material (default: "FR-4")' },
232
+ Thickness: { type: 'number', description: 'Board thickness in mm (default: 1.6)' },
233
+ SolderMask: { type: 'string', description: 'Solder mask color (default: "Green")' },
234
+ Silkscreen: { type: 'string', description: 'Silkscreen color (default: "White")' },
235
+ SurfaceFinish: { type: 'string', description: 'Surface finish (default: "HASL with lead")' },
236
+ PcbFileUrl: { type: 'string', description: 'URL to PCB file (optional)' },
237
+ Note: { type: 'string', description: 'Order notes (optional)' },
238
+ BuyerEmail: { type: 'string', description: 'Buyer email for contact (optional)' },
239
+ },
240
+ required: ['PcbFileName', 'BuildDays', 'Length', 'Width', 'Qty', 'Layers'],
241
+ },
242
+ },
243
+ {
244
+ name: 'confirm_order',
245
+ description: 'Confirm orders and make payment on PCBWay',
246
+ inputSchema: {
247
+ type: 'object',
248
+ properties: {
249
+ OrderNo: { type: 'string', description: 'Order number(s) — comma-separated for multiple' },
250
+ PayType: { type: 'number', description: 'Payment method (1=AccountPay, 2=PCBWayWebPay)' },
251
+ AddGroupNo: { type: 'string', description: 'Order package number when adding to package (optional)' },
252
+ ShipType: { type: 'number', description: 'Logistics company (required unless adding to package)' },
253
+ Country: { type: 'string', description: 'Country name (required unless adding to package)' },
254
+ CountryCode: { type: 'string', description: 'Country code (required unless adding to package)' },
255
+ State: { type: 'string', description: 'State/Province (optional)' },
256
+ Postalcode: { type: 'string', description: 'Postal code (optional)' },
257
+ City: { type: 'string', description: 'City (required unless adding to package)' },
258
+ Addr: { type: 'string', description: 'Delivery address (required unless adding to package)' },
259
+ CompanyName: { type: 'string', description: 'Company name (optional)' },
260
+ ContactName: { type: 'string', description: 'Contact person (optional)' },
261
+ Tel: { type: 'string', description: 'Phone number (required unless adding to package)' },
262
+ BuyerEmail: { type: 'string', description: 'Buyer email for contact (optional)' },
263
+ Tax: { type: 'string', description: 'Tax ID (optional)' },
264
+ },
265
+ required: ['OrderNo', 'PayType'],
266
+ },
267
+ },
268
+ {
269
+ name: 'cancel_order',
270
+ description: 'Cancel an existing PCBWay order',
271
+ inputSchema: {
272
+ type: 'object',
273
+ properties: {
274
+ OrderNo: { type: 'string', description: 'PCBWay order number to cancel' },
275
+ },
276
+ required: ['OrderNo'],
277
+ },
278
+ },
279
+ {
280
+ name: 'check_tgroup_order',
281
+ description: 'Check awaiting-payment order package details on PCBWay',
282
+ inputSchema: {
283
+ type: 'object',
284
+ properties: {
285
+ TGroupNo: { type: 'string', description: 'Awaiting-payment order package number' },
286
+ },
287
+ required: ['TGroupNo'],
288
+ },
289
+ },
290
+ {
291
+ name: 'pay_tgroup_order',
292
+ description: 'Pay for an awaiting-payment order package on PCBWay',
293
+ inputSchema: {
294
+ type: 'object',
295
+ properties: {
296
+ TGroupNo: { type: 'string', description: 'Awaiting-payment order package number' },
297
+ PayType: { type: 'number', description: 'Payment method (1=AccountPay, 2=PCBWayWebPay)' },
298
+ },
299
+ required: ['TGroupNo', 'PayType'],
300
+ },
301
+ },
302
+ {
303
+ name: 'cancel_tgroup_order',
304
+ description: 'Cancel an awaiting-payment order package on PCBWay',
305
+ inputSchema: {
306
+ type: 'object',
307
+ properties: {
308
+ TGroupNo: { type: 'string', description: 'Awaiting-payment order package number' },
309
+ },
310
+ required: ['TGroupNo'],
311
+ },
312
+ },
313
+ {
314
+ name: 'check_group_order',
315
+ description: 'Check a confirmed order package details on PCBWay',
316
+ inputSchema: {
317
+ type: 'object',
318
+ properties: {
319
+ GroupNo: { type: 'string', description: 'Order package number' },
320
+ },
321
+ required: ['GroupNo'],
322
+ },
323
+ },
324
+ {
325
+ name: 'get_countries',
326
+ description: 'List all supported countries for PCBWay ordering',
327
+ inputSchema: {
328
+ type: 'object',
329
+ properties: {},
330
+ required: [],
331
+ },
332
+ },
333
+ {
334
+ name: 'get_states',
335
+ description: 'List states/provinces for a country',
336
+ inputSchema: {
337
+ type: 'object',
338
+ properties: {
339
+ Country: { type: 'string', description: 'Country name (e.g. "UNITED STATES OF AMERICA")' },
340
+ CountryCode: { type: 'string', description: 'Country code (e.g. "US")' },
341
+ },
342
+ required: ['Country', 'CountryCode'],
343
+ },
344
+ },
345
+ {
346
+ name: 'get_cities',
347
+ description: 'List cities for a country and state',
348
+ inputSchema: {
349
+ type: 'object',
350
+ properties: {
351
+ Country: { type: 'string', description: 'Country name (e.g. "UNITED STATES OF AMERICA")' },
352
+ CountryCode: { type: 'string', description: 'Country code (e.g. "US")' },
353
+ State: { type: 'string', description: 'State/Province to filter by (optional)' },
354
+ },
355
+ required: ['Country', 'CountryCode'],
356
+ },
357
+ },
358
+ ];
359
+ // ── Server bootstrap ───────────────────────────────────────────────
360
+ async function main() {
361
+ // Handle --help before anything else
362
+ if (process.argv.includes('--help') || process.argv.includes('-h')) {
363
+ printHelp();
364
+ process.exit(0);
365
+ }
366
+ // Load config (will throw with clear message if env vars missing)
367
+ let config;
368
+ try {
369
+ config = loadConfig();
370
+ }
371
+ catch (err) {
372
+ console.error(`Configuration error: ${err.message}`);
373
+ process.exit(1);
374
+ }
375
+ const client = new PcbWayClient(config);
376
+ const pcbQuote = new PcbQuote(client);
377
+ const smtQuote = new SmtQuote(client);
378
+ const orderProcess = new OrderProcess(client);
379
+ const orderDetails = new OrderDetails(client);
380
+ const shipping = new Shipping(client);
381
+ const account = new Account(client);
382
+ const placeOrder = new PlaceOrder(client);
383
+ const confirmOrder = new ConfirmOrder(client);
384
+ const cancelOrder = new CancelOrder(client);
385
+ const checkTGroupOrder = new CheckTGroupOrder(client);
386
+ const payTGroupOrder = new PayTGroupOrder(client);
387
+ const cancelTGroupOrder = new CancelTGroupOrder(client);
388
+ const checkGroupOrder = new CheckGroupOrder(client);
389
+ const getCountries = new GetCountries(client);
390
+ const getStates = new GetStates(client);
391
+ const getCities = new GetCities(client);
392
+ const server = new Server({
393
+ name: 'pcbway-mcp-server',
394
+ version: '1.0.0',
395
+ }, {
396
+ capabilities: {
397
+ tools: {},
398
+ },
399
+ });
400
+ server.setRequestHandler(ListToolsRequestSchema, async () => ({
401
+ tools,
402
+ }));
403
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
404
+ const { name, arguments: args } = request.params;
405
+ try {
406
+ switch (name) {
407
+ case 'pcb_quote': {
408
+ const parsed = PcbQuote.inputSchema.parse(args);
409
+ const text = await pcbQuote.getQuote(parsed);
410
+ return { content: [{ type: 'text', text }] };
411
+ }
412
+ case 'smt_quote': {
413
+ const parsed = SmtQuote.inputSchema.parse(args);
414
+ const text = await smtQuote.getQuote(parsed);
415
+ return { content: [{ type: 'text', text }] };
416
+ }
417
+ case 'order_process': {
418
+ const parsed = OrderProcess.inputSchema.parse(args);
419
+ const text = await orderProcess.getStatus(parsed);
420
+ return { content: [{ type: 'text', text }] };
421
+ }
422
+ case 'order_details': {
423
+ const parsed = OrderDetails.inputSchema.parse(args);
424
+ const text = await orderDetails.getDetails(parsed);
425
+ return { content: [{ type: 'text', text }] };
426
+ }
427
+ case 'shipping_freight': {
428
+ const parsed = Shipping.inputSchema.parse(args);
429
+ const text = await shipping.getFreight(parsed);
430
+ return { content: [{ type: 'text', text }] };
431
+ }
432
+ case 'account_balance': {
433
+ const parsed = Account.inputSchema.parse(args ?? {});
434
+ const text = await account.getBalance(parsed);
435
+ return { content: [{ type: 'text', text }] };
436
+ }
437
+ case 'place_order': {
438
+ const parsed = PlaceOrder.inputSchema.parse(args);
439
+ const text = await placeOrder.place(parsed);
440
+ return { content: [{ type: 'text', text }] };
441
+ }
442
+ case 'confirm_order': {
443
+ const parsed = ConfirmOrder.inputSchema.parse(args);
444
+ const text = await confirmOrder.confirm(parsed);
445
+ return { content: [{ type: 'text', text }] };
446
+ }
447
+ case 'cancel_order': {
448
+ const parsed = CancelOrder.inputSchema.parse(args);
449
+ const text = await cancelOrder.cancel(parsed);
450
+ return { content: [{ type: 'text', text }] };
451
+ }
452
+ case 'check_tgroup_order': {
453
+ const parsed = CheckTGroupOrder.inputSchema.parse(args);
454
+ const text = await checkTGroupOrder.check(parsed);
455
+ return { content: [{ type: 'text', text }] };
456
+ }
457
+ case 'pay_tgroup_order': {
458
+ const parsed = PayTGroupOrder.inputSchema.parse(args);
459
+ const text = await payTGroupOrder.pay(parsed);
460
+ return { content: [{ type: 'text', text }] };
461
+ }
462
+ case 'cancel_tgroup_order': {
463
+ const parsed = CancelTGroupOrder.inputSchema.parse(args);
464
+ const text = await cancelTGroupOrder.cancel(parsed);
465
+ return { content: [{ type: 'text', text }] };
466
+ }
467
+ case 'check_group_order': {
468
+ const parsed = CheckGroupOrder.inputSchema.parse(args);
469
+ const text = await checkGroupOrder.check(parsed);
470
+ return { content: [{ type: 'text', text }] };
471
+ }
472
+ case 'get_countries': {
473
+ const parsed = GetCountries.inputSchema.parse(args ?? {});
474
+ const text = await getCountries.get(parsed);
475
+ return { content: [{ type: 'text', text }] };
476
+ }
477
+ case 'get_states': {
478
+ const parsed = GetStates.inputSchema.parse(args);
479
+ const text = await getStates.get(parsed);
480
+ return { content: [{ type: 'text', text }] };
481
+ }
482
+ case 'get_cities': {
483
+ const parsed = GetCities.inputSchema.parse(args);
484
+ const text = await getCities.get(parsed);
485
+ return { content: [{ type: 'text', text }] };
486
+ }
487
+ default:
488
+ return {
489
+ content: [{ type: 'text', text: `Unknown tool: ${name}` }],
490
+ isError: true,
491
+ };
492
+ }
493
+ }
494
+ catch (err) {
495
+ const message = err instanceof Error ? err.message : String(err);
496
+ return {
497
+ content: [{ type: 'text', text: `Error: ${message}` }],
498
+ isError: true,
499
+ };
500
+ }
501
+ });
502
+ const transport = new StdioServerTransport();
503
+ await server.connect(transport);
504
+ }
505
+ main().catch((err) => {
506
+ console.error('Fatal error:', err);
507
+ process.exit(1);
508
+ });
509
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ import type { PcbWayClient } from '../client.js';
3
+ /**
4
+ * QueryBalance takes no parameters — empty body.
5
+ */
6
+ export declare const AccountBalanceInputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
7
+ export type AccountBalanceInput = z.infer<typeof AccountBalanceInputSchema>;
8
+ export declare class Account {
9
+ private client;
10
+ static inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
11
+ constructor(client: PcbWayClient);
12
+ getBalance(_params: AccountBalanceInput): Promise<string>;
13
+ }
14
+ //# sourceMappingURL=Account.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Account.d.ts","sourceRoot":"","sources":["../../src/resources/Account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD;;GAEG;AACH,eAAO,MAAM,yBAAyB,gDAAe,CAAC;AAEtD,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,qBAAa,OAAO;IAGN,OAAO,CAAC,MAAM;IAF1B,MAAM,CAAC,WAAW,iDAA6B;gBAE3B,MAAM,EAAE,YAAY;IAElC,UAAU,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;CAahE"}
@@ -0,0 +1,22 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * QueryBalance takes no parameters — empty body.
4
+ */
5
+ export const AccountBalanceInputSchema = z.object({});
6
+ export class Account {
7
+ client;
8
+ static inputSchema = AccountBalanceInputSchema;
9
+ constructor(client) {
10
+ this.client = client;
11
+ }
12
+ async getBalance(_params) {
13
+ const res = await this.client.request('/api/Account/QueryBalance', {});
14
+ return [
15
+ '## PCBWay Account Balance\n',
16
+ `**Cash Balance:** $${res.balance.toFixed(2)}`,
17
+ `**Coupon:** $${res.coupon.toFixed(2)}`,
18
+ `**Points:** ${res.point}`,
19
+ ].join('\n');
20
+ }
21
+ }
22
+ //# sourceMappingURL=Account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Account.js","sourceRoot":"","sources":["../../src/resources/Account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAItD,MAAM,OAAO,OAAO;IAGE;IAFpB,MAAM,CAAC,WAAW,GAAG,yBAAyB,CAAC;IAE/C,YAAoB,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IAAG,CAAC;IAE5C,KAAK,CAAC,UAAU,CAAC,OAA4B;QAC3C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CACnC,2BAA2B,EAC3B,EAAE,CACH,CAAC;QAEF,OAAO;YACL,6BAA6B;YAC7B,sBAAsB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC9C,gBAAgB,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACvC,eAAe,GAAG,CAAC,KAAK,EAAE;SAC3B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC"}