@atlas-kitchen/atlas-mcp 1.0.2 → 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.
@@ -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().optional(),
16
- perPage: z.number().optional(),
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, authManager) {
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: 'List items with optional filters',
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
@@ -1 +1 @@
1
- {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/tools/menu.ts"],"names":[],"mappings":"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"}
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;AAGzC,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;AAkBD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI,EAAE,CAmKtF"}
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"}
@@ -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: z.string().optional(),
13
+ state: OrderStateEnum.optional(),
6
14
  limit: z.number().min(1).max(100).default(20),
7
- cursor: z.string().optional(),
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: { type: 'string', description: 'Order state filter (unpaid, confirmed, dispatched, ready_for_pickup, completed, cancelled)' },
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
- cursor: { type: 'string', description: 'Pagination cursor from previous request' },
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, cursor } = GetOrdersSchema.parse(input);
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
- first: limit,
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 (cursor)
49
- filters.after = cursor;
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 detailed information about a specific order',
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 or identifier' },
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 information about a specific cart',
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: 'No outlet selected. Please use atlas_switch_merchant with an outletId first.',
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 {
@@ -1 +1 @@
1
- {"version":3,"file":"orders.js","sourceRoot":"","sources":["../../src/tools/orders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orders.js","sourceRoot":"","sources":["../../src/tools/orders.ts"],"names":[],"mappings":"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"}
@@ -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, authManager: AuthManager): Tool[];
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;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,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;AA4BD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI,EAAE,CAwH1F"}
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"}
@@ -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
- const GetProductInsightsSchema = z.object({
15
- brandIds: z.array(z.number()),
16
- outletIds: z.array(z.number()),
17
- itemTypes: z.array(z.string()),
18
- fulfilmentTypes: z.array(z.string()),
19
- startDate: z.string(),
20
- endDate: z.string(),
21
- sources: z.array(z.string()).optional(),
22
- itemTagIds: z.array(z.number()).optional(),
23
- searchQuery: z.string().optional(),
24
- itemsToVisualize: z.array(z.string()).optional(),
25
- });
26
- export function createReportingTools(client, authManager) {
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 with filters',
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-7)' },
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
- if (!authManager.isAuthenticated()) {
51
- return {
52
- success: false,
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":"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"}
1
+ {"version":3,"file":"reports.js","sourceRoot":"","sources":["../../src/tools/reports.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,10 @@ export interface LoginResponse {
28
28
  account: Account;
29
29
  merchants: Merchant[];
30
30
  }
31
+ export interface ApiKeyLoginResponse {
32
+ accessToken: string;
33
+ refreshToken: string;
34
+ }
31
35
  export interface Order {
32
36
  id: string;
33
37
  identifier: string;
@@ -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.2",
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": {
@@ -15,11 +15,17 @@
15
15
  "engines": {
16
16
  "node": ">=18.0.0"
17
17
  },
18
+ "engineStrict": true,
18
19
  "scripts": {
19
20
  "build": "tsc && chmod +x dist/index.js",
20
21
  "start": "node dist/index.js",
21
22
  "dev": "tsx src/index.ts",
22
- "test": "echo \"Error: no test specified\" && exit 1",
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",
23
29
  "prepublishOnly": "npm run build",
24
30
  "prepare": "npm run build"
25
31
  },
@@ -51,5 +57,9 @@
51
57
  "typescript": "^5.8.3",
52
58
  "uuid": "^11.1.0",
53
59
  "zod": "^3.25.75"
60
+ },
61
+ "devDependencies": {
62
+ "vitest": "^3.0.0",
63
+ "@vitest/coverage-v8": "^3.0.0"
54
64
  }
55
65
  }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=polyfills.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"polyfills.d.ts","sourceRoot":"","sources":["../src/polyfills.ts"],"names":[],"mappings":""}