@hasna/microservices 0.0.15 → 0.0.17

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 (296) hide show
  1. package/README.md +120 -138
  2. package/bin/index.js +703 -12728
  3. package/bin/mcp.js +250 -9726
  4. package/dist/index.js +170 -9407
  5. package/package.json +25 -25
  6. package/microservices/microservice-ads/package.json +0 -27
  7. package/microservices/microservice-ads/src/cli/index.ts +0 -605
  8. package/microservices/microservice-ads/src/db/campaigns.ts +0 -797
  9. package/microservices/microservice-ads/src/db/database.ts +0 -93
  10. package/microservices/microservice-ads/src/db/migrations.ts +0 -60
  11. package/microservices/microservice-ads/src/index.ts +0 -39
  12. package/microservices/microservice-ads/src/mcp/index.ts +0 -480
  13. package/microservices/microservice-analytics/package.json +0 -27
  14. package/microservices/microservice-analytics/src/cli/index.ts +0 -373
  15. package/microservices/microservice-analytics/src/db/analytics.ts +0 -564
  16. package/microservices/microservice-analytics/src/db/database.ts +0 -93
  17. package/microservices/microservice-analytics/src/db/migrations.ts +0 -50
  18. package/microservices/microservice-analytics/src/index.ts +0 -37
  19. package/microservices/microservice-analytics/src/mcp/index.ts +0 -334
  20. package/microservices/microservice-assets/package.json +0 -27
  21. package/microservices/microservice-assets/src/cli/index.ts +0 -375
  22. package/microservices/microservice-assets/src/db/assets.ts +0 -370
  23. package/microservices/microservice-assets/src/db/database.ts +0 -93
  24. package/microservices/microservice-assets/src/db/migrations.ts +0 -51
  25. package/microservices/microservice-assets/src/index.ts +0 -32
  26. package/microservices/microservice-assets/src/mcp/index.ts +0 -346
  27. package/microservices/microservice-bookkeeping/package.json +0 -27
  28. package/microservices/microservice-bookkeeping/src/cli/index.ts +0 -386
  29. package/microservices/microservice-bookkeeping/src/db/bookkeeping.ts +0 -591
  30. package/microservices/microservice-bookkeeping/src/db/database.ts +0 -93
  31. package/microservices/microservice-bookkeeping/src/db/migrations.ts +0 -52
  32. package/microservices/microservice-bookkeeping/src/index.ts +0 -32
  33. package/microservices/microservice-bookkeeping/src/mcp/index.ts +0 -284
  34. package/microservices/microservice-calendar/package.json +0 -27
  35. package/microservices/microservice-calendar/src/cli/index.ts +0 -287
  36. package/microservices/microservice-calendar/src/db/calendar.ts +0 -328
  37. package/microservices/microservice-calendar/src/db/database.ts +0 -82
  38. package/microservices/microservice-calendar/src/db/migrations.ts +0 -47
  39. package/microservices/microservice-calendar/src/index.ts +0 -24
  40. package/microservices/microservice-calendar/src/mcp/index.ts +0 -226
  41. package/microservices/microservice-company/package.json +0 -27
  42. package/microservices/microservice-company/src/cli/index.ts +0 -1126
  43. package/microservices/microservice-company/src/db/company.ts +0 -854
  44. package/microservices/microservice-company/src/db/database.ts +0 -93
  45. package/microservices/microservice-company/src/db/migrations.ts +0 -214
  46. package/microservices/microservice-company/src/db/workflow-migrations.ts +0 -44
  47. package/microservices/microservice-company/src/index.ts +0 -60
  48. package/microservices/microservice-company/src/lib/audit.ts +0 -168
  49. package/microservices/microservice-company/src/lib/finance.ts +0 -299
  50. package/microservices/microservice-company/src/lib/settings.ts +0 -85
  51. package/microservices/microservice-company/src/lib/workflows.ts +0 -698
  52. package/microservices/microservice-company/src/mcp/index.ts +0 -991
  53. package/microservices/microservice-compliance/package.json +0 -27
  54. package/microservices/microservice-compliance/src/cli/index.ts +0 -467
  55. package/microservices/microservice-compliance/src/db/compliance.ts +0 -633
  56. package/microservices/microservice-compliance/src/db/database.ts +0 -93
  57. package/microservices/microservice-compliance/src/db/migrations.ts +0 -63
  58. package/microservices/microservice-compliance/src/index.ts +0 -46
  59. package/microservices/microservice-compliance/src/mcp/index.ts +0 -438
  60. package/microservices/microservice-contacts/package.json +0 -27
  61. package/microservices/microservice-contacts/src/cli/index.ts +0 -393
  62. package/microservices/microservice-contacts/src/db/companies.ts +0 -167
  63. package/microservices/microservice-contacts/src/db/contacts.ts +0 -249
  64. package/microservices/microservice-contacts/src/db/database.ts +0 -93
  65. package/microservices/microservice-contacts/src/db/migrations.ts +0 -71
  66. package/microservices/microservice-contacts/src/db/relationships.ts +0 -53
  67. package/microservices/microservice-contacts/src/index.ts +0 -42
  68. package/microservices/microservice-contacts/src/mcp/index.ts +0 -303
  69. package/microservices/microservice-contracts/package.json +0 -27
  70. package/microservices/microservice-contracts/src/cli/index.ts +0 -770
  71. package/microservices/microservice-contracts/src/db/contracts.ts +0 -925
  72. package/microservices/microservice-contracts/src/db/database.ts +0 -93
  73. package/microservices/microservice-contracts/src/db/migrations.ts +0 -141
  74. package/microservices/microservice-contracts/src/index.ts +0 -43
  75. package/microservices/microservice-contracts/src/mcp/index.ts +0 -617
  76. package/microservices/microservice-crm/package.json +0 -27
  77. package/microservices/microservice-crm/src/cli/index.ts +0 -396
  78. package/microservices/microservice-crm/src/db/database.ts +0 -82
  79. package/microservices/microservice-crm/src/db/migrations.ts +0 -66
  80. package/microservices/microservice-crm/src/db/pipeline.ts +0 -397
  81. package/microservices/microservice-crm/src/index.ts +0 -34
  82. package/microservices/microservice-crm/src/mcp/index.ts +0 -294
  83. package/microservices/microservice-documents/package.json +0 -27
  84. package/microservices/microservice-documents/src/cli/index.ts +0 -246
  85. package/microservices/microservice-documents/src/db/database.ts +0 -82
  86. package/microservices/microservice-documents/src/db/documents.ts +0 -316
  87. package/microservices/microservice-documents/src/db/migrations.ts +0 -49
  88. package/microservices/microservice-documents/src/index.ts +0 -24
  89. package/microservices/microservice-documents/src/mcp/index.ts +0 -202
  90. package/microservices/microservice-domains/package.json +0 -27
  91. package/microservices/microservice-domains/src/cli/index.ts +0 -1111
  92. package/microservices/microservice-domains/src/db/database.ts +0 -93
  93. package/microservices/microservice-domains/src/db/domains.ts +0 -1164
  94. package/microservices/microservice-domains/src/db/migrations.ts +0 -60
  95. package/microservices/microservice-domains/src/index.ts +0 -65
  96. package/microservices/microservice-domains/src/lib/brandsight.ts +0 -350
  97. package/microservices/microservice-domains/src/lib/godaddy.ts +0 -338
  98. package/microservices/microservice-domains/src/lib/namecheap.ts +0 -262
  99. package/microservices/microservice-domains/src/lib/registrar.ts +0 -355
  100. package/microservices/microservice-domains/src/mcp/index.ts +0 -781
  101. package/microservices/microservice-expenses/package.json +0 -27
  102. package/microservices/microservice-expenses/src/cli/index.ts +0 -267
  103. package/microservices/microservice-expenses/src/db/database.ts +0 -82
  104. package/microservices/microservice-expenses/src/db/expenses.ts +0 -345
  105. package/microservices/microservice-expenses/src/db/migrations.ts +0 -45
  106. package/microservices/microservice-expenses/src/index.ts +0 -25
  107. package/microservices/microservice-expenses/src/mcp/index.ts +0 -196
  108. package/microservices/microservice-habits/package.json +0 -27
  109. package/microservices/microservice-habits/src/cli/index.ts +0 -315
  110. package/microservices/microservice-habits/src/db/database.ts +0 -93
  111. package/microservices/microservice-habits/src/db/habits.ts +0 -451
  112. package/microservices/microservice-habits/src/db/migrations.ts +0 -46
  113. package/microservices/microservice-habits/src/index.ts +0 -31
  114. package/microservices/microservice-habits/src/mcp/index.ts +0 -313
  115. package/microservices/microservice-health/package.json +0 -27
  116. package/microservices/microservice-health/src/cli/index.ts +0 -484
  117. package/microservices/microservice-health/src/db/database.ts +0 -93
  118. package/microservices/microservice-health/src/db/health.ts +0 -708
  119. package/microservices/microservice-health/src/db/migrations.ts +0 -70
  120. package/microservices/microservice-health/src/index.ts +0 -63
  121. package/microservices/microservice-health/src/mcp/index.ts +0 -437
  122. package/microservices/microservice-hiring/package.json +0 -27
  123. package/microservices/microservice-hiring/src/cli/index.ts +0 -741
  124. package/microservices/microservice-hiring/src/db/database.ts +0 -93
  125. package/microservices/microservice-hiring/src/db/hiring.ts +0 -1085
  126. package/microservices/microservice-hiring/src/db/migrations.ts +0 -89
  127. package/microservices/microservice-hiring/src/index.ts +0 -80
  128. package/microservices/microservice-hiring/src/lib/scoring.ts +0 -206
  129. package/microservices/microservice-hiring/src/mcp/index.ts +0 -709
  130. package/microservices/microservice-inventory/package.json +0 -27
  131. package/microservices/microservice-inventory/src/cli/index.ts +0 -365
  132. package/microservices/microservice-inventory/src/db/database.ts +0 -82
  133. package/microservices/microservice-inventory/src/db/inventory.ts +0 -393
  134. package/microservices/microservice-inventory/src/db/migrations.ts +0 -54
  135. package/microservices/microservice-inventory/src/index.ts +0 -28
  136. package/microservices/microservice-inventory/src/mcp/index.ts +0 -250
  137. package/microservices/microservice-invoices/dashboard/dist/assets/index-Bngq7FNM.css +0 -1
  138. package/microservices/microservice-invoices/dashboard/dist/assets/index-aHW4ARZR.js +0 -124
  139. package/microservices/microservice-invoices/dashboard/dist/index.html +0 -13
  140. package/microservices/microservice-invoices/dashboard/index.html +0 -12
  141. package/microservices/microservice-invoices/dashboard/package.json +0 -29
  142. package/microservices/microservice-invoices/dashboard/tsconfig.json +0 -14
  143. package/microservices/microservice-invoices/dashboard/vite.config.ts +0 -15
  144. package/microservices/microservice-invoices/package.json +0 -30
  145. package/microservices/microservice-invoices/src/cli/index.ts +0 -308
  146. package/microservices/microservice-invoices/src/db/business.ts +0 -241
  147. package/microservices/microservice-invoices/src/db/clients.ts +0 -127
  148. package/microservices/microservice-invoices/src/db/database.ts +0 -82
  149. package/microservices/microservice-invoices/src/db/invoices.ts +0 -345
  150. package/microservices/microservice-invoices/src/db/migrations.ts +0 -184
  151. package/microservices/microservice-invoices/src/index.ts +0 -56
  152. package/microservices/microservice-invoices/src/mcp/index.ts +0 -242
  153. package/microservices/microservice-invoices/src/server/index.ts +0 -162
  154. package/microservices/microservice-leads/package.json +0 -27
  155. package/microservices/microservice-leads/src/cli/index.ts +0 -596
  156. package/microservices/microservice-leads/src/db/database.ts +0 -93
  157. package/microservices/microservice-leads/src/db/leads.ts +0 -520
  158. package/microservices/microservice-leads/src/db/lists.ts +0 -151
  159. package/microservices/microservice-leads/src/db/migrations.ts +0 -93
  160. package/microservices/microservice-leads/src/index.ts +0 -65
  161. package/microservices/microservice-leads/src/lib/enrichment.ts +0 -202
  162. package/microservices/microservice-leads/src/lib/scoring.ts +0 -134
  163. package/microservices/microservice-leads/src/mcp/index.ts +0 -533
  164. package/microservices/microservice-notes/package.json +0 -27
  165. package/microservices/microservice-notes/src/cli/index.ts +0 -63
  166. package/microservices/microservice-notes/src/db/database.ts +0 -93
  167. package/microservices/microservice-notes/src/db/migrations.ts +0 -40
  168. package/microservices/microservice-notes/src/db/notes.ts +0 -114
  169. package/microservices/microservice-notes/src/index.ts +0 -2
  170. package/microservices/microservice-notes/src/mcp/index.ts +0 -37
  171. package/microservices/microservice-notifications/package.json +0 -27
  172. package/microservices/microservice-notifications/src/cli/index.ts +0 -349
  173. package/microservices/microservice-notifications/src/db/database.ts +0 -93
  174. package/microservices/microservice-notifications/src/db/migrations.ts +0 -62
  175. package/microservices/microservice-notifications/src/db/notifications.ts +0 -509
  176. package/microservices/microservice-notifications/src/index.ts +0 -41
  177. package/microservices/microservice-notifications/src/mcp/index.ts +0 -422
  178. package/microservices/microservice-payments/package.json +0 -27
  179. package/microservices/microservice-payments/src/cli/index.ts +0 -609
  180. package/microservices/microservice-payments/src/db/database.ts +0 -93
  181. package/microservices/microservice-payments/src/db/migrations.ts +0 -81
  182. package/microservices/microservice-payments/src/db/payments.ts +0 -1204
  183. package/microservices/microservice-payments/src/index.ts +0 -51
  184. package/microservices/microservice-payments/src/mcp/index.ts +0 -683
  185. package/microservices/microservice-payroll/package.json +0 -27
  186. package/microservices/microservice-payroll/src/cli/index.ts +0 -643
  187. package/microservices/microservice-payroll/src/db/database.ts +0 -93
  188. package/microservices/microservice-payroll/src/db/migrations.ts +0 -95
  189. package/microservices/microservice-payroll/src/db/payroll.ts +0 -1377
  190. package/microservices/microservice-payroll/src/index.ts +0 -48
  191. package/microservices/microservice-payroll/src/mcp/index.ts +0 -666
  192. package/microservices/microservice-products/package.json +0 -27
  193. package/microservices/microservice-products/src/cli/index.ts +0 -416
  194. package/microservices/microservice-products/src/db/categories.ts +0 -154
  195. package/microservices/microservice-products/src/db/database.ts +0 -93
  196. package/microservices/microservice-products/src/db/migrations.ts +0 -58
  197. package/microservices/microservice-products/src/db/pricing-tiers.ts +0 -66
  198. package/microservices/microservice-products/src/db/products.ts +0 -452
  199. package/microservices/microservice-products/src/index.ts +0 -53
  200. package/microservices/microservice-products/src/mcp/index.ts +0 -453
  201. package/microservices/microservice-projects/package.json +0 -27
  202. package/microservices/microservice-projects/src/cli/index.ts +0 -480
  203. package/microservices/microservice-projects/src/db/database.ts +0 -93
  204. package/microservices/microservice-projects/src/db/migrations.ts +0 -65
  205. package/microservices/microservice-projects/src/db/projects.ts +0 -715
  206. package/microservices/microservice-projects/src/index.ts +0 -57
  207. package/microservices/microservice-projects/src/mcp/index.ts +0 -501
  208. package/microservices/microservice-proposals/package.json +0 -27
  209. package/microservices/microservice-proposals/src/cli/index.ts +0 -400
  210. package/microservices/microservice-proposals/src/db/database.ts +0 -93
  211. package/microservices/microservice-proposals/src/db/migrations.ts +0 -52
  212. package/microservices/microservice-proposals/src/db/proposals.ts +0 -532
  213. package/microservices/microservice-proposals/src/index.ts +0 -37
  214. package/microservices/microservice-proposals/src/mcp/index.ts +0 -375
  215. package/microservices/microservice-reading/package.json +0 -27
  216. package/microservices/microservice-reading/src/cli/index.ts +0 -464
  217. package/microservices/microservice-reading/src/db/database.ts +0 -93
  218. package/microservices/microservice-reading/src/db/migrations.ts +0 -59
  219. package/microservices/microservice-reading/src/db/reading.ts +0 -524
  220. package/microservices/microservice-reading/src/index.ts +0 -51
  221. package/microservices/microservice-reading/src/mcp/index.ts +0 -368
  222. package/microservices/microservice-shipping/package.json +0 -27
  223. package/microservices/microservice-shipping/src/cli/index.ts +0 -606
  224. package/microservices/microservice-shipping/src/db/database.ts +0 -93
  225. package/microservices/microservice-shipping/src/db/migrations.ts +0 -69
  226. package/microservices/microservice-shipping/src/db/shipping.ts +0 -1093
  227. package/microservices/microservice-shipping/src/index.ts +0 -53
  228. package/microservices/microservice-shipping/src/mcp/index.ts +0 -533
  229. package/microservices/microservice-social/package.json +0 -28
  230. package/microservices/microservice-social/src/cli/index.ts +0 -1583
  231. package/microservices/microservice-social/src/db/database.ts +0 -93
  232. package/microservices/microservice-social/src/db/migrations.ts +0 -160
  233. package/microservices/microservice-social/src/db/social.ts +0 -1076
  234. package/microservices/microservice-social/src/index.ts +0 -46
  235. package/microservices/microservice-social/src/lib/audience.ts +0 -353
  236. package/microservices/microservice-social/src/lib/content-ai.ts +0 -278
  237. package/microservices/microservice-social/src/lib/media.ts +0 -311
  238. package/microservices/microservice-social/src/lib/mentions.ts +0 -434
  239. package/microservices/microservice-social/src/lib/metrics-sync.ts +0 -264
  240. package/microservices/microservice-social/src/lib/publisher.ts +0 -377
  241. package/microservices/microservice-social/src/lib/scheduler.ts +0 -229
  242. package/microservices/microservice-social/src/lib/sentiment.ts +0 -256
  243. package/microservices/microservice-social/src/lib/threads.ts +0 -291
  244. package/microservices/microservice-social/src/mcp/index.ts +0 -1425
  245. package/microservices/microservice-social/src/server/index.ts +0 -441
  246. package/microservices/microservice-subscriptions/package.json +0 -27
  247. package/microservices/microservice-subscriptions/src/cli/index.ts +0 -715
  248. package/microservices/microservice-subscriptions/src/db/database.ts +0 -93
  249. package/microservices/microservice-subscriptions/src/db/migrations.ts +0 -125
  250. package/microservices/microservice-subscriptions/src/db/subscriptions.ts +0 -1256
  251. package/microservices/microservice-subscriptions/src/index.ts +0 -41
  252. package/microservices/microservice-subscriptions/src/mcp/index.ts +0 -631
  253. package/microservices/microservice-timesheets/package.json +0 -27
  254. package/microservices/microservice-timesheets/src/cli/index.ts +0 -373
  255. package/microservices/microservice-timesheets/src/db/database.ts +0 -82
  256. package/microservices/microservice-timesheets/src/db/locale.ts +0 -217
  257. package/microservices/microservice-timesheets/src/db/migrations.ts +0 -74
  258. package/microservices/microservice-timesheets/src/db/timesheets.ts +0 -447
  259. package/microservices/microservice-timesheets/src/index.ts +0 -44
  260. package/microservices/microservice-timesheets/src/mcp/index.ts +0 -269
  261. package/microservices/microservice-transcriber/package.json +0 -28
  262. package/microservices/microservice-transcriber/src/cli/index.ts +0 -1593
  263. package/microservices/microservice-transcriber/src/db/annotations.ts +0 -37
  264. package/microservices/microservice-transcriber/src/db/comments.ts +0 -166
  265. package/microservices/microservice-transcriber/src/db/database.ts +0 -82
  266. package/microservices/microservice-transcriber/src/db/migrations.ts +0 -118
  267. package/microservices/microservice-transcriber/src/db/proofread.ts +0 -119
  268. package/microservices/microservice-transcriber/src/db/transcripts.ts +0 -395
  269. package/microservices/microservice-transcriber/src/index.ts +0 -43
  270. package/microservices/microservice-transcriber/src/lib/config.ts +0 -77
  271. package/microservices/microservice-transcriber/src/lib/diff.ts +0 -91
  272. package/microservices/microservice-transcriber/src/lib/downloader.ts +0 -638
  273. package/microservices/microservice-transcriber/src/lib/feeds.ts +0 -62
  274. package/microservices/microservice-transcriber/src/lib/live.ts +0 -94
  275. package/microservices/microservice-transcriber/src/lib/notion.ts +0 -129
  276. package/microservices/microservice-transcriber/src/lib/proofread.ts +0 -296
  277. package/microservices/microservice-transcriber/src/lib/providers.ts +0 -713
  278. package/microservices/microservice-transcriber/src/lib/summarizer.ts +0 -147
  279. package/microservices/microservice-transcriber/src/lib/translator.ts +0 -75
  280. package/microservices/microservice-transcriber/src/lib/webhook.ts +0 -37
  281. package/microservices/microservice-transcriber/src/mcp/index.ts +0 -1330
  282. package/microservices/microservice-transcriber/src/server/index.ts +0 -199
  283. package/microservices/microservice-travel/package.json +0 -27
  284. package/microservices/microservice-travel/src/cli/index.ts +0 -505
  285. package/microservices/microservice-travel/src/db/database.ts +0 -93
  286. package/microservices/microservice-travel/src/db/migrations.ts +0 -77
  287. package/microservices/microservice-travel/src/db/travel.ts +0 -802
  288. package/microservices/microservice-travel/src/index.ts +0 -60
  289. package/microservices/microservice-travel/src/mcp/index.ts +0 -495
  290. package/microservices/microservice-wiki/package.json +0 -27
  291. package/microservices/microservice-wiki/src/cli/index.ts +0 -345
  292. package/microservices/microservice-wiki/src/db/database.ts +0 -93
  293. package/microservices/microservice-wiki/src/db/migrations.ts +0 -55
  294. package/microservices/microservice-wiki/src/db/wiki.ts +0 -395
  295. package/microservices/microservice-wiki/src/index.ts +0 -32
  296. package/microservices/microservice-wiki/src/mcp/index.ts +0 -344
