@promptpartner/bexio-mcp-server 2.0.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 (199) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +161 -0
  3. package/dist/bexio-client.d.ts +350 -0
  4. package/dist/bexio-client.js +1045 -0
  5. package/dist/index.d.ts +15 -0
  6. package/dist/index.js +80 -0
  7. package/dist/logger.d.ts +17 -0
  8. package/dist/logger.js +28 -0
  9. package/dist/server.d.ts +18 -0
  10. package/dist/server.js +81 -0
  11. package/dist/shared/errors.d.ts +21 -0
  12. package/dist/shared/errors.js +54 -0
  13. package/dist/shared/index.d.ts +5 -0
  14. package/dist/shared/index.js +5 -0
  15. package/dist/shared/response.d.ts +24 -0
  16. package/dist/shared/response.js +92 -0
  17. package/dist/tools/accounting/definitions.d.ts +9 -0
  18. package/dist/tools/accounting/definitions.js +345 -0
  19. package/dist/tools/accounting/handlers.d.ts +10 -0
  20. package/dist/tools/accounting/handlers.js +121 -0
  21. package/dist/tools/accounting/index.d.ts +16 -0
  22. package/dist/tools/accounting/index.js +16 -0
  23. package/dist/tools/banking/definitions.d.ts +11 -0
  24. package/dist/tools/banking/definitions.js +349 -0
  25. package/dist/tools/banking/handlers.d.ts +9 -0
  26. package/dist/tools/banking/handlers.js +123 -0
  27. package/dist/tools/banking/index.d.ts +6 -0
  28. package/dist/tools/banking/index.js +6 -0
  29. package/dist/tools/company/definitions.d.ts +7 -0
  30. package/dist/tools/company/definitions.js +87 -0
  31. package/dist/tools/company/handlers.d.ts +7 -0
  32. package/dist/tools/company/handlers.js +31 -0
  33. package/dist/tools/company/index.d.ts +6 -0
  34. package/dist/tools/company/index.js +6 -0
  35. package/dist/tools/contacts/definitions.d.ts +6 -0
  36. package/dist/tools/contacts/definitions.js +150 -0
  37. package/dist/tools/contacts/handlers.d.ts +7 -0
  38. package/dist/tools/contacts/handlers.js +40 -0
  39. package/dist/tools/contacts/index.d.ts +6 -0
  40. package/dist/tools/contacts/index.js +5 -0
  41. package/dist/tools/deliveries/definitions.d.ts +6 -0
  42. package/dist/tools/deliveries/definitions.js +67 -0
  43. package/dist/tools/deliveries/handlers.d.ts +7 -0
  44. package/dist/tools/deliveries/handlers.js +28 -0
  45. package/dist/tools/deliveries/index.d.ts +6 -0
  46. package/dist/tools/deliveries/index.js +5 -0
  47. package/dist/tools/files/definitions.d.ts +6 -0
  48. package/dist/tools/files/definitions.js +217 -0
  49. package/dist/tools/files/handlers.d.ts +7 -0
  50. package/dist/tools/files/handlers.js +63 -0
  51. package/dist/tools/files/index.d.ts +6 -0
  52. package/dist/tools/files/index.js +5 -0
  53. package/dist/tools/index.d.ts +19 -0
  54. package/dist/tools/index.js +93 -0
  55. package/dist/tools/invoices/definitions.d.ts +6 -0
  56. package/dist/tools/invoices/definitions.js +147 -0
  57. package/dist/tools/invoices/handlers.d.ts +7 -0
  58. package/dist/tools/invoices/handlers.js +119 -0
  59. package/dist/tools/invoices/index.d.ts +6 -0
  60. package/dist/tools/invoices/index.js +5 -0
  61. package/dist/tools/items/definitions.d.ts +6 -0
  62. package/dist/tools/items/definitions.js +100 -0
  63. package/dist/tools/items/handlers.d.ts +7 -0
  64. package/dist/tools/items/handlers.js +36 -0
  65. package/dist/tools/items/index.d.ts +6 -0
  66. package/dist/tools/items/index.js +5 -0
  67. package/dist/tools/misc/definitions.d.ts +6 -0
  68. package/dist/tools/misc/definitions.js +126 -0
  69. package/dist/tools/misc/handlers.d.ts +7 -0
  70. package/dist/tools/misc/handlers.js +52 -0
  71. package/dist/tools/misc/index.d.ts +6 -0
  72. package/dist/tools/misc/index.js +5 -0
  73. package/dist/tools/orders/definitions.d.ts +6 -0
  74. package/dist/tools/orders/definitions.js +114 -0
  75. package/dist/tools/orders/handlers.d.ts +7 -0
  76. package/dist/tools/orders/handlers.js +62 -0
  77. package/dist/tools/orders/index.d.ts +6 -0
  78. package/dist/tools/orders/index.js +5 -0
  79. package/dist/tools/payments/definitions.d.ts +6 -0
  80. package/dist/tools/payments/definitions.js +74 -0
  81. package/dist/tools/payments/handlers.d.ts +7 -0
  82. package/dist/tools/payments/handlers.js +28 -0
  83. package/dist/tools/payments/index.d.ts +6 -0
  84. package/dist/tools/payments/index.js +5 -0
  85. package/dist/tools/payroll/definitions.d.ts +15 -0
  86. package/dist/tools/payroll/definitions.js +239 -0
  87. package/dist/tools/payroll/handlers.d.ts +14 -0
  88. package/dist/tools/payroll/handlers.js +152 -0
  89. package/dist/tools/payroll/index.d.ts +16 -0
  90. package/dist/tools/payroll/index.js +16 -0
  91. package/dist/tools/projects/definitions.d.ts +7 -0
  92. package/dist/tools/projects/definitions.js +430 -0
  93. package/dist/tools/projects/handlers.d.ts +7 -0
  94. package/dist/tools/projects/handlers.js +127 -0
  95. package/dist/tools/projects/index.d.ts +6 -0
  96. package/dist/tools/projects/index.js +6 -0
  97. package/dist/tools/purchase/definitions.d.ts +6 -0
  98. package/dist/tools/purchase/definitions.js +381 -0
  99. package/dist/tools/purchase/handlers.d.ts +7 -0
  100. package/dist/tools/purchase/handlers.js +120 -0
  101. package/dist/tools/purchase/index.d.ts +7 -0
  102. package/dist/tools/purchase/index.js +6 -0
  103. package/dist/tools/quotes/definitions.d.ts +6 -0
  104. package/dist/tools/quotes/definitions.js +174 -0
  105. package/dist/tools/quotes/handlers.d.ts +7 -0
  106. package/dist/tools/quotes/handlers.js +79 -0
  107. package/dist/tools/quotes/index.d.ts +6 -0
  108. package/dist/tools/quotes/index.js +5 -0
  109. package/dist/tools/reference/definitions.d.ts +7 -0
  110. package/dist/tools/reference/definitions.js +421 -0
  111. package/dist/tools/reference/handlers.d.ts +7 -0
  112. package/dist/tools/reference/handlers.js +161 -0
  113. package/dist/tools/reference/index.d.ts +6 -0
  114. package/dist/tools/reference/index.js +6 -0
  115. package/dist/tools/reminders/definitions.d.ts +6 -0
  116. package/dist/tools/reminders/definitions.js +132 -0
  117. package/dist/tools/reminders/handlers.d.ts +7 -0
  118. package/dist/tools/reminders/handlers.js +43 -0
  119. package/dist/tools/reminders/index.d.ts +6 -0
  120. package/dist/tools/reminders/index.js +5 -0
  121. package/dist/tools/reports/definitions.d.ts +6 -0
  122. package/dist/tools/reports/definitions.js +133 -0
  123. package/dist/tools/reports/handlers.d.ts +7 -0
  124. package/dist/tools/reports/handlers.js +33 -0
  125. package/dist/tools/reports/index.d.ts +6 -0
  126. package/dist/tools/reports/index.js +5 -0
  127. package/dist/tools/timetracking/definitions.d.ts +9 -0
  128. package/dist/tools/timetracking/definitions.js +226 -0
  129. package/dist/tools/timetracking/handlers.d.ts +9 -0
  130. package/dist/tools/timetracking/handlers.js +88 -0
  131. package/dist/tools/timetracking/index.d.ts +6 -0
  132. package/dist/tools/timetracking/index.js +6 -0
  133. package/dist/tools/users/definitions.d.ts +6 -0
  134. package/dist/tools/users/definitions.js +93 -0
  135. package/dist/tools/users/handlers.d.ts +7 -0
  136. package/dist/tools/users/handlers.js +35 -0
  137. package/dist/tools/users/index.d.ts +6 -0
  138. package/dist/tools/users/index.js +5 -0
  139. package/dist/transports/http.d.ts +17 -0
  140. package/dist/transports/http.js +203 -0
  141. package/dist/transports/index.d.ts +4 -0
  142. package/dist/transports/index.js +4 -0
  143. package/dist/types/common.d.ts +32 -0
  144. package/dist/types/common.js +11 -0
  145. package/dist/types/index.d.ts +9 -0
  146. package/dist/types/index.js +11 -0
  147. package/dist/types/schemas/accounting.d.ts +225 -0
  148. package/dist/types/schemas/accounting.js +96 -0
  149. package/dist/types/schemas/banking.d.ts +207 -0
  150. package/dist/types/schemas/banking.js +86 -0
  151. package/dist/types/schemas/company.d.ts +44 -0
  152. package/dist/types/schemas/company.js +23 -0
  153. package/dist/types/schemas/contacts.d.ts +104 -0
  154. package/dist/types/schemas/contacts.js +42 -0
  155. package/dist/types/schemas/deliveries.d.ts +40 -0
  156. package/dist/types/schemas/deliveries.js +22 -0
  157. package/dist/types/schemas/files.d.ts +152 -0
  158. package/dist/types/schemas/files.js +64 -0
  159. package/dist/types/schemas/index.d.ts +24 -0
  160. package/dist/types/schemas/index.js +44 -0
  161. package/dist/types/schemas/invoices.d.ts +594 -0
  162. package/dist/types/schemas/invoices.js +109 -0
  163. package/dist/types/schemas/items.d.ts +153 -0
  164. package/dist/types/schemas/items.js +43 -0
  165. package/dist/types/schemas/misc.d.ts +64 -0
  166. package/dist/types/schemas/misc.js +36 -0
  167. package/dist/types/schemas/orders.d.ts +657 -0
  168. package/dist/types/schemas/orders.js +101 -0
  169. package/dist/types/schemas/payments.d.ts +46 -0
  170. package/dist/types/schemas/payments.js +24 -0
  171. package/dist/types/schemas/payroll.d.ts +146 -0
  172. package/dist/types/schemas/payroll.js +65 -0
  173. package/dist/types/schemas/projects.d.ts +268 -0
  174. package/dist/types/schemas/projects.js +102 -0
  175. package/dist/types/schemas/purchase.d.ts +228 -0
  176. package/dist/types/schemas/purchase.js +114 -0
  177. package/dist/types/schemas/quotes.d.ts +102 -0
  178. package/dist/types/schemas/quotes.js +49 -0
  179. package/dist/types/schemas/reference.d.ts +240 -0
  180. package/dist/types/schemas/reference.js +99 -0
  181. package/dist/types/schemas/reminders.d.ts +76 -0
  182. package/dist/types/schemas/reminders.js +38 -0
  183. package/dist/types/schemas/reports.d.ts +69 -0
  184. package/dist/types/schemas/reports.js +36 -0
  185. package/dist/types/schemas/timetracking.d.ts +150 -0
  186. package/dist/types/schemas/timetracking.js +68 -0
  187. package/dist/types/schemas/users.d.ts +51 -0
  188. package/dist/types/schemas/users.js +27 -0
  189. package/dist/ui/contact-card/mcp-app.d.ts +1 -0
  190. package/dist/ui/contact-card/mcp-app.js +108 -0
  191. package/dist/ui/dashboard/mcp-app.d.ts +1 -0
  192. package/dist/ui/dashboard/mcp-app.js +81 -0
  193. package/dist/ui/invoice-preview/mcp-app.d.ts +1 -0
  194. package/dist/ui/invoice-preview/mcp-app.js +96 -0
  195. package/dist/ui-resources.d.ts +17 -0
  196. package/dist/ui-resources.js +124 -0
  197. package/dist/vite.config.d.ts +2 -0
  198. package/dist/vite.config.js +46 -0
  199. package/package.json +78 -0
