@dannychirkov/salesdrive-mcp-server 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/README.md +223 -0
  2. package/dist/cli/index.d.ts +6 -0
  3. package/dist/cli/index.d.ts.map +1 -0
  4. package/dist/cli/index.js +12 -0
  5. package/dist/cli/index.js.map +1 -0
  6. package/dist/config.d.ts +34 -0
  7. package/dist/config.d.ts.map +1 -0
  8. package/dist/config.js +46 -0
  9. package/dist/config.js.map +1 -0
  10. package/dist/server.d.ts +47 -0
  11. package/dist/server.d.ts.map +1 -0
  12. package/dist/server.js +195 -0
  13. package/dist/server.js.map +1 -0
  14. package/dist/tools/act.d.ts +20 -0
  15. package/dist/tools/act.d.ts.map +1 -0
  16. package/dist/tools/act.js +80 -0
  17. package/dist/tools/act.js.map +1 -0
  18. package/dist/tools/arrival.d.ts +20 -0
  19. package/dist/tools/arrival.d.ts.map +1 -0
  20. package/dist/tools/arrival.js +74 -0
  21. package/dist/tools/arrival.js.map +1 -0
  22. package/dist/tools/cashOrder.d.ts +20 -0
  23. package/dist/tools/cashOrder.d.ts.map +1 -0
  24. package/dist/tools/cashOrder.js +75 -0
  25. package/dist/tools/cashOrder.js.map +1 -0
  26. package/dist/tools/category.d.ts +20 -0
  27. package/dist/tools/category.d.ts.map +1 -0
  28. package/dist/tools/category.js +93 -0
  29. package/dist/tools/category.js.map +1 -0
  30. package/dist/tools/check.d.ts +20 -0
  31. package/dist/tools/check.d.ts.map +1 -0
  32. package/dist/tools/check.js +74 -0
  33. package/dist/tools/check.js.map +1 -0
  34. package/dist/tools/contract.d.ts +20 -0
  35. package/dist/tools/contract.d.ts.map +1 -0
  36. package/dist/tools/contract.js +74 -0
  37. package/dist/tools/contract.js.map +1 -0
  38. package/dist/tools/currency.d.ts +20 -0
  39. package/dist/tools/currency.d.ts.map +1 -0
  40. package/dist/tools/currency.js +75 -0
  41. package/dist/tools/currency.js.map +1 -0
  42. package/dist/tools/index.d.ts +17 -0
  43. package/dist/tools/index.d.ts.map +1 -0
  44. package/dist/tools/index.js +46 -0
  45. package/dist/tools/index.js.map +1 -0
  46. package/dist/tools/invoice.d.ts +20 -0
  47. package/dist/tools/invoice.d.ts.map +1 -0
  48. package/dist/tools/invoice.js +80 -0
  49. package/dist/tools/invoice.js.map +1 -0
  50. package/dist/tools/order.d.ts +20 -0
  51. package/dist/tools/order.d.ts.map +1 -0
  52. package/dist/tools/order.js +194 -0
  53. package/dist/tools/order.js.map +1 -0
  54. package/dist/tools/payment.d.ts +20 -0
  55. package/dist/tools/payment.d.ts.map +1 -0
  56. package/dist/tools/payment.js +119 -0
  57. package/dist/tools/payment.js.map +1 -0
  58. package/dist/tools/product.d.ts +20 -0
  59. package/dist/tools/product.d.ts.map +1 -0
  60. package/dist/tools/product.js +94 -0
  61. package/dist/tools/product.js.map +1 -0
  62. package/dist/tools/reference.d.ts +20 -0
  63. package/dist/tools/reference.d.ts.map +1 -0
  64. package/dist/tools/reference.js +105 -0
  65. package/dist/tools/reference.js.map +1 -0
  66. package/dist/tools/salesInvoice.d.ts +20 -0
  67. package/dist/tools/salesInvoice.d.ts.map +1 -0
  68. package/dist/tools/salesInvoice.js +80 -0
  69. package/dist/tools/salesInvoice.js.map +1 -0
  70. package/dist/utils/error-handler.d.ts +23 -0
  71. package/dist/utils/error-handler.d.ts.map +1 -0
  72. package/dist/utils/error-handler.js +50 -0
  73. package/dist/utils/error-handler.js.map +1 -0
  74. package/dist/utils/logger.d.ts +15 -0
  75. package/dist/utils/logger.d.ts.map +1 -0
  76. package/dist/utils/logger.js +44 -0
  77. package/dist/utils/logger.js.map +1 -0
  78. package/package.json +57 -0
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ /**
3
+ * Currency Tools for MCP Server
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.currencyTools = void 0;
7
+ exports.handleCurrencyTool = handleCurrencyTool;
8
+ const error_handler_js_1 = require("../utils/error-handler.js");
9
+ const logger_js_1 = require("../utils/logger.js");
10
+ /**
11
+ * Currency tool definitions
12
+ */
13
+ exports.currencyTools = [
14
+ {
15
+ name: 'currency_get',
16
+ description: 'Get current currency exchange rates from SalesDrive',
17
+ inputSchema: {
18
+ type: 'object',
19
+ properties: {},
20
+ },
21
+ },
22
+ {
23
+ name: 'currency_update',
24
+ description: 'Update currency exchange rates in SalesDrive',
25
+ inputSchema: {
26
+ type: 'object',
27
+ properties: {
28
+ currencies: {
29
+ type: 'array',
30
+ description: 'Array of currency rates to update',
31
+ items: {
32
+ type: 'object',
33
+ properties: {
34
+ code: {
35
+ type: 'string',
36
+ description: 'Currency code (e.g., USD, EUR)',
37
+ },
38
+ rate: {
39
+ type: 'number',
40
+ description: 'Exchange rate to UAH',
41
+ },
42
+ },
43
+ required: ['code', 'rate'],
44
+ },
45
+ },
46
+ },
47
+ required: ['currencies'],
48
+ },
49
+ },
50
+ ];
51
+ /**
52
+ * Handle currency tool calls
53
+ */
54
+ async function handleCurrencyTool(toolName, args, client) {
55
+ logger_js_1.logger.debug(`Handling tool: ${toolName}`, args);
56
+ try {
57
+ switch (toolName) {
58
+ case 'currency_get': {
59
+ const result = await client.currencies.get();
60
+ return (0, error_handler_js_1.formatSuccess)(result);
61
+ }
62
+ case 'currency_update': {
63
+ const currencies = args.currencies;
64
+ const result = await client.currencies.update({ currencies });
65
+ return (0, error_handler_js_1.formatSuccess)(result);
66
+ }
67
+ default:
68
+ return (0, error_handler_js_1.formatError)(new Error(`Unknown currency tool: ${toolName}`));
69
+ }
70
+ }
71
+ catch (error) {
72
+ return (0, error_handler_js_1.formatError)(error);
73
+ }
74
+ }
75
+ //# sourceMappingURL=currency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"currency.js","sourceRoot":"","sources":["../../src/tools/currency.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAsDH,gDA0BC;AA7ED,gEAAuE;AACvE,kDAA4C;AAE5C;;GAEG;AACU,QAAA,aAAa,GAAW;IACnC;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,qDAAqD;QAClE,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;SACf;KACF;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,8CAA8C;QAC3D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,UAAU,EAAE;oBACV,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,mCAAmC;oBAChD,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,IAAI,EAAE;gCACJ,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,gCAAgC;6BAC9C;4BACD,IAAI,EAAE;gCACJ,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,sBAAsB;6BACpC;yBACF;wBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;qBAC3B;iBACF;aACF;YACD,QAAQ,EAAE,CAAC,YAAY,CAAC;SACzB;KACF;CACF,CAAC;AAKF;;GAEG;AACI,KAAK,UAAU,kBAAkB,CACtC,QAAgB,EAChB,IAA6B,EAC7B,MAAiB;IAEjB,kBAAM,CAAC,KAAK,CAAC,kBAAkB,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;IAEjD,IAAI,CAAC;QACH,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;gBAC7C,OAAO,IAAA,gCAAa,EAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;YAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAmD,CAAC;gBAC5E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;gBAC9D,OAAO,IAAA,gCAAa,EAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;YAED;gBACE,OAAO,IAAA,8BAAW,EAAC,IAAI,KAAK,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAA,8BAAW,EAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Tool Index - Exports all tools
3
+ */
4
+ export { orderTools, handleOrderTool } from './order.js';
5
+ export { productTools, handleProductTool } from './product.js';
6
+ export { paymentTools, handlePaymentTool } from './payment.js';
7
+ export { referenceTools, handleReferenceTool } from './reference.js';
8
+ export { currencyTools, handleCurrencyTool } from './currency.js';
9
+ export { categoryTools, handleCategoryTool } from './category.js';
10
+ export { invoiceTools, handleInvoiceTool } from './invoice.js';
11
+ export { salesInvoiceTools, handleSalesInvoiceTool } from './salesInvoice.js';
12
+ export { cashOrderTools, handleCashOrderTool } from './cashOrder.js';
13
+ export { contractTools, handleContractTool } from './contract.js';
14
+ export { checkTools, handleCheckTool } from './check.js';
15
+ export { actTools, handleActTool } from './act.js';
16
+ export { arrivalTools, handleArrivalTool } from './arrival.js';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ /**
3
+ * Tool Index - Exports all tools
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.handleArrivalTool = exports.arrivalTools = exports.handleActTool = exports.actTools = exports.handleCheckTool = exports.checkTools = exports.handleContractTool = exports.contractTools = exports.handleCashOrderTool = exports.cashOrderTools = exports.handleSalesInvoiceTool = exports.salesInvoiceTools = exports.handleInvoiceTool = exports.invoiceTools = exports.handleCategoryTool = exports.categoryTools = exports.handleCurrencyTool = exports.currencyTools = exports.handleReferenceTool = exports.referenceTools = exports.handlePaymentTool = exports.paymentTools = exports.handleProductTool = exports.productTools = exports.handleOrderTool = exports.orderTools = void 0;
7
+ var order_js_1 = require("./order.js");
8
+ Object.defineProperty(exports, "orderTools", { enumerable: true, get: function () { return order_js_1.orderTools; } });
9
+ Object.defineProperty(exports, "handleOrderTool", { enumerable: true, get: function () { return order_js_1.handleOrderTool; } });
10
+ var product_js_1 = require("./product.js");
11
+ Object.defineProperty(exports, "productTools", { enumerable: true, get: function () { return product_js_1.productTools; } });
12
+ Object.defineProperty(exports, "handleProductTool", { enumerable: true, get: function () { return product_js_1.handleProductTool; } });
13
+ var payment_js_1 = require("./payment.js");
14
+ Object.defineProperty(exports, "paymentTools", { enumerable: true, get: function () { return payment_js_1.paymentTools; } });
15
+ Object.defineProperty(exports, "handlePaymentTool", { enumerable: true, get: function () { return payment_js_1.handlePaymentTool; } });
16
+ var reference_js_1 = require("./reference.js");
17
+ Object.defineProperty(exports, "referenceTools", { enumerable: true, get: function () { return reference_js_1.referenceTools; } });
18
+ Object.defineProperty(exports, "handleReferenceTool", { enumerable: true, get: function () { return reference_js_1.handleReferenceTool; } });
19
+ var currency_js_1 = require("./currency.js");
20
+ Object.defineProperty(exports, "currencyTools", { enumerable: true, get: function () { return currency_js_1.currencyTools; } });
21
+ Object.defineProperty(exports, "handleCurrencyTool", { enumerable: true, get: function () { return currency_js_1.handleCurrencyTool; } });
22
+ var category_js_1 = require("./category.js");
23
+ Object.defineProperty(exports, "categoryTools", { enumerable: true, get: function () { return category_js_1.categoryTools; } });
24
+ Object.defineProperty(exports, "handleCategoryTool", { enumerable: true, get: function () { return category_js_1.handleCategoryTool; } });
25
+ var invoice_js_1 = require("./invoice.js");
26
+ Object.defineProperty(exports, "invoiceTools", { enumerable: true, get: function () { return invoice_js_1.invoiceTools; } });
27
+ Object.defineProperty(exports, "handleInvoiceTool", { enumerable: true, get: function () { return invoice_js_1.handleInvoiceTool; } });
28
+ var salesInvoice_js_1 = require("./salesInvoice.js");
29
+ Object.defineProperty(exports, "salesInvoiceTools", { enumerable: true, get: function () { return salesInvoice_js_1.salesInvoiceTools; } });
30
+ Object.defineProperty(exports, "handleSalesInvoiceTool", { enumerable: true, get: function () { return salesInvoice_js_1.handleSalesInvoiceTool; } });
31
+ var cashOrder_js_1 = require("./cashOrder.js");
32
+ Object.defineProperty(exports, "cashOrderTools", { enumerable: true, get: function () { return cashOrder_js_1.cashOrderTools; } });
33
+ Object.defineProperty(exports, "handleCashOrderTool", { enumerable: true, get: function () { return cashOrder_js_1.handleCashOrderTool; } });
34
+ var contract_js_1 = require("./contract.js");
35
+ Object.defineProperty(exports, "contractTools", { enumerable: true, get: function () { return contract_js_1.contractTools; } });
36
+ Object.defineProperty(exports, "handleContractTool", { enumerable: true, get: function () { return contract_js_1.handleContractTool; } });
37
+ var check_js_1 = require("./check.js");
38
+ Object.defineProperty(exports, "checkTools", { enumerable: true, get: function () { return check_js_1.checkTools; } });
39
+ Object.defineProperty(exports, "handleCheckTool", { enumerable: true, get: function () { return check_js_1.handleCheckTool; } });
40
+ var act_js_1 = require("./act.js");
41
+ Object.defineProperty(exports, "actTools", { enumerable: true, get: function () { return act_js_1.actTools; } });
42
+ Object.defineProperty(exports, "handleActTool", { enumerable: true, get: function () { return act_js_1.handleActTool; } });
43
+ var arrival_js_1 = require("./arrival.js");
44
+ Object.defineProperty(exports, "arrivalTools", { enumerable: true, get: function () { return arrival_js_1.arrivalTools; } });
45
+ Object.defineProperty(exports, "handleArrivalTool", { enumerable: true, get: function () { return arrival_js_1.handleArrivalTool; } });
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,uCAAyD;AAAhD,sGAAA,UAAU,OAAA;AAAE,2GAAA,eAAe,OAAA;AACpC,2CAA+D;AAAtD,0GAAA,YAAY,OAAA;AAAE,+GAAA,iBAAiB,OAAA;AACxC,2CAA+D;AAAtD,0GAAA,YAAY,OAAA;AAAE,+GAAA,iBAAiB,OAAA;AACxC,+CAAqE;AAA5D,8GAAA,cAAc,OAAA;AAAE,mHAAA,mBAAmB,OAAA;AAC5C,6CAAkE;AAAzD,4GAAA,aAAa,OAAA;AAAE,iHAAA,kBAAkB,OAAA;AAC1C,6CAAkE;AAAzD,4GAAA,aAAa,OAAA;AAAE,iHAAA,kBAAkB,OAAA;AAC1C,2CAA+D;AAAtD,0GAAA,YAAY,OAAA;AAAE,+GAAA,iBAAiB,OAAA;AACxC,qDAA8E;AAArE,oHAAA,iBAAiB,OAAA;AAAE,yHAAA,sBAAsB,OAAA;AAClD,+CAAqE;AAA5D,8GAAA,cAAc,OAAA;AAAE,mHAAA,mBAAmB,OAAA;AAC5C,6CAAkE;AAAzD,4GAAA,aAAa,OAAA;AAAE,iHAAA,kBAAkB,OAAA;AAC1C,uCAAyD;AAAhD,sGAAA,UAAU,OAAA;AAAE,2GAAA,eAAe,OAAA;AACpC,mCAAmD;AAA1C,kGAAA,QAAQ,OAAA;AAAE,uGAAA,aAAa,OAAA;AAChC,2CAA+D;AAAtD,0GAAA,YAAY,OAAA;AAAE,+GAAA,iBAAiB,OAAA"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Invoice Tools for MCP Server
3
+ */
4
+ import type { Tool } from '@modelcontextprotocol/sdk/types.js';
5
+ /**
6
+ * Invoice tool definitions
7
+ */
8
+ export declare const invoiceTools: Tool[];
9
+ type AnyClient = any;
10
+ /**
11
+ * Handle invoice tool calls
12
+ */
13
+ export declare function handleInvoiceTool(toolName: string, args: Record<string, unknown>, client: AnyClient): Promise<{
14
+ content: Array<{
15
+ type: "text";
16
+ text: string;
17
+ }>;
18
+ }>;
19
+ export {};
20
+ //# sourceMappingURL=invoice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoice.d.ts","sourceRoot":"","sources":["../../src/tools/invoice.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAI/D;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,IAAI,EAkC9B,CAAC;AAGF,KAAK,SAAS,GAAG,GAAG,CAAC;AAErB;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,SAAS;;;;;GAyBlB"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ /**
3
+ * Invoice Tools for MCP Server
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.invoiceTools = void 0;
7
+ exports.handleInvoiceTool = handleInvoiceTool;
8
+ const error_handler_js_1 = require("../utils/error-handler.js");
9
+ const logger_js_1 = require("../utils/logger.js");
10
+ /**
11
+ * Invoice tool definitions
12
+ */
13
+ exports.invoiceTools = [
14
+ {
15
+ name: 'invoice_list',
16
+ description: 'List invoices (Рахунки-фактури) from SalesDrive',
17
+ inputSchema: {
18
+ type: 'object',
19
+ properties: {
20
+ page: {
21
+ type: 'number',
22
+ description: 'Page number (default: 1)',
23
+ },
24
+ limit: {
25
+ type: 'number',
26
+ description: 'Results per page (default: 50, max: 100)',
27
+ },
28
+ orderId: {
29
+ type: 'number',
30
+ description: 'Filter by order ID',
31
+ },
32
+ contactId: {
33
+ type: 'number',
34
+ description: 'Filter by contact ID',
35
+ },
36
+ dateFrom: {
37
+ type: 'string',
38
+ description: 'Filter from date (YYYY-MM-DD)',
39
+ },
40
+ dateTo: {
41
+ type: 'string',
42
+ description: 'Filter to date (YYYY-MM-DD)',
43
+ },
44
+ },
45
+ },
46
+ },
47
+ ];
48
+ /**
49
+ * Handle invoice tool calls
50
+ */
51
+ async function handleInvoiceTool(toolName, args, client) {
52
+ logger_js_1.logger.debug(`Handling tool: ${toolName}`, args);
53
+ try {
54
+ switch (toolName) {
55
+ case 'invoice_list': {
56
+ const params = {};
57
+ if (args.page)
58
+ params.page = args.page;
59
+ if (args.limit)
60
+ params.limit = args.limit;
61
+ if (args.orderId)
62
+ params['filter[orderId]'] = args.orderId;
63
+ if (args.contactId)
64
+ params['filter[contactId]'] = args.contactId;
65
+ if (args.dateFrom)
66
+ params['filter[date][from]'] = args.dateFrom;
67
+ if (args.dateTo)
68
+ params['filter[date][to]'] = args.dateTo;
69
+ const result = await client.invoices.list(params);
70
+ return (0, error_handler_js_1.formatSuccess)(result);
71
+ }
72
+ default:
73
+ return (0, error_handler_js_1.formatError)(new Error(`Unknown invoice tool: ${toolName}`));
74
+ }
75
+ }
76
+ catch (error) {
77
+ return (0, error_handler_js_1.formatError)(error);
78
+ }
79
+ }
80
+ //# sourceMappingURL=invoice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoice.js","sourceRoot":"","sources":["../../src/tools/invoice.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAmDH,8CA4BC;AA5ED,gEAAuE;AACvE,kDAA4C;AAE5C;;GAEG;AACU,QAAA,YAAY,GAAW;IAClC;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,iDAAiD;QAC9D,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0BAA0B;iBACxC;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0CAA0C;iBACxD;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oBAAoB;iBAClC;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sBAAsB;iBACpC;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+BAA+B;iBAC7C;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,6BAA6B;iBAC3C;aACF;SACF;KACF;CACF,CAAC;AAKF;;GAEG;AACI,KAAK,UAAU,iBAAiB,CACrC,QAAgB,EAChB,IAA6B,EAC7B,MAAiB;IAEjB,kBAAM,CAAC,KAAK,CAAC,kBAAkB,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;IAEjD,IAAI,CAAC;QACH,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,MAAM,GAA4B,EAAE,CAAC;gBAC3C,IAAI,IAAI,CAAC,IAAI;oBAAE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACvC,IAAI,IAAI,CAAC,KAAK;oBAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC1C,IAAI,IAAI,CAAC,OAAO;oBAAE,MAAM,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC3D,IAAI,IAAI,CAAC,SAAS;oBAAE,MAAM,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;gBACjE,IAAI,IAAI,CAAC,QAAQ;oBAAE,MAAM,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAChE,IAAI,IAAI,CAAC,MAAM;oBAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;gBAE1D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAClD,OAAO,IAAA,gCAAa,EAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;YAED;gBACE,OAAO,IAAA,8BAAW,EAAC,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAA,8BAAW,EAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Order Tools for MCP Server
3
+ */
4
+ import type { Tool } from '@modelcontextprotocol/sdk/types.js';
5
+ /**
6
+ * Order tool definitions
7
+ */
8
+ export declare const orderTools: Tool[];
9
+ type AnyClient = any;
10
+ /**
11
+ * Handle order tool calls
12
+ */
13
+ export declare function handleOrderTool(toolName: string, args: Record<string, unknown>, client: AnyClient): Promise<{
14
+ content: Array<{
15
+ type: "text";
16
+ text: string;
17
+ }>;
18
+ }>;
19
+ export {};
20
+ //# sourceMappingURL=order.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../src/tools/order.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAI/D;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,IAAI,EA+G5B,CAAC;AAGF,KAAK,SAAS,GAAG,GAAG,CAAC;AAErB;;GAEG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,SAAS;;;;;GAoElB"}
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ /**
3
+ * Order Tools for MCP Server
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.orderTools = void 0;
7
+ exports.handleOrderTool = handleOrderTool;
8
+ const error_handler_js_1 = require("../utils/error-handler.js");
9
+ const logger_js_1 = require("../utils/logger.js");
10
+ /**
11
+ * Order tool definitions
12
+ */
13
+ exports.orderTools = [
14
+ {
15
+ name: 'order_list',
16
+ description: 'List orders from SalesDrive CRM with optional filters',
17
+ inputSchema: {
18
+ type: 'object',
19
+ properties: {
20
+ page: {
21
+ type: 'number',
22
+ description: 'Page number (default: 1)',
23
+ },
24
+ limit: {
25
+ type: 'number',
26
+ description: 'Results per page (default: 50, max: 100)',
27
+ },
28
+ statusId: {
29
+ type: 'string',
30
+ description: 'Filter by status ID. Special values: __NOTDELETED__ (all except deleted), __ALL__ (all)',
31
+ },
32
+ orderTimeFrom: {
33
+ type: 'string',
34
+ description: 'Order creation date from (YYYY-MM-DD HH:MM:SS)',
35
+ },
36
+ orderTimeTo: {
37
+ type: 'string',
38
+ description: 'Order creation date to (YYYY-MM-DD HH:MM:SS)',
39
+ },
40
+ },
41
+ },
42
+ },
43
+ {
44
+ name: 'order_create',
45
+ description: 'Create a new order in SalesDrive CRM',
46
+ inputSchema: {
47
+ type: 'object',
48
+ properties: {
49
+ phone: {
50
+ type: 'string',
51
+ description: 'Customer phone number (required)',
52
+ },
53
+ firstName: {
54
+ type: 'string',
55
+ description: 'Customer first name',
56
+ },
57
+ lastName: {
58
+ type: 'string',
59
+ description: 'Customer last name',
60
+ },
61
+ email: {
62
+ type: 'string',
63
+ description: 'Customer email',
64
+ },
65
+ products: {
66
+ type: 'array',
67
+ description: 'Products in the order',
68
+ items: {
69
+ type: 'object',
70
+ properties: {
71
+ id: { type: 'string', description: 'Product ID' },
72
+ name: { type: 'string', description: 'Product name' },
73
+ price: { type: 'number', description: 'Price per item' },
74
+ quantity: { type: 'number', description: 'Quantity' },
75
+ },
76
+ required: ['id', 'price', 'quantity'],
77
+ },
78
+ },
79
+ paymentMethod: {
80
+ type: 'string',
81
+ description: 'Payment method (e.g., cash, card)',
82
+ },
83
+ shippingMethod: {
84
+ type: 'string',
85
+ description: 'Shipping method (e.g., novaposhta, pickup)',
86
+ },
87
+ comment: {
88
+ type: 'string',
89
+ description: 'Order comment',
90
+ },
91
+ },
92
+ required: ['phone', 'products'],
93
+ },
94
+ },
95
+ {
96
+ name: 'order_update',
97
+ description: 'Update an existing order in SalesDrive CRM',
98
+ inputSchema: {
99
+ type: 'object',
100
+ properties: {
101
+ id: {
102
+ type: 'number',
103
+ description: 'Order ID (internal)',
104
+ },
105
+ externalId: {
106
+ type: 'string',
107
+ description: 'External order ID (from your system)',
108
+ },
109
+ statusId: {
110
+ type: 'number',
111
+ description: 'New status ID',
112
+ },
113
+ comment: {
114
+ type: 'string',
115
+ description: 'Updated comment',
116
+ },
117
+ trackingNumber: {
118
+ type: 'string',
119
+ description: 'Nova Poshta tracking number (TTN)',
120
+ },
121
+ },
122
+ },
123
+ },
124
+ ];
125
+ /**
126
+ * Handle order tool calls
127
+ */
128
+ async function handleOrderTool(toolName, args, client) {
129
+ logger_js_1.logger.debug(`Handling tool: ${toolName}`, args);
130
+ try {
131
+ switch (toolName) {
132
+ case 'order_list': {
133
+ const params = {};
134
+ if (args.page)
135
+ params.page = args.page;
136
+ if (args.limit)
137
+ params.limit = args.limit;
138
+ if (args.statusId)
139
+ params['filter[statusId]'] = args.statusId;
140
+ if (args.orderTimeFrom)
141
+ params['filter[orderTime][from]'] = args.orderTimeFrom;
142
+ if (args.orderTimeTo)
143
+ params['filter[orderTime][to]'] = args.orderTimeTo;
144
+ const result = await client.orders.list(params);
145
+ return (0, error_handler_js_1.formatSuccess)({
146
+ orders: result.data,
147
+ pagination: result.pagination,
148
+ totals: result.totals,
149
+ });
150
+ }
151
+ case 'order_create': {
152
+ const products = args.products
153
+ .map((p) => ({
154
+ id: p.id,
155
+ name: p.name,
156
+ costPerItem: p.price,
157
+ amount: p.quantity,
158
+ }));
159
+ const result = await client.orders.create({
160
+ phone: args.phone,
161
+ fName: args.firstName,
162
+ lName: args.lastName,
163
+ email: args.email,
164
+ products,
165
+ payment_method: args.paymentMethod,
166
+ shipping_method: args.shippingMethod,
167
+ comment: args.comment,
168
+ getResultData: 1,
169
+ });
170
+ return (0, error_handler_js_1.formatSuccess)(result);
171
+ }
172
+ case 'order_update': {
173
+ const result = await client.orders.update({
174
+ id: args.id,
175
+ externalId: args.externalId,
176
+ data: {
177
+ statusId: args.statusId,
178
+ comment: args.comment,
179
+ novaposhta: args.trackingNumber
180
+ ? { ttn: args.trackingNumber }
181
+ : undefined,
182
+ },
183
+ });
184
+ return (0, error_handler_js_1.formatSuccess)(result);
185
+ }
186
+ default:
187
+ return (0, error_handler_js_1.formatError)(new Error(`Unknown order tool: ${toolName}`));
188
+ }
189
+ }
190
+ catch (error) {
191
+ return (0, error_handler_js_1.formatError)(error);
192
+ }
193
+ }
194
+ //# sourceMappingURL=order.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order.js","sourceRoot":"","sources":["../../src/tools/order.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Payment Tools for MCP Server
3
+ */
4
+ import type { Tool } from '@modelcontextprotocol/sdk/types.js';
5
+ /**
6
+ * Payment tool definitions
7
+ */
8
+ export declare const paymentTools: Tool[];
9
+ type AnyClient = any;
10
+ /**
11
+ * Handle payment tool calls
12
+ */
13
+ export declare function handlePaymentTool(toolName: string, args: Record<string, unknown>, client: AnyClient): Promise<{
14
+ content: Array<{
15
+ type: "text";
16
+ text: string;
17
+ }>;
18
+ }>;
19
+ export {};
20
+ //# sourceMappingURL=payment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../src/tools/payment.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAI/D;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,IAAI,EA6D9B,CAAC;AAGF,KAAK,SAAS,GAAG,GAAG,CAAC;AAErB;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,SAAS;;;;;GAwClB"}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ /**
3
+ * Payment Tools for MCP Server
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.paymentTools = void 0;
7
+ exports.handlePaymentTool = handlePaymentTool;
8
+ const error_handler_js_1 = require("../utils/error-handler.js");
9
+ const logger_js_1 = require("../utils/logger.js");
10
+ /**
11
+ * Payment tool definitions
12
+ */
13
+ exports.paymentTools = [
14
+ {
15
+ name: 'payment_add',
16
+ description: 'Register a new payment in SalesDrive',
17
+ inputSchema: {
18
+ type: 'object',
19
+ properties: {
20
+ sum: {
21
+ type: 'number',
22
+ description: 'Payment amount (required)',
23
+ },
24
+ orderId: {
25
+ type: 'number',
26
+ description: 'Order ID to attach payment to',
27
+ },
28
+ description: {
29
+ type: 'string',
30
+ description: 'Payment description',
31
+ },
32
+ datetime: {
33
+ type: 'string',
34
+ description: 'Payment date and time (YYYY-MM-DD HH:MM:SS)',
35
+ },
36
+ counterpartyName: {
37
+ type: 'string',
38
+ description: 'Name of the payer',
39
+ },
40
+ },
41
+ required: ['sum'],
42
+ },
43
+ },
44
+ {
45
+ name: 'payment_list',
46
+ description: 'List payments from SalesDrive with optional filters',
47
+ inputSchema: {
48
+ type: 'object',
49
+ properties: {
50
+ page: {
51
+ type: 'number',
52
+ description: 'Page number',
53
+ },
54
+ limit: {
55
+ type: 'number',
56
+ description: 'Results per page (max: 100)',
57
+ },
58
+ type: {
59
+ type: 'string',
60
+ enum: ['all', 'incoming', 'outcoming'],
61
+ description: 'Payment type filter',
62
+ },
63
+ dateFrom: {
64
+ type: 'string',
65
+ description: 'Payment date from (YYYY-MM-DD HH:MM:SS)',
66
+ },
67
+ dateTo: {
68
+ type: 'string',
69
+ description: 'Payment date to (YYYY-MM-DD HH:MM:SS)',
70
+ },
71
+ },
72
+ },
73
+ },
74
+ ];
75
+ /**
76
+ * Handle payment tool calls
77
+ */
78
+ async function handlePaymentTool(toolName, args, client) {
79
+ logger_js_1.logger.debug(`Handling tool: ${toolName}`, args);
80
+ try {
81
+ switch (toolName) {
82
+ case 'payment_add': {
83
+ const result = await client.payments.add({
84
+ sum: args.sum,
85
+ orderId: args.orderId,
86
+ description: args.description,
87
+ datetime: args.datetime,
88
+ counterpartyName: args.counterpartyName,
89
+ });
90
+ return (0, error_handler_js_1.formatSuccess)(result);
91
+ }
92
+ case 'payment_list': {
93
+ const params = {};
94
+ if (args.page)
95
+ params.page = args.page;
96
+ if (args.limit)
97
+ params.limit = args.limit;
98
+ if (args.type)
99
+ params.type = args.type;
100
+ if (args.dateFrom)
101
+ params['filter[date][from]'] = args.dateFrom;
102
+ if (args.dateTo)
103
+ params['filter[date][to]'] = args.dateTo;
104
+ const result = await client.payments.list(params);
105
+ return (0, error_handler_js_1.formatSuccess)({
106
+ payments: result.data,
107
+ pagination: result.pagination,
108
+ totals: result.totals,
109
+ });
110
+ }
111
+ default:
112
+ return (0, error_handler_js_1.formatError)(new Error(`Unknown payment tool: ${toolName}`));
113
+ }
114
+ }
115
+ catch (error) {
116
+ return (0, error_handler_js_1.formatError)(error);
117
+ }
118
+ }
119
+ //# sourceMappingURL=payment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment.js","sourceRoot":"","sources":["../../src/tools/payment.ts"],"names":[],"mappings":"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"}