@@ -1,453 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
4
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
5
- import { z } from "zod";
6
- import {
7
- createProduct,
8
- getProduct,
9
- listProducts,
10
- updateProduct,
11
- deleteProduct,
12
- countProducts,
13
- searchProducts,
14
- listByCategory,
15
- listByType,
16
- listByStatus,
17
- getProductWithTiers,
18
- bulkImportProducts,
19
- exportProducts,
20
- getProductStats,
21
- } from "../db/products.js";
22
- import {
23
- createCategory,
24
- getCategory,
25
- listCategories,
26
- updateCategory,
27
- deleteCategory,
28
- getCategoryTree,
29
- } from "../db/categories.js";
30
- import {
31
- createPricingTier,
32
- listPricingTiers,
33
- deletePricingTier,
34
- } from "../db/pricing-tiers.js";
35
-
36
- const server = new McpServer({
37
- name: "microservice-products",
38
- version: "0.0.1",
39
- });
40
-
41
- // --- Products ---
42
-
43
- server.registerTool(
44
- "create_product",
45
- {
46
- title: "Create Product",
47
- description: "Create a new product.",
48
- inputSchema: {
49
- name: z.string(),
50
- description: z.string().optional(),
51
- type: z.enum(["product", "service", "subscription", "digital"]).optional(),
52
- sku: z.string().optional(),
53
- price: z.number().optional(),
54
- currency: z.string().optional(),
55
- unit: z.string().optional(),
56
- category: z.string().optional(),
57
- status: z.enum(["active", "draft", "archived"]).optional(),
58
- images: z.array(z.string()).optional(),
59
- variants: z.array(z.record(z.unknown())).optional(),
60
- metadata: z.record(z.unknown()).optional(),
61
- },
62
- },
63
- async (params) => {
64
- const product = createProduct(params);
65
- return { content: [{ type: "text", text: JSON.stringify(product, null, 2) }] };
66
- }
67
- );
68
-
69
- server.registerTool(
70
- "get_product",
71
- {
72
- title: "Get Product",
73
- description: "Get a product by ID.",
74
- inputSchema: { id: z.string() },
75
- },
76
- async ({ id }) => {
77
- const product = getProduct(id);
78
- if (!product) {
79
- return { content: [{ type: "text", text: `Product '${id}' not found.` }], isError: true };
80
- }
81
- return { content: [{ type: "text", text: JSON.stringify(product, null, 2) }] };
82
- }
83
- );
84
-
85
- server.registerTool(
86
- "list_products",
87
- {
88
- title: "List Products",
89
- description: "List products with optional filters.",
90
- inputSchema: {
91
- search: z.string().optional(),
92
- category: z.string().optional(),
93
- type: z.enum(["product", "service", "subscription", "digital"]).optional(),
94
- status: z.enum(["active", "draft", "archived"]).optional(),
95
- limit: z.number().optional(),
96
- offset: z.number().optional(),
97
- },
98
- },
99
- async (params) => {
100
- const products = listProducts(params);
101
- return {
102
- content: [
103
- {
104
- type: "text",
105
- text: JSON.stringify({ products, count: products.length }, null, 2),
106
- },
107
- ],
108
- };
109
- }
110
- );
111
-
112
- server.registerTool(
113
- "update_product",
114
- {
115
- title: "Update Product",
116
- description: "Update an existing product.",
117
- inputSchema: {
118
- id: z.string(),
119
- name: z.string().optional(),
120
- description: z.string().optional(),
121
- type: z.enum(["product", "service", "subscription", "digital"]).optional(),
122
- sku: z.string().optional(),
123
- price: z.number().optional(),
124
- currency: z.string().optional(),
125
- unit: z.string().optional(),
126
- category: z.string().optional(),
127
- status: z.enum(["active", "draft", "archived"]).optional(),
128
- images: z.array(z.string()).optional(),
129
- variants: z.array(z.record(z.unknown())).optional(),
130
- metadata: z.record(z.unknown()).optional(),
131
- },
132
- },
133
- async ({ id, ...input }) => {
134
- const product = updateProduct(id, input);
135
- if (!product) {
136
- return { content: [{ type: "text", text: `Product '${id}' not found.` }], isError: true };
137
- }
138
- return { content: [{ type: "text", text: JSON.stringify(product, null, 2) }] };
139
- }
140
- );
141
-
142
- server.registerTool(
143
- "delete_product",
144
- {
145
- title: "Delete Product",
146
- description: "Delete a product by ID.",
147
- inputSchema: { id: z.string() },
148
- },
149
- async ({ id }) => {
150
- const deleted = deleteProduct(id);
151
- return { content: [{ type: "text", text: JSON.stringify({ id, deleted }) }] };
152
- }
153
- );
154
-
155
- server.registerTool(
156
- "search_products",
157
- {
158
- title: "Search Products",
159
- description: "Search products by name, description, or SKU.",
160
- inputSchema: { query: z.string() },
161
- },
162
- async ({ query }) => {
163
- const results = searchProducts(query);
164
- return {
165
- content: [
166
- { type: "text", text: JSON.stringify({ results, count: results.length }, null, 2) },
167
- ],
168
- };
169
- }
170
- );
171
-
172
- server.registerTool(
173
- "count_products",
174
- {
175
- title: "Count Products",
176
- description: "Get the total number of products.",
177
- inputSchema: {},
178
- },
179
- async () => {
180
- const count = countProducts();
181
- return { content: [{ type: "text", text: JSON.stringify({ count }) }] };
182
- }
183
- );
184
-
185
- server.registerTool(
186
- "list_products_by_category",
187
- {
188
- title: "List Products by Category",
189
- description: "List all products in a given category.",
190
- inputSchema: { category: z.string() },
191
- },
192
- async ({ category }) => {
193
- const products = listByCategory(category);
194
- return {
195
- content: [
196
- { type: "text", text: JSON.stringify({ products, count: products.length }, null, 2) },
197
- ],
198
- };
199
- }
200
- );
201
-
202
- server.registerTool(
203
- "list_products_by_type",
204
- {
205
- title: "List Products by Type",
206
- description: "List all products of a given type.",
207
- inputSchema: { type: z.enum(["product", "service", "subscription", "digital"]) },
208
- },
209
- async ({ type }) => {
210
- const products = listByType(type);
211
- return {
212
- content: [
213
- { type: "text", text: JSON.stringify({ products, count: products.length }, null, 2) },
214
- ],
215
- };
216
- }
217
- );
218
-
219
- server.registerTool(
220
- "list_products_by_status",
221
- {
222
- title: "List Products by Status",
223
- description: "List all products with a given status.",
224
- inputSchema: { status: z.enum(["active", "draft", "archived"]) },
225
- },
226
- async ({ status }) => {
227
- const products = listByStatus(status);
228
- return {
229
- content: [
230
- { type: "text", text: JSON.stringify({ products, count: products.length }, null, 2) },
231
- ],
232
- };
233
- }
234
- );
235
-
236
- server.registerTool(
237
- "get_product_with_tiers",
238
- {
239
- title: "Get Product with Pricing Tiers",
240
- description: "Get a product along with all its pricing tiers.",
241
- inputSchema: { id: z.string() },
242
- },
243
- async ({ id }) => {
244
- const product = getProductWithTiers(id);
245
- if (!product) {
246
- return { content: [{ type: "text", text: `Product '${id}' not found.` }], isError: true };
247
- }
248
- return { content: [{ type: "text", text: JSON.stringify(product, null, 2) }] };
249
- }
250
- );
251
-
252
- server.registerTool(
253
- "bulk_import_products",
254
- {
255
- title: "Bulk Import Products",
256
- description: "Import products from a CSV string. CSV must have a header row with at least a 'name' column.",
257
- inputSchema: { csv: z.string() },
258
- },
259
- async ({ csv }) => {
260
- const result = bulkImportProducts(csv);
261
- return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
262
- }
263
- );
264
-
265
- server.registerTool(
266
- "export_products",
267
- {
268
- title: "Export Products",
269
- description: "Export all products in CSV or JSON format.",
270
- inputSchema: { format: z.enum(["csv", "json"]).optional() },
271
- },
272
- async ({ format }) => {
273
- const output = exportProducts(format || "json");
274
- return { content: [{ type: "text", text: output }] };
275
- }
276
- );
277
-
278
- server.registerTool(
279
- "get_product_stats",
280
- {
281
- title: "Get Product Statistics",
282
- description: "Get aggregate statistics about products (counts by status, type, category, and price range).",
283
- inputSchema: {},
284
- },
285
- async () => {
286
- const stats = getProductStats();
287
- return { content: [{ type: "text", text: JSON.stringify(stats, null, 2) }] };
288
- }
289
- );
290
-
291
- // --- Categories ---
292
-
293
- server.registerTool(
294
- "create_category",
295
- {
296
- title: "Create Category",
297
- description: "Create a new product category.",
298
- inputSchema: {
299
- name: z.string(),
300
- parent_id: z.string().optional(),
301
- description: z.string().optional(),
302
- },
303
- },
304
- async (params) => {
305
- const category = createCategory(params);
306
- return { content: [{ type: "text", text: JSON.stringify(category, null, 2) }] };
307
- }
308
- );
309
-
310
- server.registerTool(
311
- "get_category",
312
- {
313
- title: "Get Category",
314
- description: "Get a category by ID.",
315
- inputSchema: { id: z.string() },
316
- },
317
- async ({ id }) => {
318
- const category = getCategory(id);
319
- if (!category) {
320
- return { content: [{ type: "text", text: `Category '${id}' not found.` }], isError: true };
321
- }
322
- return { content: [{ type: "text", text: JSON.stringify(category, null, 2) }] };
323
- }
324
- );
325
-
326
- server.registerTool(
327
- "list_categories",
328
- {
329
- title: "List Categories",
330
- description: "List all product categories.",
331
- inputSchema: {
332
- search: z.string().optional(),
333
- },
334
- },
335
- async (params) => {
336
- const categories = listCategories(params);
337
- return {
338
- content: [
339
- { type: "text", text: JSON.stringify({ categories, count: categories.length }, null, 2) },
340
- ],
341
- };
342
- }
343
- );
344
-
345
- server.registerTool(
346
- "update_category",
347
- {
348
- title: "Update Category",
349
- description: "Update an existing category.",
350
- inputSchema: {
351
- id: z.string(),
352
- name: z.string().optional(),
353
- parent_id: z.string().optional(),
354
- description: z.string().optional(),
355
- },
356
- },
357
- async ({ id, ...input }) => {
358
- const category = updateCategory(id, input);
359
- if (!category) {
360
- return { content: [{ type: "text", text: `Category '${id}' not found.` }], isError: true };
361
- }
362
- return { content: [{ type: "text", text: JSON.stringify(category, null, 2) }] };
363
- }
364
- );
365
-
366
- server.registerTool(
367
- "delete_category",
368
- {
369
- title: "Delete Category",
370
- description: "Delete a category by ID.",
371
- inputSchema: { id: z.string() },
372
- },
373
- async ({ id }) => {
374
- const deleted = deleteCategory(id);
375
- return { content: [{ type: "text", text: JSON.stringify({ id, deleted }) }] };
376
- }
377
- );
378
-
379
- server.registerTool(
380
- "get_category_tree",
381
- {
382
- title: "Get Category Tree",
383
- description: "Get the full category hierarchy as a tree structure.",
384
- inputSchema: {},
385
- },
386
- async () => {
387
- const tree = getCategoryTree();
388
- return { content: [{ type: "text", text: JSON.stringify(tree, null, 2) }] };
389
- }
390
- );
391
-
392
- // --- Pricing Tiers ---
393
-
394
- server.registerTool(
395
- "create_pricing_tier",
396
- {
397
- title: "Create Pricing Tier",
398
- description: "Add a pricing tier to a product.",
399
- inputSchema: {
400
- product_id: z.string(),
401
- name: z.string(),
402
- min_quantity: z.number(),
403
- price: z.number(),
404
- currency: z.string().optional(),
405
- },
406
- },
407
- async (params) => {
408
- const tier = createPricingTier(params);
409
- return { content: [{ type: "text", text: JSON.stringify(tier, null, 2) }] };
410
- }
411
- );
412
-
413
- server.registerTool(
414
- "list_pricing_tiers",
415
- {
416
- title: "List Pricing Tiers",
417
- description: "List all pricing tiers for a product.",
418
- inputSchema: { product_id: z.string() },
419
- },
420
- async ({ product_id }) => {
421
- const tiers = listPricingTiers(product_id);
422
- return {
423
- content: [
424
- { type: "text", text: JSON.stringify({ tiers, count: tiers.length }, null, 2) },
425
- ],
426
- };
427
- }
428
- );
429
-
430
- server.registerTool(
431
- "delete_pricing_tier",
432
- {
433
- title: "Delete Pricing Tier",
434
- description: "Delete a pricing tier by ID.",
435
- inputSchema: { id: z.string() },
436
- },
437
- async ({ id }) => {
438
- const deleted = deletePricingTier(id);
439
- return { content: [{ type: "text", text: JSON.stringify({ id, deleted }) }] };
440
- }
441
- );
442
-
443
- // --- Start ---
444
- async function main() {
445
- const transport = new StdioServerTransport();
446
- await server.connect(transport);
447
- console.error("microservice-products MCP server running on stdio");
448
- }
449
-
450
- main().catch((error) => {
451
- console.error("Fatal error:", error);
452
- process.exit(1);
453
- });
@@ -1,27 +0,0 @@
1
- {
2
- "name": "@hasna/microservice-projects",
3
- "version": "0.0.1",
4
- "description": "Project management microservice with SQLite — manage projects, milestones, and deliverables",
5
- "type": "module",
6
- "bin": {
7
- "microservice-projects": "./src/cli/index.ts",
8
- "microservice-projects-mcp": "./src/mcp/index.ts"
9
- },
10
- "exports": {
11
- ".": "./src/index.ts"
12
- },
13
- "scripts": {
14
- "dev": "bun run ./src/cli/index.ts",
15
- "test": "bun test"
16
- },
17
- "dependencies": {
18
- "@modelcontextprotocol/sdk": "^1.26.0",
19
- "commander": "^12.1.0",
20
- "zod": "^3.24.0"
21
- },
22
- "license": "Apache-2.0",
23
- "publishConfig": {
24
- "registry": "https://registry.npmjs.org",
25
- "access": "public"
26
- }
27
- }