@@ -0,0 +1,381 @@
1
+ /**
2
+ * Purchase tool definitions.
3
+ * Contains MCP tool metadata for bills, expenses, purchase orders, and outgoing payments.
4
+ */
5
+ export const toolDefinitions = [
6
+ // ===== BILLS (Creditor Invoices) =====
7
+ {
8
+ name: "list_bills",
9
+ description: "List all bills (creditor invoices) with optional pagination",
10
+ inputSchema: {
11
+ type: "object",
12
+ properties: {
13
+ limit: {
14
+ type: "integer",
15
+ description: "Maximum number of bills to return (default: 50)",
16
+ },
17
+ offset: {
18
+ type: "integer",
19
+ description: "Number of bills to skip (default: 0)",
20
+ },
21
+ },
22
+ },
23
+ },
24
+ {
25
+ name: "get_bill",
26
+ description: "Get a specific bill (creditor invoice) by ID",
27
+ inputSchema: {
28
+ type: "object",
29
+ properties: {
30
+ bill_id: {
31
+ type: "integer",
32
+ description: "The ID of the bill to retrieve",
33
+ },
34
+ },
35
+ required: ["bill_id"],
36
+ },
37
+ },
38
+ {
39
+ name: "create_bill",
40
+ description: "Create a new bill (creditor invoice) from a supplier",
41
+ inputSchema: {
42
+ type: "object",
43
+ properties: {
44
+ bill_data: {
45
+ type: "object",
46
+ description: "Bill data including contact_id, title, positions, etc.",
47
+ },
48
+ },
49
+ required: ["bill_data"],
50
+ },
51
+ },
52
+ {
53
+ name: "update_bill",
54
+ description: "Update an existing bill (creditor invoice)",
55
+ inputSchema: {
56
+ type: "object",
57
+ properties: {
58
+ bill_id: {
59
+ type: "integer",
60
+ description: "The ID of the bill to update",
61
+ },
62
+ bill_data: {
63
+ type: "object",
64
+ description: "Bill data to update",
65
+ },
66
+ },
67
+ required: ["bill_id", "bill_data"],
68
+ },
69
+ },
70
+ {
71
+ name: "delete_bill",
72
+ description: "Delete a bill (creditor invoice)",
73
+ inputSchema: {
74
+ type: "object",
75
+ properties: {
76
+ bill_id: {
77
+ type: "integer",
78
+ description: "The ID of the bill to delete",
79
+ },
80
+ },
81
+ required: ["bill_id"],
82
+ },
83
+ },
84
+ {
85
+ name: "search_bills",
86
+ description: "Search bills (creditor invoices) by criteria",
87
+ inputSchema: {
88
+ type: "object",
89
+ properties: {
90
+ criteria: {
91
+ type: "array",
92
+ description: "Array of search criteria objects with field, value, and optional operator",
93
+ },
94
+ limit: {
95
+ type: "integer",
96
+ description: "Maximum number of results",
97
+ },
98
+ offset: {
99
+ type: "integer",
100
+ description: "Number of results to skip",
101
+ },
102
+ },
103
+ required: ["criteria"],
104
+ },
105
+ },
106
+ {
107
+ name: "issue_bill",
108
+ description: "Issue a bill (creditor invoice) to change its status",
109
+ inputSchema: {
110
+ type: "object",
111
+ properties: {
112
+ bill_id: {
113
+ type: "integer",
114
+ description: "The ID of the bill to issue",
115
+ },
116
+ },
117
+ required: ["bill_id"],
118
+ },
119
+ },
120
+ {
121
+ name: "mark_bill_as_paid",
122
+ description: "Mark a bill (creditor invoice) as paid",
123
+ inputSchema: {
124
+ type: "object",
125
+ properties: {
126
+ bill_id: {
127
+ type: "integer",
128
+ description: "The ID of the bill to mark as paid",
129
+ },
130
+ },
131
+ required: ["bill_id"],
132
+ },
133
+ },
134
+ // ===== EXPENSES =====
135
+ {
136
+ name: "list_expenses",
137
+ description: "List all expenses with optional pagination",
138
+ inputSchema: {
139
+ type: "object",
140
+ properties: {
141
+ limit: {
142
+ type: "integer",
143
+ description: "Maximum number of expenses to return (default: 50)",
144
+ },
145
+ offset: {
146
+ type: "integer",
147
+ description: "Number of expenses to skip (default: 0)",
148
+ },
149
+ },
150
+ },
151
+ },
152
+ {
153
+ name: "get_expense",
154
+ description: "Get a specific expense by ID",
155
+ inputSchema: {
156
+ type: "object",
157
+ properties: {
158
+ expense_id: {
159
+ type: "integer",
160
+ description: "The ID of the expense to retrieve",
161
+ },
162
+ },
163
+ required: ["expense_id"],
164
+ },
165
+ },
166
+ {
167
+ name: "create_expense",
168
+ description: "Create a new expense record",
169
+ inputSchema: {
170
+ type: "object",
171
+ properties: {
172
+ expense_data: {
173
+ type: "object",
174
+ description: "Expense data including title, amount, date, etc.",
175
+ },
176
+ },
177
+ required: ["expense_data"],
178
+ },
179
+ },
180
+ {
181
+ name: "update_expense",
182
+ description: "Update an existing expense",
183
+ inputSchema: {
184
+ type: "object",
185
+ properties: {
186
+ expense_id: {
187
+ type: "integer",
188
+ description: "The ID of the expense to update",
189
+ },
190
+ expense_data: {
191
+ type: "object",
192
+ description: "Expense data to update",
193
+ },
194
+ },
195
+ required: ["expense_id", "expense_data"],
196
+ },
197
+ },
198
+ {
199
+ name: "delete_expense",
200
+ description: "Delete an expense",
201
+ inputSchema: {
202
+ type: "object",
203
+ properties: {
204
+ expense_id: {
205
+ type: "integer",
206
+ description: "The ID of the expense to delete",
207
+ },
208
+ },
209
+ required: ["expense_id"],
210
+ },
211
+ },
212
+ // ===== PURCHASE ORDERS =====
213
+ {
214
+ name: "list_purchase_orders",
215
+ description: "List all purchase orders with optional pagination",
216
+ inputSchema: {
217
+ type: "object",
218
+ properties: {
219
+ limit: {
220
+ type: "integer",
221
+ description: "Maximum number of purchase orders to return (default: 50)",
222
+ },
223
+ offset: {
224
+ type: "integer",
225
+ description: "Number of purchase orders to skip (default: 0)",
226
+ },
227
+ },
228
+ },
229
+ },
230
+ {
231
+ name: "get_purchase_order",
232
+ description: "Get a specific purchase order by ID",
233
+ inputSchema: {
234
+ type: "object",
235
+ properties: {
236
+ purchase_order_id: {
237
+ type: "integer",
238
+ description: "The ID of the purchase order to retrieve",
239
+ },
240
+ },
241
+ required: ["purchase_order_id"],
242
+ },
243
+ },
244
+ {
245
+ name: "create_purchase_order",
246
+ description: "Create a new purchase order to a supplier",
247
+ inputSchema: {
248
+ type: "object",
249
+ properties: {
250
+ purchase_order_data: {
251
+ type: "object",
252
+ description: "Purchase order data including contact_id, title, positions, etc.",
253
+ },
254
+ },
255
+ required: ["purchase_order_data"],
256
+ },
257
+ },
258
+ {
259
+ name: "update_purchase_order",
260
+ description: "Update an existing purchase order",
261
+ inputSchema: {
262
+ type: "object",
263
+ properties: {
264
+ purchase_order_id: {
265
+ type: "integer",
266
+ description: "The ID of the purchase order to update",
267
+ },
268
+ purchase_order_data: {
269
+ type: "object",
270
+ description: "Purchase order data to update",
271
+ },
272
+ },
273
+ required: ["purchase_order_id", "purchase_order_data"],
274
+ },
275
+ },
276
+ {
277
+ name: "delete_purchase_order",
278
+ description: "Delete a purchase order",
279
+ inputSchema: {
280
+ type: "object",
281
+ properties: {
282
+ purchase_order_id: {
283
+ type: "integer",
284
+ description: "The ID of the purchase order to delete",
285
+ },
286
+ },
287
+ required: ["purchase_order_id"],
288
+ },
289
+ },
290
+ // ===== OUTGOING PAYMENTS (linked to bills) =====
291
+ {
292
+ name: "list_outgoing_payments",
293
+ description: "List all outgoing payments for a specific bill (creditor invoice)",
294
+ inputSchema: {
295
+ type: "object",
296
+ properties: {
297
+ bill_id: {
298
+ type: "integer",
299
+ description: "The ID of the bill to get payments for",
300
+ },
301
+ },
302
+ required: ["bill_id"],
303
+ },
304
+ },
305
+ {
306
+ name: "get_outgoing_payment",
307
+ description: "Get a specific outgoing payment for a bill (creditor invoice)",
308
+ inputSchema: {
309
+ type: "object",
310
+ properties: {
311
+ bill_id: {
312
+ type: "integer",
313
+ description: "The ID of the bill",
314
+ },
315
+ payment_id: {
316
+ type: "integer",
317
+ description: "The ID of the payment to retrieve",
318
+ },
319
+ },
320
+ required: ["bill_id", "payment_id"],
321
+ },
322
+ },
323
+ {
324
+ name: "create_outgoing_payment",
325
+ description: "Create a new outgoing payment for a bill (creditor invoice)",
326
+ inputSchema: {
327
+ type: "object",
328
+ properties: {
329
+ bill_id: {
330
+ type: "integer",
331
+ description: "The ID of the bill to create a payment for",
332
+ },
333
+ payment_data: {
334
+ type: "object",
335
+ description: "Payment data including amount, date, etc.",
336
+ },
337
+ },
338
+ required: ["bill_id", "payment_data"],
339
+ },
340
+ },
341
+ {
342
+ name: "update_outgoing_payment",
343
+ description: "Update an existing outgoing payment for a bill (creditor invoice)",
344
+ inputSchema: {
345
+ type: "object",
346
+ properties: {
347
+ bill_id: {
348
+ type: "integer",
349
+ description: "The ID of the bill",
350
+ },
351
+ payment_id: {
352
+ type: "integer",
353
+ description: "The ID of the payment to update",
354
+ },
355
+ payment_data: {
356
+ type: "object",
357
+ description: "Payment data to update",
358
+ },
359
+ },
360
+ required: ["bill_id", "payment_id", "payment_data"],
361
+ },
362
+ },
363
+ {
364
+ name: "delete_outgoing_payment",
365
+ description: "Delete an outgoing payment for a bill (creditor invoice)",
366
+ inputSchema: {
367
+ type: "object",
368
+ properties: {
369
+ bill_id: {
370
+ type: "integer",
371
+ description: "The ID of the bill",
372
+ },
373
+ payment_id: {
374
+ type: "integer",
375
+ description: "The ID of the payment to delete",
376
+ },
377
+ },
378
+ required: ["bill_id", "payment_id"],
379
+ },
380
+ },
381
+ ];
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Purchase tool handlers.
3
+ * Implements the logic for bills, expenses, purchase orders, and outgoing payments.
4
+ */
5
+ import { BexioClient } from "../../bexio-client.js";
6
+ export type HandlerFn = (client: BexioClient, args: unknown) => Promise<unknown>;
7
+ export declare const handlers: Record<string, HandlerFn>;
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Purchase tool handlers.
3
+ * Implements the logic for bills, expenses, purchase orders, and outgoing payments.
4
+ */
5
+ import { McpError } from "../../shared/errors.js";
6
+ import { ListBillsParamsSchema, GetBillParamsSchema, CreateBillParamsSchema, UpdateBillParamsSchema, DeleteBillParamsSchema, SearchBillsParamsSchema, IssueBillParamsSchema, MarkBillAsPaidParamsSchema, ListExpensesParamsSchema, GetExpenseParamsSchema, CreateExpenseParamsSchema, UpdateExpenseParamsSchema, DeleteExpenseParamsSchema, ListPurchaseOrdersParamsSchema, GetPurchaseOrderParamsSchema, CreatePurchaseOrderParamsSchema, UpdatePurchaseOrderParamsSchema, DeletePurchaseOrderParamsSchema, ListOutgoingPaymentsParamsSchema, GetOutgoingPaymentParamsSchema, CreateOutgoingPaymentParamsSchema, UpdateOutgoingPaymentParamsSchema, DeleteOutgoingPaymentParamsSchema, } from "../../types/index.js";
7
+ export const handlers = {
8
+ // ===== BILLS =====
9
+ list_bills: async (client, args) => {
10
+ const { limit, offset } = ListBillsParamsSchema.parse(args);
11
+ return client.listBills({ limit, offset });
12
+ },
13
+ get_bill: async (client, args) => {
14
+ const { bill_id } = GetBillParamsSchema.parse(args);
15
+ const bill = await client.getBill(bill_id);
16
+ if (!bill) {
17
+ throw McpError.notFound("Bill", bill_id);
18
+ }
19
+ return bill;
20
+ },
21
+ create_bill: async (client, args) => {
22
+ const { bill_data } = CreateBillParamsSchema.parse(args);
23
+ return client.createBill(bill_data);
24
+ },
25
+ update_bill: async (client, args) => {
26
+ const { bill_id, bill_data } = UpdateBillParamsSchema.parse(args);
27
+ return client.updateBill(bill_id, bill_data);
28
+ },
29
+ delete_bill: async (client, args) => {
30
+ const { bill_id } = DeleteBillParamsSchema.parse(args);
31
+ return client.deleteBill(bill_id);
32
+ },
33
+ search_bills: async (client, args) => {
34
+ const { criteria, limit, offset } = SearchBillsParamsSchema.parse(args);
35
+ return client.searchBills(criteria, { limit, offset });
36
+ },
37
+ issue_bill: async (client, args) => {
38
+ const { bill_id } = IssueBillParamsSchema.parse(args);
39
+ return client.issueBill(bill_id);
40
+ },
41
+ mark_bill_as_paid: async (client, args) => {
42
+ const { bill_id } = MarkBillAsPaidParamsSchema.parse(args);
43
+ return client.markBillAsPaid(bill_id);
44
+ },
45
+ // ===== EXPENSES =====
46
+ list_expenses: async (client, args) => {
47
+ const { limit, offset } = ListExpensesParamsSchema.parse(args);
48
+ return client.listExpenses({ limit, offset });
49
+ },
50
+ get_expense: async (client, args) => {
51
+ const { expense_id } = GetExpenseParamsSchema.parse(args);
52
+ const expense = await client.getExpense(expense_id);
53
+ if (!expense) {
54
+ throw McpError.notFound("Expense", expense_id);
55
+ }
56
+ return expense;
57
+ },
58
+ create_expense: async (client, args) => {
59
+ const { expense_data } = CreateExpenseParamsSchema.parse(args);
60
+ return client.createExpense(expense_data);
61
+ },
62
+ update_expense: async (client, args) => {
63
+ const { expense_id, expense_data } = UpdateExpenseParamsSchema.parse(args);
64
+ return client.updateExpense(expense_id, expense_data);
65
+ },
66
+ delete_expense: async (client, args) => {
67
+ const { expense_id } = DeleteExpenseParamsSchema.parse(args);
68
+ return client.deleteExpense(expense_id);
69
+ },
70
+ // ===== PURCHASE ORDERS =====
71
+ list_purchase_orders: async (client, args) => {
72
+ const { limit, offset } = ListPurchaseOrdersParamsSchema.parse(args);
73
+ return client.listPurchaseOrders({ limit, offset });
74
+ },
75
+ get_purchase_order: async (client, args) => {
76
+ const { purchase_order_id } = GetPurchaseOrderParamsSchema.parse(args);
77
+ const purchaseOrder = await client.getPurchaseOrder(purchase_order_id);
78
+ if (!purchaseOrder) {
79
+ throw McpError.notFound("Purchase Order", purchase_order_id);
80
+ }
81
+ return purchaseOrder;
82
+ },
83
+ create_purchase_order: async (client, args) => {
84
+ const { purchase_order_data } = CreatePurchaseOrderParamsSchema.parse(args);
85
+ return client.createPurchaseOrder(purchase_order_data);
86
+ },
87
+ update_purchase_order: async (client, args) => {
88
+ const { purchase_order_id, purchase_order_data } = UpdatePurchaseOrderParamsSchema.parse(args);
89
+ return client.updatePurchaseOrder(purchase_order_id, purchase_order_data);
90
+ },
91
+ delete_purchase_order: async (client, args) => {
92
+ const { purchase_order_id } = DeletePurchaseOrderParamsSchema.parse(args);
93
+ return client.deletePurchaseOrder(purchase_order_id);
94
+ },
95
+ // ===== OUTGOING PAYMENTS (linked to bills) =====
96
+ list_outgoing_payments: async (client, args) => {
97
+ const { bill_id } = ListOutgoingPaymentsParamsSchema.parse(args);
98
+ return client.listOutgoingPayments(bill_id);
99
+ },
100
+ get_outgoing_payment: async (client, args) => {
101
+ const { bill_id, payment_id } = GetOutgoingPaymentParamsSchema.parse(args);
102
+ const payment = await client.getOutgoingPayment(bill_id, payment_id);
103
+ if (!payment) {
104
+ throw McpError.notFound("Outgoing Payment", payment_id);
105
+ }
106
+ return payment;
107
+ },
108
+ create_outgoing_payment: async (client, args) => {
109
+ const { bill_id, payment_data } = CreateOutgoingPaymentParamsSchema.parse(args);
110
+ return client.createOutgoingPayment(bill_id, payment_data);
111
+ },
112
+ update_outgoing_payment: async (client, args) => {
113
+ const { bill_id, payment_id, payment_data } = UpdateOutgoingPaymentParamsSchema.parse(args);
114
+ return client.updateOutgoingPayment(bill_id, payment_id, payment_data);
115
+ },
116
+ delete_outgoing_payment: async (client, args) => {
117
+ const { bill_id, payment_id } = DeleteOutgoingPaymentParamsSchema.parse(args);
118
+ return client.deleteOutgoingPayment(bill_id, payment_id);
119
+ },
120
+ };
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Purchase domain module.
3
+ * Exports tool definitions and handlers for bills and expenses.
4
+ */
5
+ export { toolDefinitions } from "./definitions.js";
6
+ export { handlers } from "./handlers.js";
7
+ export type { HandlerFn } from "./handlers.js";
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Purchase domain module.
3
+ * Exports tool definitions and handlers for bills and expenses.
4
+ */
5
+ export { toolDefinitions } from "./definitions.js";
6
+ export { handlers } from "./handlers.js";
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Quote tool definitions.
3
+ * Contains MCP tool metadata for quotes/offers domain.
4
+ */
5
+ import type { Tool } from "@modelcontextprotocol/sdk/types.js";
6
+ export declare const toolDefinitions: Tool[];