@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.
- package/README.md +223 -0
- package/dist/cli/index.d.ts +6 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +12 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/config.d.ts +34 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +46 -0
- package/dist/config.js.map +1 -0
- package/dist/server.d.ts +47 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +195 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/act.d.ts +20 -0
- package/dist/tools/act.d.ts.map +1 -0
- package/dist/tools/act.js +80 -0
- package/dist/tools/act.js.map +1 -0
- package/dist/tools/arrival.d.ts +20 -0
- package/dist/tools/arrival.d.ts.map +1 -0
- package/dist/tools/arrival.js +74 -0
- package/dist/tools/arrival.js.map +1 -0
- package/dist/tools/cashOrder.d.ts +20 -0
- package/dist/tools/cashOrder.d.ts.map +1 -0
- package/dist/tools/cashOrder.js +75 -0
- package/dist/tools/cashOrder.js.map +1 -0
- package/dist/tools/category.d.ts +20 -0
- package/dist/tools/category.d.ts.map +1 -0
- package/dist/tools/category.js +93 -0
- package/dist/tools/category.js.map +1 -0
- package/dist/tools/check.d.ts +20 -0
- package/dist/tools/check.d.ts.map +1 -0
- package/dist/tools/check.js +74 -0
- package/dist/tools/check.js.map +1 -0
- package/dist/tools/contract.d.ts +20 -0
- package/dist/tools/contract.d.ts.map +1 -0
- package/dist/tools/contract.js +74 -0
- package/dist/tools/contract.js.map +1 -0
- package/dist/tools/currency.d.ts +20 -0
- package/dist/tools/currency.d.ts.map +1 -0
- package/dist/tools/currency.js +75 -0
- package/dist/tools/currency.js.map +1 -0
- package/dist/tools/index.d.ts +17 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +46 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/invoice.d.ts +20 -0
- package/dist/tools/invoice.d.ts.map +1 -0
- package/dist/tools/invoice.js +80 -0
- package/dist/tools/invoice.js.map +1 -0
- package/dist/tools/order.d.ts +20 -0
- package/dist/tools/order.d.ts.map +1 -0
- package/dist/tools/order.js +194 -0
- package/dist/tools/order.js.map +1 -0
- package/dist/tools/payment.d.ts +20 -0
- package/dist/tools/payment.d.ts.map +1 -0
- package/dist/tools/payment.js +119 -0
- package/dist/tools/payment.js.map +1 -0
- package/dist/tools/product.d.ts +20 -0
- package/dist/tools/product.d.ts.map +1 -0
- package/dist/tools/product.js +94 -0
- package/dist/tools/product.js.map +1 -0
- package/dist/tools/reference.d.ts +20 -0
- package/dist/tools/reference.d.ts.map +1 -0
- package/dist/tools/reference.js +105 -0
- package/dist/tools/reference.js.map +1 -0
- package/dist/tools/salesInvoice.d.ts +20 -0
- package/dist/tools/salesInvoice.d.ts.map +1 -0
- package/dist/tools/salesInvoice.js +80 -0
- package/dist/tools/salesInvoice.js.map +1 -0
- package/dist/utils/error-handler.d.ts +23 -0
- package/dist/utils/error-handler.d.ts.map +1 -0
- package/dist/utils/error-handler.js +50 -0
- package/dist/utils/error-handler.js.map +1 -0
- package/dist/utils/logger.d.ts +15 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +44 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Act Tools for MCP Server (Акти)
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.actTools = void 0;
|
|
7
|
+
exports.handleActTool = handleActTool;
|
|
8
|
+
const error_handler_js_1 = require("../utils/error-handler.js");
|
|
9
|
+
const logger_js_1 = require("../utils/logger.js");
|
|
10
|
+
/**
|
|
11
|
+
* Act tool definitions
|
|
12
|
+
*/
|
|
13
|
+
exports.actTools = [
|
|
14
|
+
{
|
|
15
|
+
name: 'act_list',
|
|
16
|
+
description: 'List acts (Акти виконаних робіт) 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 act tool calls
|
|
50
|
+
*/
|
|
51
|
+
async function handleActTool(toolName, args, client) {
|
|
52
|
+
logger_js_1.logger.debug(`Handling tool: ${toolName}`, args);
|
|
53
|
+
try {
|
|
54
|
+
switch (toolName) {
|
|
55
|
+
case 'act_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.acts.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 act tool: ${toolName}`));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
return (0, error_handler_js_1.formatError)(error);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=act.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"act.js","sourceRoot":"","sources":["../../src/tools/act.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAmDH,sCA4BC;AA5ED,gEAAuE;AACvE,kDAA4C;AAE5C;;GAEG;AACU,QAAA,QAAQ,GAAW;IAC9B;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,kDAAkD;QAC/D,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,aAAa,CACjC,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,UAAU,CAAC,CAAC,CAAC;gBAChB,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,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC9C,OAAO,IAAA,gCAAa,EAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;YAED;gBACE,OAAO,IAAA,8BAAW,EAAC,IAAI,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC,CAAC;QACnE,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
|
+
* Arrival Tools for MCP Server (Product Arrivals / Надходження товарів)
|
|
3
|
+
*/
|
|
4
|
+
import type { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Arrival tool definitions
|
|
7
|
+
*/
|
|
8
|
+
export declare const arrivalTools: Tool[];
|
|
9
|
+
type AnyClient = any;
|
|
10
|
+
/**
|
|
11
|
+
* Handle arrival tool calls
|
|
12
|
+
*/
|
|
13
|
+
export declare function handleArrivalTool(toolName: string, args: Record<string, unknown>, client: AnyClient): Promise<{
|
|
14
|
+
content: Array<{
|
|
15
|
+
type: "text";
|
|
16
|
+
text: string;
|
|
17
|
+
}>;
|
|
18
|
+
}>;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=arrival.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arrival.d.ts","sourceRoot":"","sources":["../../src/tools/arrival.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAI/D;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,IAAI,EA8B9B,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;;;;;GAwBlB"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Arrival Tools for MCP Server (Product Arrivals / Надходження товарів)
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.arrivalTools = void 0;
|
|
7
|
+
exports.handleArrivalTool = handleArrivalTool;
|
|
8
|
+
const error_handler_js_1 = require("../utils/error-handler.js");
|
|
9
|
+
const logger_js_1 = require("../utils/logger.js");
|
|
10
|
+
/**
|
|
11
|
+
* Arrival tool definitions
|
|
12
|
+
*/
|
|
13
|
+
exports.arrivalTools = [
|
|
14
|
+
{
|
|
15
|
+
name: 'arrival_list',
|
|
16
|
+
description: 'List product arrivals (Надходження товарів) 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
|
+
warehouseId: {
|
|
29
|
+
type: 'number',
|
|
30
|
+
description: 'Filter by warehouse ID',
|
|
31
|
+
},
|
|
32
|
+
dateFrom: {
|
|
33
|
+
type: 'string',
|
|
34
|
+
description: 'Filter from date (YYYY-MM-DD)',
|
|
35
|
+
},
|
|
36
|
+
dateTo: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
description: 'Filter to date (YYYY-MM-DD)',
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
];
|
|
44
|
+
/**
|
|
45
|
+
* Handle arrival tool calls
|
|
46
|
+
*/
|
|
47
|
+
async function handleArrivalTool(toolName, args, client) {
|
|
48
|
+
logger_js_1.logger.debug(`Handling tool: ${toolName}`, args);
|
|
49
|
+
try {
|
|
50
|
+
switch (toolName) {
|
|
51
|
+
case 'arrival_list': {
|
|
52
|
+
const params = {};
|
|
53
|
+
if (args.page)
|
|
54
|
+
params.page = args.page;
|
|
55
|
+
if (args.limit)
|
|
56
|
+
params.limit = args.limit;
|
|
57
|
+
if (args.warehouseId)
|
|
58
|
+
params['filter[warehouseId]'] = args.warehouseId;
|
|
59
|
+
if (args.dateFrom)
|
|
60
|
+
params['filter[date][from]'] = args.dateFrom;
|
|
61
|
+
if (args.dateTo)
|
|
62
|
+
params['filter[date][to]'] = args.dateTo;
|
|
63
|
+
const result = await client.arrivals.list(params);
|
|
64
|
+
return (0, error_handler_js_1.formatSuccess)(result);
|
|
65
|
+
}
|
|
66
|
+
default:
|
|
67
|
+
return (0, error_handler_js_1.formatError)(new Error(`Unknown arrival tool: ${toolName}`));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
return (0, error_handler_js_1.formatError)(error);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=arrival.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arrival.js","sourceRoot":"","sources":["../../src/tools/arrival.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AA+CH,8CA2BC;AAvED,gEAAuE;AACvE,kDAA4C;AAE5C;;GAEG;AACU,QAAA,YAAY,GAAW;IAClC;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,6DAA6D;QAC1E,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,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wBAAwB;iBACtC;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,WAAW;oBAAE,MAAM,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;gBACvE,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
|
+
* Cash Order Tools for MCP Server (Касові ордери)
|
|
3
|
+
*/
|
|
4
|
+
import type { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Cash Order tool definitions
|
|
7
|
+
*/
|
|
8
|
+
export declare const cashOrderTools: Tool[];
|
|
9
|
+
type AnyClient = any;
|
|
10
|
+
/**
|
|
11
|
+
* Handle cash order tool calls
|
|
12
|
+
*/
|
|
13
|
+
export declare function handleCashOrderTool(toolName: string, args: Record<string, unknown>, client: AnyClient): Promise<{
|
|
14
|
+
content: Array<{
|
|
15
|
+
type: "text";
|
|
16
|
+
text: string;
|
|
17
|
+
}>;
|
|
18
|
+
}>;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=cashOrder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cashOrder.d.ts","sourceRoot":"","sources":["../../src/tools/cashOrder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAI/D;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,IAAI,EA+BhC,CAAC;AAGF,KAAK,SAAS,GAAG,GAAG,CAAC;AAErB;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,SAAS;;;;;GAwBlB"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Cash Order Tools for MCP Server (Касові ордери)
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.cashOrderTools = void 0;
|
|
7
|
+
exports.handleCashOrderTool = handleCashOrderTool;
|
|
8
|
+
const error_handler_js_1 = require("../utils/error-handler.js");
|
|
9
|
+
const logger_js_1 = require("../utils/logger.js");
|
|
10
|
+
/**
|
|
11
|
+
* Cash Order tool definitions
|
|
12
|
+
*/
|
|
13
|
+
exports.cashOrderTools = [
|
|
14
|
+
{
|
|
15
|
+
name: 'cash_order_list',
|
|
16
|
+
description: 'List cash orders (Касові ордери) 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
|
+
type: {
|
|
29
|
+
type: 'string',
|
|
30
|
+
description: 'Order type: incoming or outgoing',
|
|
31
|
+
enum: ['incoming', 'outgoing'],
|
|
32
|
+
},
|
|
33
|
+
dateFrom: {
|
|
34
|
+
type: 'string',
|
|
35
|
+
description: 'Filter from date (YYYY-MM-DD)',
|
|
36
|
+
},
|
|
37
|
+
dateTo: {
|
|
38
|
+
type: 'string',
|
|
39
|
+
description: 'Filter to date (YYYY-MM-DD)',
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
];
|
|
45
|
+
/**
|
|
46
|
+
* Handle cash order tool calls
|
|
47
|
+
*/
|
|
48
|
+
async function handleCashOrderTool(toolName, args, client) {
|
|
49
|
+
logger_js_1.logger.debug(`Handling tool: ${toolName}`, args);
|
|
50
|
+
try {
|
|
51
|
+
switch (toolName) {
|
|
52
|
+
case 'cash_order_list': {
|
|
53
|
+
const params = {};
|
|
54
|
+
if (args.page)
|
|
55
|
+
params.page = args.page;
|
|
56
|
+
if (args.limit)
|
|
57
|
+
params.limit = args.limit;
|
|
58
|
+
if (args.type)
|
|
59
|
+
params['filter[type]'] = args.type;
|
|
60
|
+
if (args.dateFrom)
|
|
61
|
+
params['filter[date][from]'] = args.dateFrom;
|
|
62
|
+
if (args.dateTo)
|
|
63
|
+
params['filter[date][to]'] = args.dateTo;
|
|
64
|
+
const result = await client.cashOrders.list(params);
|
|
65
|
+
return (0, error_handler_js_1.formatSuccess)(result);
|
|
66
|
+
}
|
|
67
|
+
default:
|
|
68
|
+
return (0, error_handler_js_1.formatError)(new Error(`Unknown cash order tool: ${toolName}`));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
return (0, error_handler_js_1.formatError)(error);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=cashOrder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cashOrder.js","sourceRoot":"","sources":["../../src/tools/cashOrder.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAgDH,kDA2BC;AAxED,gEAAuE;AACvE,kDAA4C;AAE5C;;GAEG;AACU,QAAA,cAAc,GAAW;IACpC;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,kDAAkD;QAC/D,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,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kCAAkC;oBAC/C,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;iBAC/B;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,mBAAmB,CACvC,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,iBAAiB,CAAC,CAAC,CAAC;gBACvB,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,IAAI;oBAAE,MAAM,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClD,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,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACpD,OAAO,IAAA,gCAAa,EAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;YAED;gBACE,OAAO,IAAA,8BAAW,EAAC,IAAI,KAAK,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC1E,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
|
+
* Category Tools for MCP Server
|
|
3
|
+
*/
|
|
4
|
+
import type { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Category tool definitions
|
|
7
|
+
*/
|
|
8
|
+
export declare const categoryTools: Tool[];
|
|
9
|
+
type AnyClient = any;
|
|
10
|
+
/**
|
|
11
|
+
* Handle category tool calls
|
|
12
|
+
*/
|
|
13
|
+
export declare function handleCategoryTool(toolName: string, args: Record<string, unknown>, client: AnyClient): Promise<{
|
|
14
|
+
content: Array<{
|
|
15
|
+
type: "text";
|
|
16
|
+
text: string;
|
|
17
|
+
}>;
|
|
18
|
+
}>;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=category.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"category.d.ts","sourceRoot":"","sources":["../../src/tools/category.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAI/D;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,IAAI,EAsD/B,CAAC;AAGF,KAAK,SAAS,GAAG,GAAG,CAAC;AAErB;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,SAAS;;;;;GA6BlB"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Category Tools for MCP Server
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.categoryTools = void 0;
|
|
7
|
+
exports.handleCategoryTool = handleCategoryTool;
|
|
8
|
+
const error_handler_js_1 = require("../utils/error-handler.js");
|
|
9
|
+
const logger_js_1 = require("../utils/logger.js");
|
|
10
|
+
/**
|
|
11
|
+
* Category tool definitions
|
|
12
|
+
*/
|
|
13
|
+
exports.categoryTools = [
|
|
14
|
+
{
|
|
15
|
+
name: 'category_update',
|
|
16
|
+
description: 'Add or update product categories in SalesDrive',
|
|
17
|
+
inputSchema: {
|
|
18
|
+
type: 'object',
|
|
19
|
+
properties: {
|
|
20
|
+
categories: {
|
|
21
|
+
type: 'array',
|
|
22
|
+
description: 'Array of categories to add/update',
|
|
23
|
+
items: {
|
|
24
|
+
type: 'object',
|
|
25
|
+
properties: {
|
|
26
|
+
id: {
|
|
27
|
+
type: 'number',
|
|
28
|
+
description: 'Category ID (for update, omit for create)',
|
|
29
|
+
},
|
|
30
|
+
name: {
|
|
31
|
+
type: 'string',
|
|
32
|
+
description: 'Category name',
|
|
33
|
+
},
|
|
34
|
+
parentId: {
|
|
35
|
+
type: 'number',
|
|
36
|
+
description: 'Parent category ID (0 for root)',
|
|
37
|
+
},
|
|
38
|
+
externalId: {
|
|
39
|
+
type: 'string',
|
|
40
|
+
description: 'External ID from your system',
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
required: ['name'],
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
required: ['categories'],
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: 'category_delete',
|
|
52
|
+
description: 'Delete product categories from SalesDrive',
|
|
53
|
+
inputSchema: {
|
|
54
|
+
type: 'object',
|
|
55
|
+
properties: {
|
|
56
|
+
categoryIds: {
|
|
57
|
+
type: 'array',
|
|
58
|
+
description: 'Array of category IDs to delete',
|
|
59
|
+
items: {
|
|
60
|
+
type: 'number',
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
required: ['categoryIds'],
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
];
|
|
68
|
+
/**
|
|
69
|
+
* Handle category tool calls
|
|
70
|
+
*/
|
|
71
|
+
async function handleCategoryTool(toolName, args, client) {
|
|
72
|
+
logger_js_1.logger.debug(`Handling tool: ${toolName}`, args);
|
|
73
|
+
try {
|
|
74
|
+
switch (toolName) {
|
|
75
|
+
case 'category_update': {
|
|
76
|
+
const categories = args.categories;
|
|
77
|
+
const result = await client.categories.update(categories);
|
|
78
|
+
return (0, error_handler_js_1.formatSuccess)(result);
|
|
79
|
+
}
|
|
80
|
+
case 'category_delete': {
|
|
81
|
+
const categoryIds = args.categoryIds;
|
|
82
|
+
const result = await client.categories.delete(categoryIds);
|
|
83
|
+
return (0, error_handler_js_1.formatSuccess)(result);
|
|
84
|
+
}
|
|
85
|
+
default:
|
|
86
|
+
return (0, error_handler_js_1.formatError)(new Error(`Unknown category tool: ${toolName}`));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
return (0, error_handler_js_1.formatError)(error);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=category.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"category.js","sourceRoot":"","sources":["../../src/tools/category.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAuEH,gDAgCC;AApGD,gEAAuE;AACvE,kDAA4C;AAE5C;;GAEG;AACU,QAAA,aAAa,GAAW;IACnC;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,gDAAgD;QAC7D,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,EAAE,EAAE;gCACF,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,2CAA2C;6BACzD;4BACD,IAAI,EAAE;gCACJ,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,eAAe;6BAC7B;4BACD,QAAQ,EAAE;gCACR,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,iCAAiC;6BAC/C;4BACD,UAAU,EAAE;gCACV,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,8BAA8B;6BAC5C;yBACF;wBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;qBACnB;iBACF;aACF;YACD,QAAQ,EAAE,CAAC,YAAY,CAAC;SACzB;KACF;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,2CAA2C;QACxD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,WAAW,EAAE;oBACX,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,iCAAiC;oBAC9C,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;qBACf;iBACF;aACF;YACD,QAAQ,EAAE,CAAC,aAAa,CAAC;SAC1B;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,iBAAiB,CAAC,CAAC,CAAC;gBACvB,MAAM,UAAU,GAAG,IAAI,CAAC,UAKtB,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC1D,OAAO,IAAA,gCAAa,EAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;YAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAuB,CAAC;gBACjD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC3D,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,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check Tools for MCP Server (Fiscal Receipts / Чеки)
|
|
3
|
+
*/
|
|
4
|
+
import type { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Check tool definitions
|
|
7
|
+
*/
|
|
8
|
+
export declare const checkTools: Tool[];
|
|
9
|
+
type AnyClient = any;
|
|
10
|
+
/**
|
|
11
|
+
* Handle check tool calls
|
|
12
|
+
*/
|
|
13
|
+
export declare function handleCheckTool(toolName: string, args: Record<string, unknown>, client: AnyClient): Promise<{
|
|
14
|
+
content: Array<{
|
|
15
|
+
type: "text";
|
|
16
|
+
text: string;
|
|
17
|
+
}>;
|
|
18
|
+
}>;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/tools/check.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAI/D;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,IAAI,EA8B5B,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;;;;;GAwBlB"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Check Tools for MCP Server (Fiscal Receipts / Чеки)
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.checkTools = void 0;
|
|
7
|
+
exports.handleCheckTool = handleCheckTool;
|
|
8
|
+
const error_handler_js_1 = require("../utils/error-handler.js");
|
|
9
|
+
const logger_js_1 = require("../utils/logger.js");
|
|
10
|
+
/**
|
|
11
|
+
* Check tool definitions
|
|
12
|
+
*/
|
|
13
|
+
exports.checkTools = [
|
|
14
|
+
{
|
|
15
|
+
name: 'check_list',
|
|
16
|
+
description: 'List fiscal receipts/checks (Чеки) 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
|
+
dateFrom: {
|
|
33
|
+
type: 'string',
|
|
34
|
+
description: 'Filter from date (YYYY-MM-DD)',
|
|
35
|
+
},
|
|
36
|
+
dateTo: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
description: 'Filter to date (YYYY-MM-DD)',
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
];
|
|
44
|
+
/**
|
|
45
|
+
* Handle check tool calls
|
|
46
|
+
*/
|
|
47
|
+
async function handleCheckTool(toolName, args, client) {
|
|
48
|
+
logger_js_1.logger.debug(`Handling tool: ${toolName}`, args);
|
|
49
|
+
try {
|
|
50
|
+
switch (toolName) {
|
|
51
|
+
case 'check_list': {
|
|
52
|
+
const params = {};
|
|
53
|
+
if (args.page)
|
|
54
|
+
params.page = args.page;
|
|
55
|
+
if (args.limit)
|
|
56
|
+
params.limit = args.limit;
|
|
57
|
+
if (args.orderId)
|
|
58
|
+
params['filter[orderId]'] = args.orderId;
|
|
59
|
+
if (args.dateFrom)
|
|
60
|
+
params['filter[date][from]'] = args.dateFrom;
|
|
61
|
+
if (args.dateTo)
|
|
62
|
+
params['filter[date][to]'] = args.dateTo;
|
|
63
|
+
const result = await client.checks.list(params);
|
|
64
|
+
return (0, error_handler_js_1.formatSuccess)(result);
|
|
65
|
+
}
|
|
66
|
+
default:
|
|
67
|
+
return (0, error_handler_js_1.formatError)(new Error(`Unknown check tool: ${toolName}`));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
return (0, error_handler_js_1.formatError)(error);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/tools/check.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AA+CH,0CA2BC;AAvED,gEAAuE;AACvE,kDAA4C;AAE5C;;GAEG;AACU,QAAA,UAAU,GAAW;IAChC;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,oDAAoD;QACjE,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,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,eAAe,CACnC,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,YAAY,CAAC,CAAC,CAAC;gBAClB,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,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,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChD,OAAO,IAAA,gCAAa,EAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;YAED;gBACE,OAAO,IAAA,8BAAW,EAAC,IAAI,KAAK,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC,CAAC;QACrE,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
|
+
* Contract Tools for MCP Server (Договори)
|
|
3
|
+
*/
|
|
4
|
+
import type { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Contract tool definitions
|
|
7
|
+
*/
|
|
8
|
+
export declare const contractTools: Tool[];
|
|
9
|
+
type AnyClient = any;
|
|
10
|
+
/**
|
|
11
|
+
* Handle contract tool calls
|
|
12
|
+
*/
|
|
13
|
+
export declare function handleContractTool(toolName: string, args: Record<string, unknown>, client: AnyClient): Promise<{
|
|
14
|
+
content: Array<{
|
|
15
|
+
type: "text";
|
|
16
|
+
text: string;
|
|
17
|
+
}>;
|
|
18
|
+
}>;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/tools/contract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAI/D;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,IAAI,EA8B/B,CAAC;AAGF,KAAK,SAAS,GAAG,GAAG,CAAC;AAErB;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,SAAS;;;;;GAwBlB"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Contract Tools for MCP Server (Договори)
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.contractTools = void 0;
|
|
7
|
+
exports.handleContractTool = handleContractTool;
|
|
8
|
+
const error_handler_js_1 = require("../utils/error-handler.js");
|
|
9
|
+
const logger_js_1 = require("../utils/logger.js");
|
|
10
|
+
/**
|
|
11
|
+
* Contract tool definitions
|
|
12
|
+
*/
|
|
13
|
+
exports.contractTools = [
|
|
14
|
+
{
|
|
15
|
+
name: 'contract_list',
|
|
16
|
+
description: 'List contracts (Договори) 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
|
+
contactId: {
|
|
29
|
+
type: 'number',
|
|
30
|
+
description: 'Filter by contact ID',
|
|
31
|
+
},
|
|
32
|
+
dateFrom: {
|
|
33
|
+
type: 'string',
|
|
34
|
+
description: 'Filter from date (YYYY-MM-DD)',
|
|
35
|
+
},
|
|
36
|
+
dateTo: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
description: 'Filter to date (YYYY-MM-DD)',
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
];
|
|
44
|
+
/**
|
|
45
|
+
* Handle contract tool calls
|
|
46
|
+
*/
|
|
47
|
+
async function handleContractTool(toolName, args, client) {
|
|
48
|
+
logger_js_1.logger.debug(`Handling tool: ${toolName}`, args);
|
|
49
|
+
try {
|
|
50
|
+
switch (toolName) {
|
|
51
|
+
case 'contract_list': {
|
|
52
|
+
const params = {};
|
|
53
|
+
if (args.page)
|
|
54
|
+
params.page = args.page;
|
|
55
|
+
if (args.limit)
|
|
56
|
+
params.limit = args.limit;
|
|
57
|
+
if (args.contactId)
|
|
58
|
+
params['filter[contactId]'] = args.contactId;
|
|
59
|
+
if (args.dateFrom)
|
|
60
|
+
params['filter[date][from]'] = args.dateFrom;
|
|
61
|
+
if (args.dateTo)
|
|
62
|
+
params['filter[date][to]'] = args.dateTo;
|
|
63
|
+
const result = await client.contracts.list(params);
|
|
64
|
+
return (0, error_handler_js_1.formatSuccess)(result);
|
|
65
|
+
}
|
|
66
|
+
default:
|
|
67
|
+
return (0, error_handler_js_1.formatError)(new Error(`Unknown contract tool: ${toolName}`));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
return (0, error_handler_js_1.formatError)(error);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/tools/contract.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AA+CH,gDA2BC;AAvED,gEAAuE;AACvE,kDAA4C;AAE5C;;GAEG;AACU,QAAA,aAAa,GAAW;IACnC;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,2CAA2C;QACxD,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,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,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,eAAe,CAAC,CAAC,CAAC;gBACrB,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,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,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnD,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,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Currency Tools for MCP Server
|
|
3
|
+
*/
|
|
4
|
+
import type { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Currency tool definitions
|
|
7
|
+
*/
|
|
8
|
+
export declare const currencyTools: Tool[];
|
|
9
|
+
type AnyClient = any;
|
|
10
|
+
/**
|
|
11
|
+
* Handle currency tool calls
|
|
12
|
+
*/
|
|
13
|
+
export declare function handleCurrencyTool(toolName: string, args: Record<string, unknown>, client: AnyClient): Promise<{
|
|
14
|
+
content: Array<{
|
|
15
|
+
type: "text";
|
|
16
|
+
text: string;
|
|
17
|
+
}>;
|
|
18
|
+
}>;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=currency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"currency.d.ts","sourceRoot":"","sources":["../../src/tools/currency.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAI/D;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,IAAI,EAqC/B,CAAC;AAGF,KAAK,SAAS,GAAG,GAAG,CAAC;AAErB;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,SAAS;;;;;GAuBlB"}
|