@hasna/microservices 0.0.16 → 0.0.18

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 (293) hide show
  1. package/README.md +143 -23
  2. package/bin/index.js +784 -13987
  3. package/bin/mcp.js +298 -10973
  4. package/dist/index.js +251 -10056
  5. package/package.json +36 -26
  6. package/microservices/microservice-ads/package.json +0 -28
  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 -91
  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 -28
  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 -91
  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 -28
  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 -91
  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 -28
  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 -91
  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 -28
  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 -91
  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 -28
  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 -91
  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 -28
  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 -91
  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 -28
  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 -91
  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 -28
  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 -91
  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 -28
  77. package/microservices/microservice-crm/src/cli/index.ts +0 -396
  78. package/microservices/microservice-crm/src/db/database.ts +0 -91
  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 -28
  84. package/microservices/microservice-documents/src/cli/index.ts +0 -246
  85. package/microservices/microservice-documents/src/db/database.ts +0 -91
  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 -28
  91. package/microservices/microservice-domains/src/cli/index.ts +0 -1111
  92. package/microservices/microservice-domains/src/db/database.ts +0 -91
  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 -28
  102. package/microservices/microservice-expenses/src/cli/index.ts +0 -267
  103. package/microservices/microservice-expenses/src/db/database.ts +0 -91
  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 -28
  109. package/microservices/microservice-habits/src/cli/index.ts +0 -315
  110. package/microservices/microservice-habits/src/db/database.ts +0 -91
  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 -28
  116. package/microservices/microservice-health/src/cli/index.ts +0 -484
  117. package/microservices/microservice-health/src/db/database.ts +0 -91
  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 -28
  123. package/microservices/microservice-hiring/src/cli/index.ts +0 -741
  124. package/microservices/microservice-hiring/src/db/database.ts +0 -91
  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 -28
  131. package/microservices/microservice-inventory/src/cli/index.ts +0 -365
  132. package/microservices/microservice-inventory/src/db/database.ts +0 -91
  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/index.html +0 -12
  138. package/microservices/microservice-invoices/dashboard/package.json +0 -29
  139. package/microservices/microservice-invoices/dashboard/tsconfig.json +0 -14
  140. package/microservices/microservice-invoices/dashboard/vite.config.ts +0 -15
  141. package/microservices/microservice-invoices/package.json +0 -31
  142. package/microservices/microservice-invoices/src/cli/index.ts +0 -308
  143. package/microservices/microservice-invoices/src/db/business.ts +0 -241
  144. package/microservices/microservice-invoices/src/db/clients.ts +0 -127
  145. package/microservices/microservice-invoices/src/db/database.ts +0 -91
  146. package/microservices/microservice-invoices/src/db/invoices.ts +0 -345
  147. package/microservices/microservice-invoices/src/db/migrations.ts +0 -184
  148. package/microservices/microservice-invoices/src/index.ts +0 -56
  149. package/microservices/microservice-invoices/src/mcp/index.ts +0 -242
  150. package/microservices/microservice-invoices/src/server/index.ts +0 -162
  151. package/microservices/microservice-leads/package.json +0 -28
  152. package/microservices/microservice-leads/src/cli/index.ts +0 -596
  153. package/microservices/microservice-leads/src/db/database.ts +0 -91
  154. package/microservices/microservice-leads/src/db/leads.ts +0 -520
  155. package/microservices/microservice-leads/src/db/lists.ts +0 -151
  156. package/microservices/microservice-leads/src/db/migrations.ts +0 -93
  157. package/microservices/microservice-leads/src/index.ts +0 -65
  158. package/microservices/microservice-leads/src/lib/enrichment.ts +0 -202
  159. package/microservices/microservice-leads/src/lib/scoring.ts +0 -134
  160. package/microservices/microservice-leads/src/mcp/index.ts +0 -533
  161. package/microservices/microservice-notes/package.json +0 -28
  162. package/microservices/microservice-notes/src/cli/index.ts +0 -63
  163. package/microservices/microservice-notes/src/db/database.ts +0 -91
  164. package/microservices/microservice-notes/src/db/migrations.ts +0 -40
  165. package/microservices/microservice-notes/src/db/notes.ts +0 -114
  166. package/microservices/microservice-notes/src/index.ts +0 -2
  167. package/microservices/microservice-notes/src/mcp/index.ts +0 -37
  168. package/microservices/microservice-notifications/package.json +0 -28
  169. package/microservices/microservice-notifications/src/cli/index.ts +0 -349
  170. package/microservices/microservice-notifications/src/db/database.ts +0 -91
  171. package/microservices/microservice-notifications/src/db/migrations.ts +0 -62
  172. package/microservices/microservice-notifications/src/db/notifications.ts +0 -509
  173. package/microservices/microservice-notifications/src/index.ts +0 -41
  174. package/microservices/microservice-notifications/src/mcp/index.ts +0 -422
  175. package/microservices/microservice-payments/package.json +0 -28
  176. package/microservices/microservice-payments/src/cli/index.ts +0 -609
  177. package/microservices/microservice-payments/src/db/database.ts +0 -91
  178. package/microservices/microservice-payments/src/db/migrations.ts +0 -81
  179. package/microservices/microservice-payments/src/db/payments.ts +0 -1204
  180. package/microservices/microservice-payments/src/index.ts +0 -51
  181. package/microservices/microservice-payments/src/mcp/index.ts +0 -683
  182. package/microservices/microservice-payroll/package.json +0 -28
  183. package/microservices/microservice-payroll/src/cli/index.ts +0 -643
  184. package/microservices/microservice-payroll/src/db/database.ts +0 -91
  185. package/microservices/microservice-payroll/src/db/migrations.ts +0 -95
  186. package/microservices/microservice-payroll/src/db/payroll.ts +0 -1377
  187. package/microservices/microservice-payroll/src/index.ts +0 -48
  188. package/microservices/microservice-payroll/src/mcp/index.ts +0 -666
  189. package/microservices/microservice-products/package.json +0 -28
  190. package/microservices/microservice-products/src/cli/index.ts +0 -416
  191. package/microservices/microservice-products/src/db/categories.ts +0 -154
  192. package/microservices/microservice-products/src/db/database.ts +0 -91
  193. package/microservices/microservice-products/src/db/migrations.ts +0 -58
  194. package/microservices/microservice-products/src/db/pricing-tiers.ts +0 -66
  195. package/microservices/microservice-products/src/db/products.ts +0 -452
  196. package/microservices/microservice-products/src/index.ts +0 -53
  197. package/microservices/microservice-products/src/mcp/index.ts +0 -453
  198. package/microservices/microservice-projects/package.json +0 -28
  199. package/microservices/microservice-projects/src/cli/index.ts +0 -480
  200. package/microservices/microservice-projects/src/db/database.ts +0 -91
  201. package/microservices/microservice-projects/src/db/migrations.ts +0 -65
  202. package/microservices/microservice-projects/src/db/projects.ts +0 -715
  203. package/microservices/microservice-projects/src/index.ts +0 -57
  204. package/microservices/microservice-projects/src/mcp/index.ts +0 -501
  205. package/microservices/microservice-proposals/package.json +0 -28
  206. package/microservices/microservice-proposals/src/cli/index.ts +0 -400
  207. package/microservices/microservice-proposals/src/db/database.ts +0 -91
  208. package/microservices/microservice-proposals/src/db/migrations.ts +0 -52
  209. package/microservices/microservice-proposals/src/db/proposals.ts +0 -532
  210. package/microservices/microservice-proposals/src/index.ts +0 -37
  211. package/microservices/microservice-proposals/src/mcp/index.ts +0 -375
  212. package/microservices/microservice-reading/package.json +0 -28
  213. package/microservices/microservice-reading/src/cli/index.ts +0 -464
  214. package/microservices/microservice-reading/src/db/database.ts +0 -91
  215. package/microservices/microservice-reading/src/db/migrations.ts +0 -59
  216. package/microservices/microservice-reading/src/db/reading.ts +0 -524
  217. package/microservices/microservice-reading/src/index.ts +0 -51
  218. package/microservices/microservice-reading/src/mcp/index.ts +0 -368
  219. package/microservices/microservice-shipping/package.json +0 -28
  220. package/microservices/microservice-shipping/src/cli/index.ts +0 -606
  221. package/microservices/microservice-shipping/src/db/database.ts +0 -91
  222. package/microservices/microservice-shipping/src/db/migrations.ts +0 -69
  223. package/microservices/microservice-shipping/src/db/shipping.ts +0 -1093
  224. package/microservices/microservice-shipping/src/index.ts +0 -53
  225. package/microservices/microservice-shipping/src/mcp/index.ts +0 -533
  226. package/microservices/microservice-social/package.json +0 -29
  227. package/microservices/microservice-social/src/cli/index.ts +0 -1583
  228. package/microservices/microservice-social/src/db/database.ts +0 -91
  229. package/microservices/microservice-social/src/db/migrations.ts +0 -160
  230. package/microservices/microservice-social/src/db/social.ts +0 -1076
  231. package/microservices/microservice-social/src/index.ts +0 -46
  232. package/microservices/microservice-social/src/lib/audience.ts +0 -353
  233. package/microservices/microservice-social/src/lib/content-ai.ts +0 -278
  234. package/microservices/microservice-social/src/lib/media.ts +0 -311
  235. package/microservices/microservice-social/src/lib/mentions.ts +0 -434
  236. package/microservices/microservice-social/src/lib/metrics-sync.ts +0 -264
  237. package/microservices/microservice-social/src/lib/publisher.ts +0 -377
  238. package/microservices/microservice-social/src/lib/scheduler.ts +0 -229
  239. package/microservices/microservice-social/src/lib/sentiment.ts +0 -256
  240. package/microservices/microservice-social/src/lib/threads.ts +0 -291
  241. package/microservices/microservice-social/src/mcp/index.ts +0 -1425
  242. package/microservices/microservice-social/src/server/index.ts +0 -441
  243. package/microservices/microservice-subscriptions/package.json +0 -28
  244. package/microservices/microservice-subscriptions/src/cli/index.ts +0 -715
  245. package/microservices/microservice-subscriptions/src/db/database.ts +0 -91
  246. package/microservices/microservice-subscriptions/src/db/migrations.ts +0 -125
  247. package/microservices/microservice-subscriptions/src/db/subscriptions.ts +0 -1256
  248. package/microservices/microservice-subscriptions/src/index.ts +0 -41
  249. package/microservices/microservice-subscriptions/src/mcp/index.ts +0 -631
  250. package/microservices/microservice-timesheets/package.json +0 -28
  251. package/microservices/microservice-timesheets/src/cli/index.ts +0 -373
  252. package/microservices/microservice-timesheets/src/db/database.ts +0 -91
  253. package/microservices/microservice-timesheets/src/db/locale.ts +0 -217
  254. package/microservices/microservice-timesheets/src/db/migrations.ts +0 -74
  255. package/microservices/microservice-timesheets/src/db/timesheets.ts +0 -447
  256. package/microservices/microservice-timesheets/src/index.ts +0 -44
  257. package/microservices/microservice-timesheets/src/mcp/index.ts +0 -269
  258. package/microservices/microservice-transcriber/package.json +0 -29
  259. package/microservices/microservice-transcriber/src/cli/index.ts +0 -1593
  260. package/microservices/microservice-transcriber/src/db/annotations.ts +0 -37
  261. package/microservices/microservice-transcriber/src/db/comments.ts +0 -166
  262. package/microservices/microservice-transcriber/src/db/database.ts +0 -91
  263. package/microservices/microservice-transcriber/src/db/migrations.ts +0 -118
  264. package/microservices/microservice-transcriber/src/db/proofread.ts +0 -119
  265. package/microservices/microservice-transcriber/src/db/transcripts.ts +0 -395
  266. package/microservices/microservice-transcriber/src/index.ts +0 -43
  267. package/microservices/microservice-transcriber/src/lib/config.ts +0 -77
  268. package/microservices/microservice-transcriber/src/lib/diff.ts +0 -91
  269. package/microservices/microservice-transcriber/src/lib/downloader.ts +0 -638
  270. package/microservices/microservice-transcriber/src/lib/feeds.ts +0 -62
  271. package/microservices/microservice-transcriber/src/lib/live.ts +0 -94
  272. package/microservices/microservice-transcriber/src/lib/notion.ts +0 -129
  273. package/microservices/microservice-transcriber/src/lib/proofread.ts +0 -296
  274. package/microservices/microservice-transcriber/src/lib/providers.ts +0 -713
  275. package/microservices/microservice-transcriber/src/lib/summarizer.ts +0 -147
  276. package/microservices/microservice-transcriber/src/lib/translator.ts +0 -75
  277. package/microservices/microservice-transcriber/src/lib/webhook.ts +0 -37
  278. package/microservices/microservice-transcriber/src/mcp/index.ts +0 -1330
  279. package/microservices/microservice-transcriber/src/server/index.ts +0 -199
  280. package/microservices/microservice-travel/package.json +0 -28
  281. package/microservices/microservice-travel/src/cli/index.ts +0 -505
  282. package/microservices/microservice-travel/src/db/database.ts +0 -91
  283. package/microservices/microservice-travel/src/db/migrations.ts +0 -77
  284. package/microservices/microservice-travel/src/db/travel.ts +0 -802
  285. package/microservices/microservice-travel/src/index.ts +0 -60
  286. package/microservices/microservice-travel/src/mcp/index.ts +0 -495
  287. package/microservices/microservice-wiki/package.json +0 -28
  288. package/microservices/microservice-wiki/src/cli/index.ts +0 -345
  289. package/microservices/microservice-wiki/src/db/database.ts +0 -91
  290. package/microservices/microservice-wiki/src/db/migrations.ts +0 -55
  291. package/microservices/microservice-wiki/src/db/wiki.ts +0 -395
  292. package/microservices/microservice-wiki/src/index.ts +0 -32
  293. package/microservices/microservice-wiki/src/mcp/index.ts +0 -344
