@frihet/mcp-server 1.4.0 → 1.5.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 (51) hide show
  1. package/README.md +94 -18
  2. package/dist/client-interface.d.ts +54 -0
  3. package/dist/client-interface.d.ts.map +1 -1
  4. package/dist/client.d.ts +54 -0
  5. package/dist/client.d.ts.map +1 -1
  6. package/dist/client.js +100 -0
  7. package/dist/client.js.map +1 -1
  8. package/dist/index.js +6 -6
  9. package/dist/index.js.map +1 -1
  10. package/dist/prompts/register-all.d.ts.map +1 -1
  11. package/dist/prompts/register-all.js +206 -0
  12. package/dist/prompts/register-all.js.map +1 -1
  13. package/dist/resources/register-all.d.ts +4 -3
  14. package/dist/resources/register-all.d.ts.map +1 -1
  15. package/dist/resources/register-all.js +164 -9
  16. package/dist/resources/register-all.js.map +1 -1
  17. package/dist/tools/clients.d.ts.map +1 -1
  18. package/dist/tools/clients.js +18 -2
  19. package/dist/tools/clients.js.map +1 -1
  20. package/dist/tools/crm.d.ts +9 -0
  21. package/dist/tools/crm.d.ts.map +1 -0
  22. package/dist/tools/crm.js +181 -0
  23. package/dist/tools/crm.js.map +1 -0
  24. package/dist/tools/expenses.d.ts.map +1 -1
  25. package/dist/tools/expenses.js +18 -2
  26. package/dist/tools/expenses.js.map +1 -1
  27. package/dist/tools/invoices.d.ts.map +1 -1
  28. package/dist/tools/invoices.js +85 -6
  29. package/dist/tools/invoices.js.map +1 -1
  30. package/dist/tools/products.d.ts.map +1 -1
  31. package/dist/tools/products.js +18 -2
  32. package/dist/tools/products.js.map +1 -1
  33. package/dist/tools/quotes.d.ts.map +1 -1
  34. package/dist/tools/quotes.js +38 -3
  35. package/dist/tools/quotes.js.map +1 -1
  36. package/dist/tools/register-all.d.ts +1 -1
  37. package/dist/tools/register-all.d.ts.map +1 -1
  38. package/dist/tools/register-all.js +5 -1
  39. package/dist/tools/register-all.js.map +1 -1
  40. package/dist/tools/shared.d.ts +54 -0
  41. package/dist/tools/shared.d.ts.map +1 -1
  42. package/dist/tools/shared.js +60 -2
  43. package/dist/tools/shared.js.map +1 -1
  44. package/dist/tools/vendors.d.ts +7 -0
  45. package/dist/tools/vendors.d.ts.map +1 -0
  46. package/dist/tools/vendors.js +125 -0
  47. package/dist/tools/vendors.js.map +1 -0
  48. package/dist/types.d.ts +1 -0
  49. package/dist/types.d.ts.map +1 -1
  50. package/package.json +2 -2
  51. package/scripts/postinstall.js +1 -1
@@ -1,9 +1,10 @@
1
1
  /**
2
- * Static MCP Resources for the Frihet ERP server.
2
+ * MCP Resources for the Frihet ERP server (11 total: 7 static + 4 dynamic).
3
3
  *
4
4
  * Resources are read-only reference data that LLMs can access without making
5
- * API calls. They encode domain knowledge (tax rates, deadlines, categories)
6
- * that would otherwise require the user to explain every time.
5
+ * API calls. They encode domain knowledge (tax rates, deadlines, categories,
6
+ * currencies, countries) that would otherwise require the user to explain
7
+ * every time.
7
8
  *
8
9
  * All resources use the `frihet://` URI scheme.
9
10
  */
@@ -27,37 +28,37 @@ Endpoints:
27
28
  GET /invoices — List invoices (paginated)
28
29
  GET /invoices/:id — Get invoice by ID
29
30
  POST /invoices — Create invoice
30
- PUT /invoices/:id — Update invoice
31
+ PATCH /invoices/:id — Update invoice
31
32
  DELETE /invoices/:id — Delete invoice
32
33
 
33
34
  GET /expenses — List expenses (paginated)
34
35
  GET /expenses/:id — Get expense by ID
35
36
  POST /expenses — Create expense
36
- PUT /expenses/:id — Update expense
37
+ PATCH /expenses/:id — Update expense
37
38
  DELETE /expenses/:id — Delete expense
38
39
 
39
40
  GET /clients — List clients (paginated)
40
41
  GET /clients/:id — Get client by ID
41
42
  POST /clients — Create client
42
- PUT /clients/:id — Update client
43
+ PATCH /clients/:id — Update client
43
44
  DELETE /clients/:id — Delete client
44
45
 
45
46
  GET /products — List products (paginated)
46
47
  GET /products/:id — Get product by ID
47
48
  POST /products — Create product
48
- PUT /products/:id — Update product
49
+ PATCH /products/:id — Update product
49
50
  DELETE /products/:id — Delete product
50
51
 
51
52
  GET /quotes — List quotes (paginated)
52
53
  GET /quotes/:id — Get quote by ID
53
54
  POST /quotes — Create quote
