@atlas-kitchen/atlas-mcp 1.0.3 → 1.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/.env.example +7 -3
- package/CLAUDE.md +72 -63
- package/README.md +85 -103
- package/dist/auth.d.ts +1 -7
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +1 -26
- package/dist/auth.js.map +1 -1
- package/dist/client.d.ts +9 -5
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +117 -806
- package/dist/client.js.map +1 -1
- package/dist/index.js +97 -8
- package/dist/index.js.map +1 -1
- package/dist/token-cache.d.ts +11 -0
- package/dist/token-cache.d.ts.map +1 -0
- package/dist/token-cache.js +34 -0
- package/dist/token-cache.js.map +1 -0
- package/dist/tools/auth.d.ts.map +1 -1
- package/dist/tools/auth.js +74 -84
- package/dist/tools/auth.js.map +1 -1
- package/dist/tools/menu.d.ts +1 -2
- package/dist/tools/menu.d.ts.map +1 -1
- package/dist/tools/menu.js +6 -121
- package/dist/tools/menu.js.map +1 -1
- package/dist/tools/orders.d.ts.map +1 -1
- package/dist/tools/orders.js +29 -41
- package/dist/tools/orders.js.map +1 -1
- package/dist/tools/reports.d.ts +1 -2
- package/dist/tools/reports.d.ts.map +1 -1
- package/dist/tools/reports.js +24 -82
- package/dist/tools/reports.js.map +1 -1
- package/dist/types/atlas.d.ts +4 -0
- package/dist/types/atlas.d.ts.map +1 -1
- package/package.json +11 -2
- package/dist/polyfills.d.ts +0 -2
- package/dist/polyfills.d.ts.map +0 -1
package/dist/tools/menu.js
CHANGED
|
@@ -1,111 +1,28 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
const GetMenusSchema = z.object({
|
|
3
|
-
outletId: z.number().optional(),
|
|
4
|
-
servingDate: z.string().optional(),
|
|
5
|
-
timeslotType: z.string().optional(),
|
|
6
|
-
});
|
|
7
|
-
const GetOptimizedMenusSchema = z.object({
|
|
8
|
-
outletId: z.number(),
|
|
9
|
-
servingDate: z.string(),
|
|
10
|
-
});
|
|
11
2
|
const GetItemsSchema = z.object({
|
|
12
3
|
search: z.string().optional(),
|
|
13
4
|
brandId: z.number().optional(),
|
|
14
5
|
archived: z.boolean().optional(),
|
|
15
|
-
page: z.number().
|
|
16
|
-
perPage: z.number().
|
|
6
|
+
page: z.number().min(1).default(1),
|
|
7
|
+
perPage: z.number().min(1).max(100).default(20),
|
|
17
8
|
});
|
|
18
|
-
export function createMenuTools(client
|
|
9
|
+
export function createMenuTools(client) {
|
|
19
10
|
return [
|
|
20
|
-
{
|
|
21
|
-
name: 'atlas_get_menus',
|
|
22
|
-
description: 'List available menus for a specific outlet and/or serving date',
|
|
23
|
-
inputSchema: {
|
|
24
|
-
type: 'object',
|
|
25
|
-
properties: {
|
|
26
|
-
outletId: { type: 'number', description: 'Outlet ID to filter menus' },
|
|
27
|
-
servingDate: { type: 'string', description: 'Serving date in ISO format (YYYY-MM-DD)' },
|
|
28
|
-
timeslotType: { type: 'string', description: 'Timeslot type filter' },
|
|
29
|
-
},
|
|
30
|
-
},
|
|
31
|
-
handler: async (input) => {
|
|
32
|
-
const { outletId, servingDate, timeslotType } = GetMenusSchema.parse(input);
|
|
33
|
-
if (!authManager.isAuthenticated()) {
|
|
34
|
-
return {
|
|
35
|
-
success: false,
|
|
36
|
-
error: 'Not authenticated. Please login first.',
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
try {
|
|
40
|
-
const menus = await client.getMenus(outletId, servingDate, timeslotType);
|
|
41
|
-
return {
|
|
42
|
-
success: true,
|
|
43
|
-
menus,
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
catch (error) {
|
|
47
|
-
return {
|
|
48
|
-
success: false,
|
|
49
|
-
error: error.message || 'Failed to fetch menus',
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
name: 'atlas_get_optimized_menus',
|
|
56
|
-
description: 'Get optimized menu structure with sections and items for a specific outlet and date',
|
|
57
|
-
inputSchema: {
|
|
58
|
-
type: 'object',
|
|
59
|
-
properties: {
|
|
60
|
-
outletId: { type: 'number', description: 'Outlet ID (required)' },
|
|
61
|
-
servingDate: { type: 'string', description: 'Serving date in ISO format YYYY-MM-DD (required)' },
|
|
62
|
-
},
|
|
63
|
-
required: ['outletId', 'servingDate'],
|
|
64
|
-
},
|
|
65
|
-
handler: async (input) => {
|
|
66
|
-
const { outletId, servingDate } = GetOptimizedMenusSchema.parse(input);
|
|
67
|
-
if (!authManager.isAuthenticated()) {
|
|
68
|
-
return {
|
|
69
|
-
success: false,
|
|
70
|
-
error: 'Not authenticated. Please login first.',
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
try {
|
|
74
|
-
const menus = await client.getOptimizedMenus(outletId, servingDate);
|
|
75
|
-
return {
|
|
76
|
-
success: true,
|
|
77
|
-
menus,
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
catch (error) {
|
|
81
|
-
return {
|
|
82
|
-
success: false,
|
|
83
|
-
error: error.message || 'Failed to fetch optimized menus',
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
},
|
|
87
|
-
},
|
|
88
11
|
{
|
|
89
12
|
name: 'atlas_get_items',
|
|
90
|
-
description: '
|
|
13
|
+
description: 'Search and list item catalog entries with pagination. Returns item ID, label, price, type, and tags. Use the search parameter to find items by name. Default 20 items per page, max 100.',
|
|
91
14
|
inputSchema: {
|
|
92
15
|
type: 'object',
|
|
93
16
|
properties: {
|
|
94
17
|
search: { type: 'string', description: 'Search term for items' },
|
|
95
18
|
brandId: { type: 'number', description: 'Brand ID to filter items' },
|
|
96
19
|
archived: { type: 'boolean', description: 'Include archived items (default: false)' },
|
|
97
|
-
page: { type: 'number', description: 'Page number for pagination' },
|
|
98
|
-
perPage: { type: 'number', description: 'Items per page (default: 20)' },
|
|
20
|
+
page: { type: 'number', description: 'Page number for pagination (starts at 1, default: 1)' },
|
|
21
|
+
perPage: { type: 'number', description: 'Items per page (1-100, default: 20)' },
|
|
99
22
|
},
|
|
100
23
|
},
|
|
101
24
|
handler: async (input) => {
|
|
102
25
|
const filters = GetItemsSchema.parse(input);
|
|
103
|
-
if (!authManager.isAuthenticated()) {
|
|
104
|
-
return {
|
|
105
|
-
success: false,
|
|
106
|
-
error: 'Not authenticated. Please login first.',
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
26
|
try {
|
|
110
27
|
const response = await client.getItems(filters);
|
|
111
28
|
return {
|
|
@@ -124,38 +41,6 @@ export function createMenuTools(client, authManager) {
|
|
|
124
41
|
}
|
|
125
42
|
},
|
|
126
43
|
},
|
|
127
|
-
{
|
|
128
|
-
name: 'atlas_get_menu_sections',
|
|
129
|
-
description: 'Get menu structure with sections',
|
|
130
|
-
inputSchema: {
|
|
131
|
-
type: 'object',
|
|
132
|
-
properties: {},
|
|
133
|
-
},
|
|
134
|
-
handler: async () => {
|
|
135
|
-
if (!authManager.isAuthenticated()) {
|
|
136
|
-
return {
|
|
137
|
-
success: false,
|
|
138
|
-
error: 'Not authenticated. Please login first.',
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
try {
|
|
142
|
-
// This would need a more detailed query in the client
|
|
143
|
-
// For now, we'll return menus which can include sections
|
|
144
|
-
const menus = await client.getMenus();
|
|
145
|
-
return {
|
|
146
|
-
success: true,
|
|
147
|
-
menus,
|
|
148
|
-
message: 'Menu sections can be accessed through individual menu queries',
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
|
-
catch (error) {
|
|
152
|
-
return {
|
|
153
|
-
success: false,
|
|
154
|
-
error: error.message || 'Failed to fetch menu sections',
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
|
-
},
|
|
158
|
-
},
|
|
159
44
|
];
|
|
160
45
|
}
|
|
161
46
|
//# sourceMappingURL=menu.js.map
|
package/dist/tools/menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/tools/menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/tools/menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAChD,CAAC,CAAC;AAEH,MAAM,UAAU,eAAe,CAAC,MAAmB;IACjD,OAAO;QACL;YACE,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,0LAA0L;YACvM,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;oBAChE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;oBACpE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,yCAAyC,EAAE;oBACrF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sDAAsD,EAAE;oBAC7F,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE;iBAChF;aACF;YACD,OAAO,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;gBAChC,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAE5C,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAEhD,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,KAAK,EAAE,QAAQ,CAAC,KAAK;wBACrB,UAAU,EAAE,QAAQ,CAAC,UAAU;wBAC/B,IAAI,EAAE,QAAQ,CAAC,IAAI;wBACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;qBAC1B,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,uBAAuB;qBAChD,CAAC;gBACJ,CAAC;YACH,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orders.d.ts","sourceRoot":"","sources":["../../src/tools/orders.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"orders.d.ts","sourceRoot":"","sources":["../../src/tools/orders.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,UAAU,IAAI;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,GAAG,CAAC;IACjB,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CAC3C;AA2BD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI,EAAE,CA2ItF"}
|
package/dist/tools/orders.js
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
const OrderStateEnum = z.enum([
|
|
3
|
+
'unpaid',
|
|
4
|
+
'confirmed',
|
|
5
|
+
'dispatched',
|
|
6
|
+
'ready_for_pickup',
|
|
7
|
+
'completed',
|
|
8
|
+
'cancelled',
|
|
9
|
+
]);
|
|
2
10
|
const GetOrdersSchema = z.object({
|
|
3
11
|
startDate: z.string().optional(),
|
|
4
12
|
endDate: z.string().optional(),
|
|
5
|
-
state:
|
|
13
|
+
state: OrderStateEnum.optional(),
|
|
6
14
|
limit: z.number().min(1).max(100).default(20),
|
|
7
|
-
|
|
15
|
+
page: z.number().min(1).optional(),
|
|
8
16
|
});
|
|
9
17
|
const GetOrderSchema = z.object({
|
|
10
18
|
orderId: z.string(),
|
|
@@ -16,28 +24,26 @@ export function createOrderTools(client, authManager) {
|
|
|
16
24
|
return [
|
|
17
25
|
{
|
|
18
26
|
name: 'atlas_get_orders',
|
|
19
|
-
description: 'List orders with optional filters',
|
|
27
|
+
description: 'List orders with optional filters. Returns a paginated summary: order ID, state, date, fulfilment type, contact info, items, and payment total. Use startDate/endDate (YYYY-MM-DD) to scope by serving date. Use atlas_get_order for full details on a single order.',
|
|
20
28
|
inputSchema: {
|
|
21
29
|
type: 'object',
|
|
22
30
|
properties: {
|
|
23
|
-
startDate: { type: 'string', description: 'Start date for filtering (ISO format)' },
|
|
24
|
-
endDate: { type: 'string', description: 'End date for filtering (ISO format)' },
|
|
25
|
-
state: {
|
|
31
|
+
startDate: { type: 'string', description: 'Start date for filtering (ISO format YYYY-MM-DD)' },
|
|
32
|
+
endDate: { type: 'string', description: 'End date for filtering (ISO format YYYY-MM-DD)' },
|
|
33
|
+
state: {
|
|
34
|
+
type: 'string',
|
|
35
|
+
enum: ['unpaid', 'confirmed', 'dispatched', 'ready_for_pickup', 'completed', 'cancelled'],
|
|
36
|
+
description: 'Order state filter',
|
|
37
|
+
},
|
|
26
38
|
limit: { type: 'number', description: 'Number of orders to return (1-100, default: 20)' },
|
|
27
|
-
|
|
39
|
+
page: { type: 'number', description: 'Page number for pagination (starts at 1)' },
|
|
28
40
|
},
|
|
29
41
|
},
|
|
30
42
|
handler: async (input) => {
|
|
31
|
-
const { startDate, endDate, state, limit,
|
|
32
|
-
if (!authManager.isAuthenticated()) {
|
|
33
|
-
return {
|
|
34
|
-
success: false,
|
|
35
|
-
error: 'Not authenticated. Please login first.',
|
|
36
|
-
};
|
|
37
|
-
}
|
|
43
|
+
const { startDate, endDate, state, limit, page } = GetOrdersSchema.parse(input);
|
|
38
44
|
try {
|
|
39
45
|
const filters = {
|
|
40
|
-
|
|
46
|
+
perPage: limit,
|
|
41
47
|
};
|
|
42
48
|
if (startDate)
|
|
43
49
|
filters.startDate = startDate;
|
|
@@ -45,8 +51,8 @@ export function createOrderTools(client, authManager) {
|
|
|
45
51
|
filters.endDate = endDate;
|
|
46
52
|
if (state)
|
|
47
53
|
filters.state = state;
|
|
48
|
-
if (
|
|
49
|
-
filters.
|
|
54
|
+
if (page)
|
|
55
|
+
filters.page = page;
|
|
50
56
|
const response = await client.getOrders(filters);
|
|
51
57
|
return {
|
|
52
58
|
success: true,
|
|
@@ -66,22 +72,16 @@ export function createOrderTools(client, authManager) {
|
|
|
66
72
|
},
|
|
67
73
|
{
|
|
68
74
|
name: 'atlas_get_order',
|
|
69
|
-
description: 'Get
|
|
75
|
+
description: 'Get full details of a single order by its ID, including line items with modifiers, payment breakdown, discounts, refunds, customer info, and delivery address. Use atlas_get_orders first to find the order ID.',
|
|
70
76
|
inputSchema: {
|
|
71
77
|
type: 'object',
|
|
72
78
|
properties: {
|
|
73
|
-
orderId: { type: 'string', description: 'Order ID
|
|
79
|
+
orderId: { type: 'string', description: 'Order ID (numeric string)' },
|
|
74
80
|
},
|
|
75
81
|
required: ['orderId'],
|
|
76
82
|
},
|
|
77
83
|
handler: async (input) => {
|
|
78
84
|
const { orderId } = GetOrderSchema.parse(input);
|
|
79
|
-
if (!authManager.isAuthenticated()) {
|
|
80
|
-
return {
|
|
81
|
-
success: false,
|
|
82
|
-
error: 'Not authenticated. Please login first.',
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
85
|
try {
|
|
86
86
|
const order = await client.getOrder(orderId);
|
|
87
87
|
return {
|
|
@@ -99,22 +99,16 @@ export function createOrderTools(client, authManager) {
|
|
|
99
99
|
},
|
|
100
100
|
{
|
|
101
101
|
name: 'atlas_get_cart',
|
|
102
|
-
description: 'Get
|
|
102
|
+
description: 'Get details of a specific POS cart by its ID, including items, payment breakdown, billing status, and customer info. Requires a specific outlet context — use atlas_switch_merchant to set one if needed.',
|
|
103
103
|
inputSchema: {
|
|
104
104
|
type: 'object',
|
|
105
105
|
properties: {
|
|
106
|
-
cartId: { type: 'string', description: 'Cart ID' },
|
|
106
|
+
cartId: { type: 'string', description: 'Cart ID (numeric string)' },
|
|
107
107
|
},
|
|
108
108
|
required: ['cartId'],
|
|
109
109
|
},
|
|
110
110
|
handler: async (input) => {
|
|
111
111
|
const { cartId } = GetCartSchema.parse(input);
|
|
112
|
-
if (!authManager.isAuthenticated()) {
|
|
113
|
-
return {
|
|
114
|
-
success: false,
|
|
115
|
-
error: 'Not authenticated. Please login first.',
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
112
|
try {
|
|
119
113
|
const cart = await client.getCart(cartId);
|
|
120
114
|
return {
|
|
@@ -132,22 +126,16 @@ export function createOrderTools(client, authManager) {
|
|
|
132
126
|
},
|
|
133
127
|
{
|
|
134
128
|
name: 'atlas_get_pos_carts',
|
|
135
|
-
description: 'List all open POS carts',
|
|
129
|
+
description: 'List all open POS carts for the current outlet. Returns cart summaries: ID, table, fulfilment type, item status, and customer. Requires a specific outlet — use atlas_switch_merchant with an outletId first.',
|
|
136
130
|
inputSchema: {
|
|
137
131
|
type: 'object',
|
|
138
132
|
properties: {},
|
|
139
133
|
},
|
|
140
134
|
handler: async () => {
|
|
141
|
-
if (!authManager.isAuthenticated()) {
|
|
142
|
-
return {
|
|
143
|
-
success: false,
|
|
144
|
-
error: 'Not authenticated. Please login first.',
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
135
|
if (!authManager.getOutletId()) {
|
|
148
136
|
return {
|
|
149
137
|
success: false,
|
|
150
|
-
error: '
|
|
138
|
+
error: 'POS carts require a specific outlet. Use atlas_switch_merchant with an outletId, or set ATLAS_OUTLET_ID in your env config.',
|
|
151
139
|
};
|
|
152
140
|
}
|
|
153
141
|
try {
|
package/dist/tools/orders.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orders.js","sourceRoot":"","sources":["../../src/tools/orders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"orders.js","sourceRoot":"","sources":["../../src/tools/orders.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/reports.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { AtlasClient } from '../client.js';
|
|
2
|
-
import { AuthManager } from '../auth.js';
|
|
3
2
|
interface Tool {
|
|
4
3
|
name: string;
|
|
5
4
|
description: string;
|
|
6
5
|
inputSchema: any;
|
|
7
6
|
handler: (input: unknown) => Promise<any>;
|
|
8
7
|
}
|
|
9
|
-
export declare function createReportingTools(client: AtlasClient
|
|
8
|
+
export declare function createReportingTools(client: AtlasClient): Tool[];
|
|
10
9
|
export {};
|
|
11
10
|
//# sourceMappingURL=reports.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reports.d.ts","sourceRoot":"","sources":["../../src/tools/reports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"reports.d.ts","sourceRoot":"","sources":["../../src/tools/reports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,UAAU,IAAI;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,GAAG,CAAC;IACjB,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CAC3C;AAiCD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,EAAE,CAyDhE"}
|
package/dist/tools/reports.js
CHANGED
|
@@ -11,34 +11,38 @@ const GetSalesReportSchema = z.object({
|
|
|
11
11
|
orderSources: z.array(z.string()).optional(),
|
|
12
12
|
diningOptions: z.array(z.string()).optional(),
|
|
13
13
|
});
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
14
|
+
function validateDateRange(startDate, endDate, maxDays) {
|
|
15
|
+
const start = new Date(startDate);
|
|
16
|
+
const end = new Date(endDate);
|
|
17
|
+
if (isNaN(start.getTime()) || isNaN(end.getTime())) {
|
|
18
|
+
return 'Invalid date format. Use YYYY-MM-DD.';
|
|
19
|
+
}
|
|
20
|
+
if (end < start) {
|
|
21
|
+
return 'endDate must not be before startDate.';
|
|
22
|
+
}
|
|
23
|
+
const diffMs = end.getTime() - start.getTime();
|
|
24
|
+
const diffDays = diffMs / (1000 * 60 * 60 * 24);
|
|
25
|
+
if (diffDays > maxDays) {
|
|
26
|
+
return `Date range must not exceed ${maxDays} days. Requested: ${Math.ceil(diffDays)} days.`;
|
|
27
|
+
}
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
export function createReportingTools(client) {
|
|
27
31
|
return [
|
|
28
32
|
{
|
|
29
33
|
name: 'atlas_get_sales_report',
|
|
30
|
-
description: 'Get sales summary report
|
|
34
|
+
description: 'Get a sales summary report for a date range (max 90 days). Returns sales totals, breakdowns by day/hour, payment methods, outlets, dining options, order sources, promotions, and brands. Both startDate and endDate are required (YYYY-MM-DD).',
|
|
31
35
|
inputSchema: {
|
|
32
36
|
type: 'object',
|
|
33
37
|
properties: {
|
|
34
|
-
startDate: { type: 'string', description: 'Start date (ISO format YYYY-MM-DD)' },
|
|
35
|
-
endDate: { type: 'string', description: 'End date (ISO format YYYY-MM-DD)' },
|
|
38
|
+
startDate: { type: 'string', description: 'Start date (ISO format YYYY-MM-DD, required)' },
|
|
39
|
+
endDate: { type: 'string', description: 'End date (ISO format YYYY-MM-DD, required). Max 90 days from startDate.' },
|
|
36
40
|
brandIds: { type: 'array', items: { type: 'number' }, description: 'Filter by brand IDs' },
|
|
37
41
|
outletIds: { type: 'array', items: { type: 'number' }, description: 'Filter by outlet IDs' },
|
|
38
42
|
stationIds: { type: 'array', items: { type: 'number' }, description: 'Filter by station IDs' },
|
|
39
43
|
promoCodes: { type: 'array', items: { type: 'string' }, description: 'Filter by promo codes' },
|
|
40
44
|
includeCancelledOrders: { type: 'boolean', description: 'Include cancelled orders (default: false)' },
|
|
41
|
-
daysOfWeek: { type: 'array', items: { type: 'number' }, description: 'ISO day of week (1
|
|
45
|
+
daysOfWeek: { type: 'array', items: { type: 'number' }, description: 'ISO day of week (1=Monday, 7=Sunday)' },
|
|
42
46
|
orderSources: { type: 'array', items: { type: 'string' }, description: 'Filter by order sources' },
|
|
43
47
|
diningOptions: { type: 'array', items: { type: 'string' }, description: 'Filter by dining options' },
|
|
44
48
|
},
|
|
@@ -47,14 +51,11 @@ export function createReportingTools(client, authManager) {
|
|
|
47
51
|
handler: async (input) => {
|
|
48
52
|
const parsed = GetSalesReportSchema.parse(input);
|
|
49
53
|
const { startDate, endDate, ...filterOptions } = parsed;
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
error: 'Not authenticated. Please login first.',
|
|
54
|
-
};
|
|
54
|
+
const dateError = validateDateRange(startDate, endDate, 90);
|
|
55
|
+
if (dateError) {
|
|
56
|
+
return { success: false, error: dateError };
|
|
55
57
|
}
|
|
56
58
|
try {
|
|
57
|
-
// Build filters object, only including provided values
|
|
58
59
|
const filters = {};
|
|
59
60
|
if (filterOptions.brandIds)
|
|
60
61
|
filters.brandIds = filterOptions.brandIds;
|
|
@@ -87,65 +88,6 @@ export function createReportingTools(client, authManager) {
|
|
|
87
88
|
}
|
|
88
89
|
},
|
|
89
90
|
},
|
|
90
|
-
{
|
|
91
|
-
name: 'atlas_get_product_insights',
|
|
92
|
-
description: 'Get product performance insights with required filters',
|
|
93
|
-
inputSchema: {
|
|
94
|
-
type: 'object',
|
|
95
|
-
properties: {
|
|
96
|
-
brandIds: { type: 'array', items: { type: 'number' }, description: 'Brand IDs (required)' },
|
|
97
|
-
outletIds: { type: 'array', items: { type: 'number' }, description: 'Outlet IDs (required)' },
|
|
98
|
-
itemTypes: { type: 'array', items: { type: 'string' }, description: 'Item types e.g. ["ITEM", "MODIFIER"] (required)' },
|
|
99
|
-
fulfilmentTypes: { type: 'array', items: { type: 'string' }, description: 'Fulfilment types e.g. ["DELIVERY", "PICKUP"] (required)' },
|
|
100
|
-
startDate: { type: 'string', description: 'Start date (ISO format YYYY-MM-DD)' },
|
|
101
|
-
endDate: { type: 'string', description: 'End date (ISO format YYYY-MM-DD)' },
|
|
102
|
-
sources: { type: 'array', items: { type: 'string' }, description: 'Order sources' },
|
|
103
|
-
itemTagIds: { type: 'array', items: { type: 'number' }, description: 'Item tag IDs' },
|
|
104
|
-
searchQuery: { type: 'string', description: 'Search query for product names' },
|
|
105
|
-
itemsToVisualize: { type: 'array', items: { type: 'string' }, description: 'Product names to visualize' },
|
|
106
|
-
},
|
|
107
|
-
required: ['brandIds', 'outletIds', 'itemTypes', 'fulfilmentTypes', 'startDate', 'endDate'],
|
|
108
|
-
},
|
|
109
|
-
handler: async (input) => {
|
|
110
|
-
const parsed = GetProductInsightsSchema.parse(input);
|
|
111
|
-
const { startDate, endDate, ...otherParams } = parsed;
|
|
112
|
-
if (!authManager.isAuthenticated()) {
|
|
113
|
-
return {
|
|
114
|
-
success: false,
|
|
115
|
-
error: 'Not authenticated. Please login first.',
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
try {
|
|
119
|
-
const params = {
|
|
120
|
-
brandIds: otherParams.brandIds,
|
|
121
|
-
outletIds: otherParams.outletIds,
|
|
122
|
-
itemTypes: otherParams.itemTypes,
|
|
123
|
-
fulfilmentTypes: otherParams.fulfilmentTypes,
|
|
124
|
-
servingDateBetween: { start_date: startDate, end_date: endDate },
|
|
125
|
-
};
|
|
126
|
-
// Only add optional parameters if they're provided
|
|
127
|
-
if (otherParams.sources)
|
|
128
|
-
params.sources = otherParams.sources;
|
|
129
|
-
if (otherParams.itemTagIds)
|
|
130
|
-
params.itemTagIds = otherParams.itemTagIds;
|
|
131
|
-
if (otherParams.searchQuery)
|
|
132
|
-
params.searchQuery = otherParams.searchQuery;
|
|
133
|
-
if (otherParams.itemsToVisualize)
|
|
134
|
-
params.itemsToVisualize = otherParams.itemsToVisualize;
|
|
135
|
-
const insights = await client.getProductInsights(params);
|
|
136
|
-
return {
|
|
137
|
-
success: true,
|
|
138
|
-
insights,
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
catch (error) {
|
|
142
|
-
return {
|
|
143
|
-
success: false,
|
|
144
|
-
error: error.message || 'Failed to fetch product insights',
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
},
|
|
148
|
-
},
|
|
149
91
|
];
|
|
150
92
|
}
|
|
151
93
|
//# sourceMappingURL=reports.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reports.js","sourceRoot":"","sources":["../../src/tools/reports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"reports.js","sourceRoot":"","sources":["../../src/tools/reports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1C,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1C,sBAAsB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9C,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1C,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5C,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC;AAEH,SAAS,iBAAiB,CAAC,SAAiB,EAAE,OAAe,EAAE,OAAe;IAC5E,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IAE9B,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QACnD,OAAO,sCAAsC,CAAC;IAChD,CAAC;IACD,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC;QAChB,OAAO,uCAAuC,CAAC;IACjD,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAChD,IAAI,QAAQ,GAAG,OAAO,EAAE,CAAC;QACvB,OAAO,8BAA8B,OAAO,qBAAqB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC/F,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAmB;IACtD,OAAO;QACL;YACE,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EAAE,iPAAiP;YAC9P,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8CAA8C,EAAE;oBAC1F,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yEAAyE,EAAE;oBACnH,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE;oBAC1F,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,sBAAsB,EAAE;oBAC5F,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,uBAAuB,EAAE;oBAC9F,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,uBAAuB,EAAE;oBAC9F,sBAAsB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,2CAA2C,EAAE;oBACrG,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,sCAAsC,EAAE;oBAC7G,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,yBAAyB,EAAE;oBAClG,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,0BAA0B,EAAE;iBACrG;gBACD,QAAQ,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC;aACnC;YACD,OAAO,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;gBAChC,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACjD,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,CAAC;gBAExD,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC5D,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBAC9C,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,OAAO,GAAQ,EAAE,CAAC;oBACxB,IAAI,aAAa,CAAC,QAAQ;wBAAE,OAAO,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;oBACtE,IAAI,aAAa,CAAC,SAAS;wBAAE,OAAO,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;oBACzE,IAAI,aAAa,CAAC,UAAU;wBAAE,OAAO,CAAC,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;oBAC5E,IAAI,aAAa,CAAC,UAAU;wBAAE,OAAO,CAAC,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;oBAC5E,IAAI,aAAa,CAAC,sBAAsB,KAAK,SAAS;wBAAE,OAAO,CAAC,sBAAsB,GAAG,aAAa,CAAC,sBAAsB,CAAC;oBAC9H,IAAI,aAAa,CAAC,UAAU;wBAAE,OAAO,CAAC,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;oBAC5E,IAAI,aAAa,CAAC,YAAY;wBAAE,OAAO,CAAC,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC;oBAClF,IAAI,aAAa,CAAC,aAAa;wBAAE,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC;oBAErF,MAAM,SAAS,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;oBAC/D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBAE/D,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,MAAM;qBACP,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,8BAA8B;qBACvD,CAAC;gBACJ,CAAC;YACH,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
|
package/dist/types/atlas.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atlas.d.ts","sourceRoot":"","sources":["../../src/types/atlas.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"atlas.d.ts","sourceRoot":"","sources":["../../src/types/atlas.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlas-kitchen/atlas-mcp",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Model Context Protocol server for Atlas restaurant management system - enables Claude to interact with restaurant orders, menus, and reports",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -20,7 +20,12 @@
|
|
|
20
20
|
"build": "tsc && chmod +x dist/index.js",
|
|
21
21
|
"start": "node dist/index.js",
|
|
22
22
|
"dev": "tsx src/index.ts",
|
|
23
|
-
"test": "
|
|
23
|
+
"test": "vitest run",
|
|
24
|
+
"test:watch": "vitest",
|
|
25
|
+
"test:coverage": "vitest run --coverage",
|
|
26
|
+
"release": "npm version patch && git push && git push --tags && gh release create v$(node -p \"require('./package.json').version\") --generate-notes",
|
|
27
|
+
"release:minor": "npm version minor && git push && git push --tags && gh release create v$(node -p \"require('./package.json').version\") --generate-notes",
|
|
28
|
+
"release:major": "npm version major && git push && git push --tags && gh release create v$(node -p \"require('./package.json').version\") --generate-notes",
|
|
24
29
|
"prepublishOnly": "npm run build",
|
|
25
30
|
"prepare": "npm run build"
|
|
26
31
|
},
|
|
@@ -52,5 +57,9 @@
|
|
|
52
57
|
"typescript": "^5.8.3",
|
|
53
58
|
"uuid": "^11.1.0",
|
|
54
59
|
"zod": "^3.25.75"
|
|
60
|
+
},
|
|
61
|
+
"devDependencies": {
|
|
62
|
+
"vitest": "^3.0.0",
|
|
63
|
+
"@vitest/coverage-v8": "^3.0.0"
|
|
55
64
|
}
|
|
56
65
|
}
|
package/dist/polyfills.d.ts
DELETED
package/dist/polyfills.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"polyfills.d.ts","sourceRoot":"","sources":["../src/polyfills.ts"],"names":[],"mappings":""}
|