@@ -1,375 +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
- createProposal,
8
- getProposal,
9
- listProposals,
10
- updateProposal,
11
- deleteProposal,
12
- sendProposal,
13
- markViewed,
14
- acceptProposal,
15
- declineProposal,
16
- convertToInvoice,
17
- listExpiring,
18
- getProposalStats,
19
- searchProposals,
20
- countProposals,
21
- createTemplate,
22
- listTemplates,
23
- deleteTemplate,
24
- useTemplate,
25
- } from "../db/proposals.js";
26
-
27
- const itemSchema = z.object({
28
- description: z.string(),
29
- quantity: z.number(),
30
- unit_price: z.number(),
31
- amount: z.number(),
32
- });
33
-
34
- const server = new McpServer({
35
- name: "microservice-proposals",
36
- version: "0.0.1",
37
- });
38
-
39
- // --- Proposals ---
40
-
41
- server.registerTool(
42
- "create_proposal",
43
- {
44
- title: "Create Proposal",
45
- description: "Create a new proposal.",
46
- inputSchema: {
47
- title: z.string(),
48
- client_name: z.string(),
49
- client_email: z.string().optional(),
50
- items: z.array(itemSchema).optional(),
51
- tax_rate: z.number().optional(),
52
- discount: z.number().optional(),
53
- currency: z.string().optional(),
54
- valid_until: z.string().optional(),
55
- notes: z.string().optional(),
56
- terms: z.string().optional(),
57
- },
58
- },
59
- async (params) => {
60
- const proposal = createProposal(params);
61
- return { content: [{ type: "text", text: JSON.stringify(proposal, null, 2) }] };
62
- }
63
- );
64
-
65
- server.registerTool(
66
- "get_proposal",
67
- {
68
- title: "Get Proposal",
69
- description: "Get a proposal by ID.",
70
- inputSchema: { id: z.string() },
71
- },
72
- async ({ id }) => {
73
- const proposal = getProposal(id);
74
- if (!proposal) {
75
- return { content: [{ type: "text", text: `Proposal '${id}' not found.` }], isError: true };
76
- }
77
- return { content: [{ type: "text", text: JSON.stringify(proposal, null, 2) }] };
78
- }
79
- );
80
-
81
- server.registerTool(
82
- "list_proposals",
83
- {
84
- title: "List Proposals",
85
- description: "List proposals with optional filters.",
86
- inputSchema: {
87
- status: z.enum(["draft", "sent", "viewed", "accepted", "declined", "expired"]).optional(),
88
- client_name: z.string().optional(),
89
- search: z.string().optional(),
90
- limit: z.number().optional(),
91
- },
92
- },
93
- async (params) => {
94
- const proposals = listProposals(params);
95
- return {
96
- content: [
97
- {
98
- type: "text",
99
- text: JSON.stringify({ proposals, count: proposals.length }, null, 2),
100
- },
101
- ],
102
- };
103
- }
104
- );
105
-
106
- server.registerTool(
107
- "update_proposal",
108
- {
109
- title: "Update Proposal",
110
- description: "Update an existing proposal.",
111
- inputSchema: {
112
- id: z.string(),
113
- title: z.string().optional(),
114
- client_name: z.string().optional(),
115
- client_email: z.string().optional(),
116
- items: z.array(itemSchema).optional(),
117
- tax_rate: z.number().optional(),
118
- discount: z.number().optional(),
119
- currency: z.string().optional(),
120
- valid_until: z.string().optional(),
121
- notes: z.string().optional(),
122
- terms: z.string().optional(),
123
- },
124
- },
125
- async ({ id, ...input }) => {
126
- const proposal = updateProposal(id, input);
127
- if (!proposal) {
128
- return { content: [{ type: "text", text: `Proposal '${id}' not found.` }], isError: true };
129
- }
130
- return { content: [{ type: "text", text: JSON.stringify(proposal, null, 2) }] };
131
- }
132
- );
133
-
134
- server.registerTool(
135
- "delete_proposal",
136
- {
137
- title: "Delete Proposal",
138
- description: "Delete a proposal by ID.",
139
- inputSchema: { id: z.string() },
140
- },
141
- async ({ id }) => {
142
- const deleted = deleteProposal(id);
143
- return { content: [{ type: "text", text: JSON.stringify({ id, deleted }) }] };
144
- }
145
- );
146
-
147
- server.registerTool(
148
- "send_proposal",
149
- {
150
- title: "Send Proposal",
151
- description: "Send a proposal — sets status to 'sent' and records sent_at timestamp.",
152
- inputSchema: { id: z.string() },
153
- },
154
- async ({ id }) => {
155
- const proposal = sendProposal(id);
156
- if (!proposal) {
157
- return { content: [{ type: "text", text: `Proposal '${id}' not found.` }], isError: true };
158
- }
159
- return { content: [{ type: "text", text: JSON.stringify(proposal, null, 2) }] };
160
- }
161
- );
162
-
163
- server.registerTool(
164
- "mark_proposal_viewed",
165
- {
166
- title: "Mark Proposal Viewed",
167
- description: "Mark a proposal as viewed — sets status to 'viewed' and records viewed_at timestamp.",
168
- inputSchema: { id: z.string() },
169
- },
170
- async ({ id }) => {
171
- const proposal = markViewed(id);
172
- if (!proposal) {
173
- return { content: [{ type: "text", text: `Proposal '${id}' not found.` }], isError: true };
174
- }
175
- return { content: [{ type: "text", text: JSON.stringify(proposal, null, 2) }] };
176
- }
177
- );
178
-
179
- server.registerTool(
180
- "accept_proposal",
181
- {
182
- title: "Accept Proposal",
183
- description: "Accept a proposal — sets status to 'accepted' and records responded_at timestamp.",
184
- inputSchema: { id: z.string() },
185
- },
186
- async ({ id }) => {
187
- const proposal = acceptProposal(id);
188
- if (!proposal) {
189
- return { content: [{ type: "text", text: `Proposal '${id}' not found.` }], isError: true };
190
- }
191
- return { content: [{ type: "text", text: JSON.stringify(proposal, null, 2) }] };
192
- }
193
- );
194
-
195
- server.registerTool(
196
- "decline_proposal",
197
- {
198
- title: "Decline Proposal",
199
- description: "Decline a proposal with an optional reason.",
200
- inputSchema: {
201
- id: z.string(),
202
- reason: z.string().optional(),
203
- },
204
- },
205
- async ({ id, reason }) => {
206
- const proposal = declineProposal(id, reason);
207
- if (!proposal) {
208
- return { content: [{ type: "text", text: `Proposal '${id}' not found.` }], isError: true };
209
- }
210
- return { content: [{ type: "text", text: JSON.stringify(proposal, null, 2) }] };
211
- }
212
- );
213
-
214
- server.registerTool(
215
- "convert_proposal_to_invoice",
216
- {
217
- title: "Convert Proposal to Invoice",
218
- description: "Convert a proposal into invoice-ready data.",
219
- inputSchema: { id: z.string() },
220
- },
221
- async ({ id }) => {
222
- const invoiceData = convertToInvoice(id);
223
- if (!invoiceData) {
224
- return { content: [{ type: "text", text: `Proposal '${id}' not found.` }], isError: true };
225
- }
226
- return { content: [{ type: "text", text: JSON.stringify(invoiceData, null, 2) }] };
227
- }
228
- );
229
-
230
- server.registerTool(
231
- "list_expiring_proposals",
232
- {
233
- title: "List Expiring Proposals",
234
- description: "List proposals expiring within a given number of days.",
235
- inputSchema: { days: z.number().default(30) },
236
- },
237
- async ({ days }) => {
238
- const proposals = listExpiring(days);
239
- return {
240
- content: [
241
- {
242
- type: "text",
243
- text: JSON.stringify({ proposals, count: proposals.length }, null, 2),
244
- },
245
- ],
246
- };
247
- }
248
- );
249
-
250
- server.registerTool(
251
- "get_proposal_stats",
252
- {
253
- title: "Get Proposal Stats",
254
- description: "Get proposal statistics including conversion rate, total value, and status breakdown.",
255
- inputSchema: {},
256
- },
257
- async () => {
258
- const stats = getProposalStats();
259
- return { content: [{ type: "text", text: JSON.stringify(stats, null, 2) }] };
260
- }
261
- );
262
-
263
- server.registerTool(
264
- "search_proposals",
265
- {
266
- title: "Search Proposals",
267
- description: "Search proposals by title, client name, email, or notes.",
268
- inputSchema: { query: z.string() },
269
- },
270
- async ({ query }) => {
271
- const results = searchProposals(query);
272
- return {
273
- content: [
274
- { type: "text", text: JSON.stringify({ results, count: results.length }, null, 2) },
275
- ],
276
- };
277
- }
278
- );
279
-
280
- server.registerTool(
281
- "count_proposals",
282
- {
283
- title: "Count Proposals",
284
- description: "Get the total number of proposals.",
285
- inputSchema: {},
286
- },
287
- async () => {
288
- const count = countProposals();
289
- return { content: [{ type: "text", text: JSON.stringify({ count }) }] };
290
- }
291
- );
292
-
293
- // --- Templates ---
294
-
295
- server.registerTool(
296
- "create_proposal_template",
297
- {
298
- title: "Create Proposal Template",
299
- description: "Create a reusable proposal template.",
300
- inputSchema: {
301
- name: z.string(),
302
- items: z.array(itemSchema).optional(),
303
- terms: z.string().optional(),
304
- notes: z.string().optional(),
305
- },
306
- },
307
- async (params) => {
308
- const template = createTemplate(params);
309
- return { content: [{ type: "text", text: JSON.stringify(template, null, 2) }] };
310
- }
311
- );
312
-
313
- server.registerTool(
314
- "list_proposal_templates",
315
- {
316
- title: "List Proposal Templates",
317
- description: "List all proposal templates.",
318
- inputSchema: {},
319
- },
320
- async () => {
321
- const templates = listTemplates();
322
- return {
323
- content: [
324
- { type: "text", text: JSON.stringify({ templates, count: templates.length }, null, 2) },
325
- ],
326
- };
327
- }
328
- );
329
-
330
- server.registerTool(
331
- "delete_proposal_template",
332
- {
333
- title: "Delete Proposal Template",
334
- description: "Delete a proposal template by ID.",
335
- inputSchema: { id: z.string() },
336
- },
337
- async ({ id }) => {
338
- const deleted = deleteTemplate(id);
339
- return { content: [{ type: "text", text: JSON.stringify({ id, deleted }) }] };
340
- }
341
- );
342
-
343
- server.registerTool(
344
- "use_proposal_template",
345
- {
346
- title: "Use Proposal Template",
347
- description: "Create a new proposal from a template.",
348
- inputSchema: {
349
- template_id: z.string(),
350
- title: z.string(),
351
- client_name: z.string(),
352
- client_email: z.string().optional(),
353
- valid_until: z.string().optional(),
354
- },
355
- },
356
- async ({ template_id, ...overrides }) => {
357
- const proposal = useTemplate(template_id, overrides);
358
- if (!proposal) {
359
- return { content: [{ type: "text", text: `Template '${template_id}' not found.` }], isError: true };
360
- }
361
- return { content: [{ type: "text", text: JSON.stringify(proposal, null, 2) }] };
362
- }
363
- );
364
-
365
- // --- Start ---
366
- async function main() {
367
- const transport = new StdioServerTransport();
368
- await server.connect(transport);
369
- console.error("microservice-proposals MCP server running on stdio");
370
- }
371
-
372
- main().catch((error) => {
373
- console.error("Fatal error:", error);
374
- process.exit(1);
375
- });
@@ -1,28 +0,0 @@
1
- {
2
- "name": "@hasna/microservice-reading",
3
- "version": "0.0.1",
4
- "description": "Reading tracker microservice with SQLite — manage books, highlights, reading sessions, and stats",
5
- "type": "module",
6
- "bin": {
7
- "microservice-reading": "./src/cli/index.ts",
8
- "microservice-reading-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
- "@hasna/cloud": "^0.1.24",
19
- "@modelcontextprotocol/sdk": "^1.26.0",
20
- "commander": "^12.1.0",
21
- "zod": "^3.24.0"
22
- },
23
- "license": "Apache-2.0",
24
- "publishConfig": {
25
- "registry": "https://registry.npmjs.org",
26
- "access": "public"
27
- }
28
- }