54
- PUT /quotes/:id — Update quote
55
+ PATCH /quotes/:id — Update quote
55
56
  DELETE /quotes/:id — Delete quote
56
57
 
57
58
  GET /webhooks — List webhooks (paginated)
58
59
  GET /webhooks/:id — Get webhook by ID
59
60
  POST /webhooks — Create webhook
60
- PUT /webhooks/:id — Update webhook
61
+ PATCH /webhooks/:id — Update webhook
61
62
  DELETE /webhooks/:id — Delete webhook
62
63
 
63
64
  Pagination:
@@ -268,6 +269,111 @@ Best practices:
268
269
  - Once sent, create a new corrective invoice rather than editing
269
270
  - For partial payments, keep status as sent until full payment
270
271
  - cancelled requires a reason (notes field) for audit trail`;
272
+ const CURRENCIES = JSON.stringify({
273
+ EUR: { name: "Euro", symbol: "\u20ac", decimals: 2, format: "1.234,56 \u20ac", countries: ["ES", "DE", "FR", "IT", "NL", "PT", "BE", "AT", "IE", "FI", "GR", "LU", "SK", "SI", "EE", "LV", "LT", "CY", "MT"] },
274
+ USD: { name: "US Dollar", symbol: "$", decimals: 2, format: "$1,234.56", countries: ["US"] },
275
+ GBP: { name: "British Pound", symbol: "\u00a3", decimals: 2, format: "\u00a31,234.56", countries: ["GB"] },
276
+ CHF: { name: "Swiss Franc", symbol: "CHF", decimals: 2, format: "CHF 1'234.56", countries: ["CH"] },
277
+ JPY: { name: "Japanese Yen", symbol: "\u00a5", decimals: 0, format: "\u00a51,234", countries: ["JP"] },
278
+ CAD: { name: "Canadian Dollar", symbol: "CA$", decimals: 2, format: "$1,234.56", countries: ["CA"] },
279
+ AUD: { name: "Australian Dollar", symbol: "A$", decimals: 2, format: "$1,234.56", countries: ["AU"] },
280
+ MXN: { name: "Mexican Peso", symbol: "$", decimals: 2, format: "$1,234.56", countries: ["MX"] },
281
+ BRL: { name: "Brazilian Real", symbol: "R$", decimals: 2, format: "R$ 1.234,56", countries: ["BR"] },
282
+ SEK: { name: "Swedish Krona", symbol: "kr", decimals: 2, format: "1 234,56 kr", countries: ["SE"] },
283
+ NOK: { name: "Norwegian Krone", symbol: "kr", decimals: 2, format: "1 234,56 kr", countries: ["NO"] },
284
+ DKK: { name: "Danish Krone", symbol: "kr", decimals: 2, format: "1.234,56 kr", countries: ["DK"] },
285
+ PLN: { name: "Polish Zloty", symbol: "z\u0142", decimals: 2, format: "1 234,56 z\u0142", countries: ["PL"] },
286
+ CZK: { name: "Czech Koruna", symbol: "K\u010d", decimals: 2, format: "1 234,56 K\u010d", countries: ["CZ"] },
287
+ HUF: { name: "Hungarian Forint", symbol: "Ft", decimals: 0, format: "1 234 Ft", countries: ["HU"] },
288
+ RON: { name: "Romanian Leu", symbol: "lei", decimals: 2, format: "1.234,56 lei", countries: ["RO"] },
289
+ BGN: { name: "Bulgarian Lev", symbol: "\u043b\u0432", decimals: 2, format: "1 234,56 \u043b\u0432", countries: ["BG"] },
290
+ HRK: { name: "Croatian Kuna", symbol: "kn", decimals: 2, format: "1.234,56 kn", countries: ["HR"] },
291
+ ISK: { name: "Icelandic Kr\u00f3na", symbol: "kr", decimals: 0, format: "1.234 kr", countries: ["IS"] },
292
+ TRY: { name: "Turkish Lira", symbol: "\u20ba", decimals: 2, format: "\u20ba1.234,56", countries: ["TR"] },
293
+ ILS: { name: "Israeli Shekel", symbol: "\u20aa", decimals: 2, format: "\u20aa1,234.56", countries: ["IL"] },
294
+ ZAR: { name: "South African Rand", symbol: "R", decimals: 2, format: "R 1 234,56", countries: ["ZA"] },
295
+ INR: { name: "Indian Rupee", symbol: "\u20b9", decimals: 2, format: "\u20b91,23,456.78", countries: ["IN"] },
296
+ CNY: { name: "Chinese Yuan", symbol: "\u00a5", decimals: 2, format: "\u00a51,234.56", countries: ["CN"] },
297
+ KRW: { name: "South Korean Won", symbol: "\u20a9", decimals: 0, format: "\u20a91,234", countries: ["KR"] },
298
+ SGD: { name: "Singapore Dollar", symbol: "S$", decimals: 2, format: "S$1,234.56", countries: ["SG"] },
299
+ HKD: { name: "Hong Kong Dollar", symbol: "HK$", decimals: 2, format: "HK$1,234.56", countries: ["HK"] },
300
+ NZD: { name: "New Zealand Dollar", symbol: "NZ$", decimals: 2, format: "$1,234.56", countries: ["NZ"] },
301
+ THB: { name: "Thai Baht", symbol: "\u0e3f", decimals: 2, format: "\u0e3f1,234.56", countries: ["TH"] },
302
+ TWD: { name: "Taiwan Dollar", symbol: "NT$", decimals: 0, format: "NT$1,234", countries: ["TW"] },
303
+ ARS: { name: "Argentine Peso", symbol: "$", decimals: 2, format: "$ 1.234,56", countries: ["AR"] },
304
+ CLP: { name: "Chilean Peso", symbol: "$", decimals: 0, format: "$1.234", countries: ["CL"] },
305
+ COP: { name: "Colombian Peso", symbol: "$", decimals: 0, format: "$ 1.234", countries: ["CO"] },
306
+ PEN: { name: "Peruvian Sol", symbol: "S/", decimals: 2, format: "S/ 1,234.56", countries: ["PE"] },
307
+ UYU: { name: "Uruguayan Peso", symbol: "$U", decimals: 2, format: "$U 1.234,56", countries: ["UY"] },
308
+ AED: { name: "UAE Dirham", symbol: "\u062f.\u0625", decimals: 2, format: "1,234.56 \u062f.\u0625", countries: ["AE"] },
309
+ SAR: { name: "Saudi Riyal", symbol: "\ufdfc", decimals: 2, format: "1,234.56 \ufdfc", countries: ["SA"] },
310
+ PHP: { name: "Philippine Peso", symbol: "\u20b1", decimals: 2, format: "\u20b11,234.56", countries: ["PH"] },
311
+ MYR: { name: "Malaysian Ringgit", symbol: "RM", decimals: 2, format: "RM1,234.56", countries: ["MY"] },
312
+ IDR: { name: "Indonesian Rupiah", symbol: "Rp", decimals: 0, format: "Rp1.234", countries: ["ID"] },
313
+ }, null, 2);
314
+ const COUNTRIES = JSON.stringify([
315
+ { name: "Spain (Peninsula)", code: "ES", fiscalZone: "peninsula", defaultTaxRate: 21, taxName: "IVA", currency: "EUR", invoicePrefix: "F" },
316
+ { name: "Spain (Canary Islands)", code: "ES-CN", fiscalZone: "canarias", defaultTaxRate: 7, taxName: "IGIC", currency: "EUR", invoicePrefix: "F" },
317
+ { name: "Spain (Ceuta)", code: "ES-CE", fiscalZone: "ceuta", defaultTaxRate: 10, taxName: "IPSI", currency: "EUR", invoicePrefix: "F" },
318
+ { name: "Spain (Melilla)", code: "ES-ML", fiscalZone: "melilla", defaultTaxRate: 10, taxName: "IPSI", currency: "EUR", invoicePrefix: "F" },
319
+ { name: "Germany", code: "DE", fiscalZone: "eu", defaultTaxRate: 19, taxName: "USt", currency: "EUR", invoicePrefix: "INV" },
320
+ { name: "France", code: "FR", fiscalZone: "eu", defaultTaxRate: 20, taxName: "TVA", currency: "EUR", invoicePrefix: "FA" },
321
+ { name: "Italy", code: "IT", fiscalZone: "eu", defaultTaxRate: 22, taxName: "IVA", currency: "EUR", invoicePrefix: "FT" },
322
+ { name: "Netherlands", code: "NL", fiscalZone: "eu", defaultTaxRate: 21, taxName: "BTW", currency: "EUR", invoicePrefix: "F" },
323
+ { name: "Belgium", code: "BE", fiscalZone: "eu", defaultTaxRate: 21, taxName: "TVA/BTW", currency: "EUR", invoicePrefix: "F" },
324
+ { name: "Portugal", code: "PT", fiscalZone: "eu", defaultTaxRate: 23, taxName: "IVA", currency: "EUR", invoicePrefix: "FT" },
325
+ { name: "Austria", code: "AT", fiscalZone: "eu", defaultTaxRate: 20, taxName: "USt", currency: "EUR", invoicePrefix: "RE" },
326
+ { name: "Ireland", code: "IE", fiscalZone: "eu", defaultTaxRate: 23, taxName: "VAT", currency: "EUR", invoicePrefix: "INV" },
327
+ { name: "Finland", code: "FI", fiscalZone: "eu", defaultTaxRate: 24, taxName: "ALV", currency: "EUR", invoicePrefix: "INV" },
328
+ { name: "Greece", code: "GR", fiscalZone: "eu", defaultTaxRate: 24, taxName: "FPA", currency: "EUR", invoicePrefix: "TIM" },
329
+ { name: "Luxembourg", code: "LU", fiscalZone: "eu", defaultTaxRate: 17, taxName: "TVA", currency: "EUR", invoicePrefix: "F" },
330
+ { name: "Slovakia", code: "SK", fiscalZone: "eu", defaultTaxRate: 20, taxName: "DPH", currency: "EUR", invoicePrefix: "F" },
331
+ { name: "Slovenia", code: "SI", fiscalZone: "eu", defaultTaxRate: 22, taxName: "DDV", currency: "EUR", invoicePrefix: "F" },
332
+ { name: "Estonia", code: "EE", fiscalZone: "eu", defaultTaxRate: 22, taxName: "KM", currency: "EUR", invoicePrefix: "INV" },
333
+ { name: "Latvia", code: "LV", fiscalZone: "eu", defaultTaxRate: 21, taxName: "PVN", currency: "EUR", invoicePrefix: "INV" },
334
+ { name: "Lithuania", code: "LT", fiscalZone: "eu", defaultTaxRate: 21, taxName: "PVM", currency: "EUR", invoicePrefix: "SF" },
335
+ { name: "Cyprus", code: "CY", fiscalZone: "eu", defaultTaxRate: 19, taxName: "VAT", currency: "EUR", invoicePrefix: "INV" },
336
+ { name: "Malta", code: "MT", fiscalZone: "eu", defaultTaxRate: 18, taxName: "VAT", currency: "EUR", invoicePrefix: "INV" },
337
+ { name: "Sweden", code: "SE", fiscalZone: "eu", defaultTaxRate: 25, taxName: "MOMS", currency: "SEK", invoicePrefix: "F" },
338
+ { name: "Denmark", code: "DK", fiscalZone: "eu", defaultTaxRate: 25, taxName: "MOMS", currency: "DKK", invoicePrefix: "F" },
339
+ { name: "Poland", code: "PL", fiscalZone: "eu", defaultTaxRate: 23, taxName: "VAT", currency: "PLN", invoicePrefix: "FV" },
340
+ { name: "Czech Republic", code: "CZ", fiscalZone: "eu", defaultTaxRate: 21, taxName: "DPH", currency: "CZK", invoicePrefix: "F" },
341
+ { name: "Hungary", code: "HU", fiscalZone: "eu", defaultTaxRate: 27, taxName: "\u00c1FA", currency: "HUF", invoicePrefix: "SZ" },
342
+ { name: "Romania", code: "RO", fiscalZone: "eu", defaultTaxRate: 19, taxName: "TVA", currency: "RON", invoicePrefix: "F" },
343
+ { name: "Bulgaria", code: "BG", fiscalZone: "eu", defaultTaxRate: 20, taxName: "DDS", currency: "BGN", invoicePrefix: "F" },
344
+ { name: "Croatia", code: "HR", fiscalZone: "eu", defaultTaxRate: 25, taxName: "PDV", currency: "EUR", invoicePrefix: "R" },
345
+ { name: "United Kingdom", code: "GB", fiscalZone: "international", defaultTaxRate: 20, taxName: "VAT", currency: "GBP", invoicePrefix: "INV" },
346
+ { name: "United States", code: "US", fiscalZone: "international", defaultTaxRate: 0, taxName: "Sales Tax", currency: "USD", invoicePrefix: "INV" },
347
+ { name: "Canada", code: "CA", fiscalZone: "international", defaultTaxRate: 5, taxName: "GST", currency: "CAD", invoicePrefix: "INV" },
348
+ { name: "Mexico", code: "MX", fiscalZone: "international", defaultTaxRate: 16, taxName: "IVA", currency: "MXN", invoicePrefix: "F" },
349
+ { name: "Brazil", code: "BR", fiscalZone: "international", defaultTaxRate: 17, taxName: "ICMS", currency: "BRL", invoicePrefix: "NF" },
350
+ { name: "Argentina", code: "AR", fiscalZone: "international", defaultTaxRate: 21, taxName: "IVA", currency: "ARS", invoicePrefix: "F" },
351
+ { name: "Chile", code: "CL", fiscalZone: "international", defaultTaxRate: 19, taxName: "IVA", currency: "CLP", invoicePrefix: "F" },
352
+ { name: "Colombia", code: "CO", fiscalZone: "international", defaultTaxRate: 19, taxName: "IVA", currency: "COP", invoicePrefix: "F" },
353
+ { name: "Peru", code: "PE", fiscalZone: "international", defaultTaxRate: 18, taxName: "IGV", currency: "PEN", invoicePrefix: "F" },
354
+ { name: "Uruguay", code: "UY", fiscalZone: "international", defaultTaxRate: 22, taxName: "IVA", currency: "UYU", invoicePrefix: "F" },
355
+ { name: "Australia", code: "AU", fiscalZone: "international", defaultTaxRate: 10, taxName: "GST", currency: "AUD", invoicePrefix: "INV" },
356
+ { name: "New Zealand", code: "NZ", fiscalZone: "international", defaultTaxRate: 15, taxName: "GST", currency: "NZD", invoicePrefix: "INV" },
357
+ { name: "Japan", code: "JP", fiscalZone: "international", defaultTaxRate: 10, taxName: "JCT", currency: "JPY", invoicePrefix: "INV" },
358
+ { name: "South Korea", code: "KR", fiscalZone: "international", defaultTaxRate: 10, taxName: "VAT", currency: "KRW", invoicePrefix: "INV" },
359
+ { name: "Singapore", code: "SG", fiscalZone: "international", defaultTaxRate: 9, taxName: "GST", currency: "SGD", invoicePrefix: "INV" },
360
+ { name: "Hong Kong", code: "HK", fiscalZone: "international", defaultTaxRate: 0, taxName: "N/A", currency: "HKD", invoicePrefix: "INV" },
361
+ { name: "India", code: "IN", fiscalZone: "international", defaultTaxRate: 18, taxName: "GST", currency: "INR", invoicePrefix: "INV" },
362
+ { name: "China", code: "CN", fiscalZone: "international", defaultTaxRate: 13, taxName: "VAT", currency: "CNY", invoicePrefix: "INV" },
363
+ { name: "Taiwan", code: "TW", fiscalZone: "international", defaultTaxRate: 5, taxName: "VAT", currency: "TWD", invoicePrefix: "INV" },
364
+ { name: "Thailand", code: "TH", fiscalZone: "international", defaultTaxRate: 7, taxName: "VAT", currency: "THB", invoicePrefix: "INV" },
365
+ { name: "Philippines", code: "PH", fiscalZone: "international", defaultTaxRate: 12, taxName: "VAT", currency: "PHP", invoicePrefix: "INV" },
366
+ { name: "Malaysia", code: "MY", fiscalZone: "international", defaultTaxRate: 8, taxName: "SST", currency: "MYR", invoicePrefix: "INV" },
367
+ { name: "Indonesia", code: "ID", fiscalZone: "international", defaultTaxRate: 11, taxName: "PPN", currency: "IDR", invoicePrefix: "INV" },
368
+ { name: "Israel", code: "IL", fiscalZone: "international", defaultTaxRate: 17, taxName: "VAT", currency: "ILS", invoicePrefix: "INV" },
369
+ { name: "South Africa", code: "ZA", fiscalZone: "international", defaultTaxRate: 15, taxName: "VAT", currency: "ZAR", invoicePrefix: "INV" },
370
+ { name: "United Arab Emirates", code: "AE", fiscalZone: "international", defaultTaxRate: 5, taxName: "VAT", currency: "AED", invoicePrefix: "INV" },
371
+ { name: "Saudi Arabia", code: "SA", fiscalZone: "international", defaultTaxRate: 15, taxName: "VAT", currency: "SAR", invoicePrefix: "INV" },
372
+ { name: "Switzerland", code: "CH", fiscalZone: "international", defaultTaxRate: 8.1, taxName: "MWST", currency: "CHF", invoicePrefix: "RE" },
373
+ { name: "Norway", code: "NO", fiscalZone: "international", defaultTaxRate: 25, taxName: "MVA", currency: "NOK", invoicePrefix: "F" },
374
+ { name: "Iceland", code: "IS", fiscalZone: "international", defaultTaxRate: 24, taxName: "VSK", currency: "ISK", invoicePrefix: "INV" },
375
+ { name: "Turkey", code: "TR", fiscalZone: "international", defaultTaxRate: 20, taxName: "KDV", currency: "TRY", invoicePrefix: "F" },
376
+ ], null, 2);
271
377
  /* ------------------------------------------------------------------ */
272
378
  /* Registration */
273
379
  /* ------------------------------------------------------------------ */
@@ -341,6 +447,34 @@ export function registerAllResources(server, client) {
341
447
  },
342
448
  ],
343
449
  }));
450
+ server.registerResource("currencies", "frihet://config/currencies", {
451
+ description: "40 supported currencies with ISO codes, symbols, decimal places, locale formatting examples, and associated countries. " +
452
+ "Use to validate currency inputs and format monetary values. " +
453
+ "/ 40 divisas soportadas con códigos ISO, símbolos, decimales, formato local y países asociados.",
454
+ mimeType: "application/json",
455
+ }, async () => ({
456
+ contents: [
457
+ {
458
+ uri: "frihet://config/currencies",
459
+ mimeType: "application/json",
460
+ text: CURRENCIES,
461
+ },
462
+ ],
463
+ }));
464
+ server.registerResource("countries", "frihet://config/countries", {
465
+ description: "61 supported countries with ISO codes, fiscal zones (peninsula, canarias, ceuta, melilla, eu, international), " +
466
+ "default tax rates, tax names, default currencies, and invoice prefixes. " +
467
+ "/ 61 países soportados con zonas fiscales, tipos impositivos, divisas y prefijos de factura.",
468
+ mimeType: "application/json",
469
+ }, async () => ({
470
+ contents: [
471
+ {
472
+ uri: "frihet://config/countries",
473
+ mimeType: "application/json",
474
+ text: COUNTRIES,
475
+ },
476
+ ],
477
+ }));
344
478
  /* ---------------------------------------------------------------- */
345
479
  /* Dynamic resources (require API client) */
346
480
  /* ---------------------------------------------------------------- */
@@ -396,6 +530,27 @@ export function registerAllResources(server, client) {
396
530
  ],
397
531
  };
398
532
  });
533
+ server.registerResource("plan-limits", "frihet://status/plan-limits", {
534
+ description: "Live plan limits and current usage — plan tier, invoices/month, AI messages/day, team members, " +
535
+ "integrations, API requests/minute, and real-time usage counters. " +
536
+ "/ Límites del plan y uso actual en vivo — tier, facturas/mes, mensajes IA/día, miembros, integraciones, API req/min.",
537
+ mimeType: "application/json",
538
+ }, async () => {
539
+ const ctx = await client.getBusinessContext();
540
+ const plan = ctx.plan ?? "free";
541
+ const limits = ctx.limits ?? {};
542
+ const usage = ctx.usage ?? {};
543
+ const result = { plan, limits, usage };
544
+ return {
545
+ contents: [
546
+ {
547
+ uri: "frihet://status/plan-limits",
548
+ mimeType: "application/json",
549
+ text: JSON.stringify(result, null, 2),
550
+ },
551
+ ],
552
+ };
553
+ });
399
554
  }
400
555
  }
401
556
  //# sourceMappingURL=register-all.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"register-all.js","sourceRoot":"","sources":["../../src/resources/register-all.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register-all.js","sourceRoot":"","sources":["../../src/resources/register-all.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["../../src/tools/clients.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAc5D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CA2IlF"}
1
+ {"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["../../src/tools/clients.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAc5D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CA2JlF"}
@@ -23,12 +23,28 @@ export function registerClientTools(server, client) {
23
23
  "Devuelve informacion de contacto, NIF/CIF y direcciones.",
24
24
  annotations: READ_ONLY_ANNOTATIONS,
25
25
  inputSchema: {
26
+ q: z
27
+ .string()
28
+ .optional()
29
+ .describe("Search by name or email / Buscar por nombre o email"),
30
+ stage: z
31
+ .enum(["lead", "contacted", "proposal", "active", "inactive", "lost"])
32
+ .optional()
33
+ .describe("Filter by CRM stage / Filtrar por etapa del CRM"),
34
+ fields: z
35
+ .string()
36
+ .optional()
37
+ .describe("Comma-separated field names to return (e.g. 'id,name,email') / Campos a devolver"),
26
38
  limit: z.number().int().min(1).max(100).optional().describe("Max results (1-100) / Resultados maximos"),
27
39
  offset: z.number().int().min(0).optional().describe("Offset / Desplazamiento"),
40
+ after: z
41
+ .string()
42
+ .optional()
43
+ .describe("Cursor for cursor-based pagination (document ID) / Cursor para paginacion basada en cursor"),
28
44
  },
29
45
  outputSchema: paginatedOutput(clientItemOutput),
30
- }, async ({ limit, offset }) => withToolLogging("list_clients", async () => {
31
- const result = await client.listClients({ limit, offset });
46
+ }, async ({ limit, offset, q, stage, fields, after }) => withToolLogging("list_clients", async () => {
47
+ const result = await client.listClients({ limit, offset, after, fields, q, stage });
32
48
  return {
33
49
  content: [listContent(formatPaginatedResponse("clients", result))],
34
50
  structuredContent: result,
@@ -1 +1 @@
1
- {"version":3,"file":"clients.js","sourceRoot":"","sources":["../../src/tools/clients.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clients.js","sourceRoot":"","sources":["../../src/tools/clients.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * CRM subcollection tools for the Frihet MCP server.
3
+ *
4
+ * Contacts, activities, and notes — all scoped under a client.
5
+ */
6
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
7
+ import type { IFrihetClient } from "../client-interface.js";
8
+ export declare function registerCrmTools(server: McpServer, client: IFrihetClient): void;
9
+ //# sourceMappingURL=crm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crm.d.ts","sourceRoot":"","sources":["../../src/tools/crm.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAmB5D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAsO/E"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * CRM subcollection tools for the Frihet MCP server.
3
+ *
4
+ * Contacts, activities, and notes — all scoped under a client.
5
+ */
6
+ import { z } from "zod/v4";
7
+ import { withToolLogging, formatPaginatedResponse, formatRecord, listContent, mutateContent, enrichResponse, READ_ONLY_ANNOTATIONS, CREATE_ANNOTATIONS, DELETE_ANNOTATIONS, paginatedOutput, deleteResultOutput, contactItemOutput, activityItemOutput, noteItemOutput, } from "./shared.js";
8
+ export function registerCrmTools(server, client) {
9
+ // ================================================================
10
+ // Contacts
11
+ // ================================================================
12
+ // -- list_client_contacts --
13
+ server.registerTool("list_client_contacts", {
14
+ title: "List Client Contacts",
15
+ description: "List all contacts for a client with optional pagination. " +
16
+ "Returns name, email, phone, role, and primary flag. " +
17
+ "/ Lista todos los contactos de un cliente con paginacion opcional.",
18
+ annotations: READ_ONLY_ANNOTATIONS,
19
+ inputSchema: {
20
+ clientId: z.string().describe("Client ID / ID del cliente"),
21
+ limit: z.number().int().min(1).max(100).optional().describe("Max results (1-100) / Resultados maximos"),
22
+ offset: z.number().int().min(0).optional().describe("Offset / Desplazamiento"),
23
+ },
24
+ outputSchema: paginatedOutput(contactItemOutput),
25
+ }, async ({ clientId, limit, offset }) => withToolLogging("list_client_contacts", async () => {
26
+ const result = await client.listClientContacts(clientId, { limit, offset });
27
+ return {
28
+ content: [listContent(formatPaginatedResponse("contacts", result))],
29
+ structuredContent: result,
30
+ };
31
+ }));
32
+ // -- create_client_contact --
33
+ server.registerTool("create_client_contact", {
34
+ title: "Create Client Contact",
35
+ description: "Add a new contact person to a client. Requires a name at minimum. " +
36
+ "Example: clientId='abc123', name='Ana Garcia', email='ana@acme.com', role='CTO', isPrimary=true " +
37
+ "/ Anade un nuevo contacto a un cliente. Requiere al menos un nombre.",
38
+ annotations: CREATE_ANNOTATIONS,
39
+ inputSchema: {
40
+ clientId: z.string().describe("Client ID / ID del cliente"),
41
+ name: z.string().describe("Contact name / Nombre del contacto"),
42
+ email: z.string().optional().describe("Email address / Correo electronico"),
43
+ phone: z.string().optional().describe("Phone number / Telefono"),
44
+ role: z.string().optional().describe("Role or title (e.g. CEO, CTO, Billing) / Cargo o rol"),
45
+ isPrimary: z.boolean().optional().describe("Whether this is the primary contact / Si es el contacto principal"),
46
+ },
47
+ outputSchema: contactItemOutput,
48
+ }, async ({ clientId, ...data }) => withToolLogging("create_client_contact", async () => {
49
+ const result = await client.createClientContact(clientId, data);
50
+ const hints = enrichResponse("contacts", "create", result);
51
+ return {
52
+ content: [mutateContent(formatRecord("Contact created", result))],
53
+ structuredContent: { ...result, ...hints },
54
+ };
55
+ }));
56
+ // -- delete_client_contact --
57
+ server.registerTool("delete_client_contact", {
58
+ title: "Delete Client Contact",
59
+ description: "Permanently delete a contact from a client. This action cannot be undone. " +
60
+ "/ Elimina permanentemente un contacto de un cliente. Esta accion no se puede deshacer.",
61
+ annotations: DELETE_ANNOTATIONS,
62
+ inputSchema: {
63
+ clientId: z.string().describe("Client ID / ID del cliente"),
64
+ contactId: z.string().describe("Contact ID / ID del contacto"),
65
+ },
66
+ outputSchema: deleteResultOutput,
67
+ }, async ({ clientId, contactId }) => withToolLogging("delete_client_contact", async () => {
68
+ await client.deleteClientContact(clientId, contactId);
69
+ return {
70
+ content: [mutateContent(`Contact ${contactId} deleted from client ${clientId}. / Contacto ${contactId} eliminado del cliente ${clientId}.`)],
71
+ structuredContent: { success: true, id: contactId },
72
+ };
73
+ }));
74
+ // ================================================================
75
+ // Activities
76
+ // ================================================================
77
+ // -- list_client_activities --
78
+ server.registerTool("list_client_activities", {
79
+ title: "List Client Activities",
80
+ description: "List all CRM activities for a client with optional pagination. " +
81
+ "Returns calls, emails, meetings, and tasks logged against the client. " +
82
+ "/ Lista todas las actividades CRM de un cliente con paginacion opcional.",
83
+ annotations: READ_ONLY_ANNOTATIONS,
84
+ inputSchema: {
85
+ clientId: z.string().describe("Client ID / ID del cliente"),
86
+ limit: z.number().int().min(1).max(100).optional().describe("Max results (1-100) / Resultados maximos"),
87
+ offset: z.number().int().min(0).optional().describe("Offset / Desplazamiento"),
88
+ },
89
+ outputSchema: paginatedOutput(activityItemOutput),
90
+ }, async ({ clientId, limit, offset }) => withToolLogging("list_client_activities", async () => {
91
+ const result = await client.listClientActivities(clientId, { limit, offset });
92
+ return {
93
+ content: [listContent(formatPaginatedResponse("activities", result))],
94
+ structuredContent: result,
95
+ };
96
+ }));
97
+ // -- log_client_activity --
98
+ server.registerTool("log_client_activity", {
99
+ title: "Log Client Activity",
100
+ description: "Log a CRM activity against a client. Use to track calls, emails, meetings, or tasks. " +
101
+ "Example: clientId='abc123', type='call', title='Discussed Q2 proposal', description='Client interested in upgrade' " +
102
+ "/ Registra una actividad CRM para un cliente. Usa para rastrear llamadas, emails, reuniones o tareas.",
103
+ annotations: CREATE_ANNOTATIONS,
104
+ inputSchema: {
105
+ clientId: z.string().describe("Client ID / ID del cliente"),
106
+ type: z
107
+ .enum(["call", "email", "meeting", "task"])
108
+ .describe("Activity type / Tipo de actividad"),
109
+ title: z.string().describe("Activity title / Titulo de la actividad"),
110
+ description: z.string().optional().describe("Detailed description / Descripcion detallada"),
111
+ date: z.string().optional().describe("Activity date (ISO 8601, defaults to now) / Fecha de la actividad"),
112
+ },
113
+ outputSchema: activityItemOutput,
114
+ }, async ({ clientId, ...data }) => withToolLogging("log_client_activity", async () => {
115
+ const result = await client.logClientActivity(clientId, data);
116
+ return {
117
+ content: [mutateContent(formatRecord("Activity logged", result))],
118
+ structuredContent: result,
119
+ };
120
+ }));
121
+ // ================================================================
122
+ // Notes
123
+ // ================================================================
124
+ // -- list_client_notes --
125
+ server.registerTool("list_client_notes", {
126
+ title: "List Client Notes",
127
+ description: "List all notes for a client with optional pagination. " +
128
+ "/ Lista todas las notas de un cliente con paginacion opcional.",
129
+ annotations: READ_ONLY_ANNOTATIONS,
130
+ inputSchema: {
131
+ clientId: z.string().describe("Client ID / ID del cliente"),
132
+ limit: z.number().int().min(1).max(100).optional().describe("Max results (1-100) / Resultados maximos"),
133
+ offset: z.number().int().min(0).optional().describe("Offset / Desplazamiento"),
134
+ },
135
+ outputSchema: paginatedOutput(noteItemOutput),
136
+ }, async ({ clientId, limit, offset }) => withToolLogging("list_client_notes", async () => {
137
+ const result = await client.listClientNotes(clientId, { limit, offset });
138
+ return {
139
+ content: [listContent(formatPaginatedResponse("notes", result))],
140
+ structuredContent: result,
141
+ };
142
+ }));
143
+ // -- create_client_note --
144
+ server.registerTool("create_client_note", {
145
+ title: "Create Client Note",
146
+ description: "Add a note to a client. Notes are free-form text entries useful for keeping context. " +
147
+ "Example: clientId='abc123', content='Prefers invoices in English. Payment NET 30.' " +
148
+ "/ Anade una nota a un cliente. Las notas son texto libre para mantener contexto.",
149
+ annotations: CREATE_ANNOTATIONS,
150
+ inputSchema: {
151
+ clientId: z.string().describe("Client ID / ID del cliente"),
152
+ content: z.string().describe("Note content / Contenido de la nota"),
153
+ },
154
+ outputSchema: noteItemOutput,
155
+ }, async ({ clientId, content }) => withToolLogging("create_client_note", async () => {
156
+ const result = await client.createClientNote(clientId, { content });
157
+ return {
158
+ content: [mutateContent(formatRecord("Note created", result))],
159
+ structuredContent: result,
160
+ };
161
+ }));
162
+ // -- delete_client_note --
163
+ server.registerTool("delete_client_note", {
164
+ title: "Delete Client Note",
165
+ description: "Permanently delete a note from a client. This action cannot be undone. " +
166
+ "/ Elimina permanentemente una nota de un cliente. Esta accion no se puede deshacer.",
167
+ annotations: DELETE_ANNOTATIONS,
168
+ inputSchema: {
169
+ clientId: z.string().describe("Client ID / ID del cliente"),
170
+ noteId: z.string().describe("Note ID / ID de la nota"),
171
+ },
172
+ outputSchema: deleteResultOutput,
173
+ }, async ({ clientId, noteId }) => withToolLogging("delete_client_note", async () => {
174
+ await client.deleteClientNote(clientId, noteId);
175
+ return {
176
+ content: [mutateContent(`Note ${noteId} deleted from client ${clientId}. / Nota ${noteId} eliminada del cliente ${clientId}.`)],
177
+ structuredContent: { success: true, id: noteId },
178
+ };
179
+ }));
180
+ }
181
+ //# sourceMappingURL=crm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crm.js","sourceRoot":"","sources":["../../src/tools/crm.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"expenses.d.ts","sourceRoot":"","sources":["../../src/tools/expenses.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAG5D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CA8JnF"}
1
+ {"version":3,"file":"expenses.d.ts","sourceRoot":"","sources":["../../src/tools/expenses.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAG5D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CA8KnF"}
@@ -13,6 +13,14 @@ export function registerExpenseTools(server, client) {
13
13
  "/ Lista todos los gastos con paginacion y filtros de fecha opcionales.",
14
14
  annotations: READ_ONLY_ANNOTATIONS,
15
15
  inputSchema: {
16
+ vendorId: z
17
+ .string()
18
+ .optional()
19
+ .describe("Filter by vendor ID / Filtrar por ID de proveedor"),
20
+ category: z
21
+ .string()
22
+ .optional()
23
+ .describe("Filter by expense category (e.g. 'office', 'travel') / Filtrar por categoria"),
16
24
  from: z
17
25
  .string()
18
26
  .optional()
@@ -21,12 +29,20 @@ export function registerExpenseTools(server, client) {
21
29
  .string()
22
30
  .optional()
23
31
  .describe("End date filter (YYYY-MM-DD) / Fecha fin"),
32
+ fields: z
33
+ .string()
34
+ .optional()
35
+ .describe("Comma-separated field names to return (e.g. 'id,description,amount') / Campos a devolver"),
24
36
  limit: z.number().int().min(1).max(100).optional().describe("Max results (1-100) / Resultados maximos"),
25
37
  offset: z.number().int().min(0).optional().describe("Offset / Desplazamiento"),
38
+ after: z
39
+ .string()
40
+ .optional()
41
+ .describe("Cursor for cursor-based pagination (document ID) / Cursor para paginacion basada en cursor"),
26
42
  },
27
43
  outputSchema: paginatedOutput(expenseItemOutput),
28
- }, async ({ from, to, limit, offset }) => withToolLogging("list_expenses", async () => {
29
- const result = await client.listExpenses({ limit, offset, from, to });
44
+ }, async ({ from, to, limit, offset, vendorId, category, fields, after }) => withToolLogging("list_expenses", async () => {
45
+ const result = await client.listExpenses({ limit, offset, after, fields, from, to, vendorId, category });
30
46
  const hints = enrichResponse("expenses", "list", result.data);
31
47
  return {
32
48
  content: [listContent(formatPaginatedResponse("expenses", result))],