@open-loyalty/mcp-server 1.5.3 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/dist/config.d.ts +4 -0
  2. package/dist/config.js +11 -0
  3. package/dist/index.js +0 -8
  4. package/dist/server.js +13 -0
  5. package/dist/tools/achievement/handlers.js +47 -0
  6. package/dist/tools/achievement/index.d.ts +11 -4
  7. package/dist/tools/achievement/index.js +12 -1
  8. package/dist/tools/achievement/schemas.d.ts +4 -4
  9. package/dist/tools/achievement/schemas.js +13 -12
  10. package/dist/tools/admin/handlers.d.ts +48 -0
  11. package/dist/tools/admin/handlers.js +159 -0
  12. package/dist/tools/admin/index.d.ts +86 -0
  13. package/dist/tools/admin/index.js +64 -0
  14. package/dist/tools/admin/schemas.d.ts +40 -0
  15. package/dist/tools/admin/schemas.js +40 -0
  16. package/dist/tools/analytics/handlers.d.ts +42 -0
  17. package/dist/tools/analytics/handlers.js +282 -0
  18. package/dist/tools/analytics/index.d.ts +108 -0
  19. package/dist/tools/analytics/index.js +91 -0
  20. package/dist/tools/analytics/schemas.d.ts +42 -0
  21. package/dist/tools/analytics/schemas.js +47 -0
  22. package/dist/tools/apikey/handlers.d.ts +15 -0
  23. package/dist/tools/apikey/handlers.js +53 -0
  24. package/dist/tools/apikey/index.d.ts +41 -0
  25. package/dist/tools/apikey/index.js +38 -0
  26. package/dist/tools/apikey/schemas.d.ts +31 -0
  27. package/dist/tools/apikey/schemas.js +15 -0
  28. package/dist/tools/audit/handlers.d.ts +20 -0
  29. package/dist/tools/audit/handlers.js +82 -0
  30. package/dist/tools/audit/index.d.ts +36 -0
  31. package/dist/tools/audit/index.js +28 -0
  32. package/dist/tools/audit/schemas.d.ts +62 -0
  33. package/dist/tools/audit/schemas.js +18 -0
  34. package/dist/tools/badge/handlers.d.ts +45 -0
  35. package/dist/tools/badge/handlers.js +135 -0
  36. package/dist/tools/badge/index.d.ts +68 -0
  37. package/dist/tools/badge/index.js +47 -0
  38. package/dist/tools/badge/schemas.d.ts +37 -0
  39. package/dist/tools/badge/schemas.js +31 -0
  40. package/dist/tools/campaign/handlers.js +61 -0
  41. package/dist/tools/campaign/index.d.ts +12 -0
  42. package/dist/tools/campaign/index.js +20 -1
  43. package/dist/tools/campaign/member-handlers.js +37 -1
  44. package/dist/tools/campaign/schemas.js +16 -14
  45. package/dist/tools/custom-event/handlers.d.ts +98 -0
  46. package/dist/tools/custom-event/handlers.js +238 -0
  47. package/dist/tools/custom-event/index.d.ts +139 -0
  48. package/dist/tools/custom-event/index.js +78 -0
  49. package/dist/tools/custom-event/schemas.d.ts +87 -0
  50. package/dist/tools/custom-event/schemas.js +59 -0
  51. package/dist/tools/export/handlers.d.ts +29 -0
  52. package/dist/tools/export/handlers.js +128 -0
  53. package/dist/tools/export/index.d.ts +56 -0
  54. package/dist/tools/export/index.js +46 -0
  55. package/dist/tools/export/schemas.d.ts +42 -0
  56. package/dist/tools/export/schemas.js +41 -0
  57. package/dist/tools/import/handlers.d.ts +22 -0
  58. package/dist/tools/import/handlers.js +123 -0
  59. package/dist/tools/import/index.d.ts +45 -0
  60. package/dist/tools/import/index.js +41 -0
  61. package/dist/tools/import/schemas.d.ts +57 -0
  62. package/dist/tools/import/schemas.js +39 -0
  63. package/dist/tools/index.d.ts +1 -0
  64. package/dist/tools/index.js +11 -11
  65. package/dist/tools/member/handlers.js +30 -0
  66. package/dist/tools/member/index.d.ts +10 -0
  67. package/dist/tools/member/index.js +10 -0
  68. package/dist/tools/member/schemas.js +13 -13
  69. package/dist/tools/points/handlers.js +73 -0
  70. package/dist/tools/points/index.d.ts +6 -0
  71. package/dist/tools/points/index.js +6 -0
  72. package/dist/tools/points/schemas.js +1 -1
  73. package/dist/tools/referral/index.d.ts +3 -0
  74. package/dist/tools/referral/index.js +3 -0
  75. package/dist/tools/reward/handlers.js +21 -13
  76. package/dist/tools/reward/index.d.ts +9 -0
  77. package/dist/tools/reward/index.js +12 -1
  78. package/dist/tools/reward/schemas.js +2 -2
  79. package/dist/tools/role/handlers.d.ts +35 -0
  80. package/dist/tools/role/handlers.js +127 -0
  81. package/dist/tools/role/index.d.ts +99 -0
  82. package/dist/tools/role/index.js +65 -0
  83. package/dist/tools/role/schemas.d.ts +56 -0
  84. package/dist/tools/role/schemas.js +35 -0
  85. package/dist/tools/segment/handlers.js +68 -1
  86. package/dist/tools/segment/index.d.ts +9 -0
  87. package/dist/tools/segment/index.js +13 -0
  88. package/dist/tools/segment/schemas.js +8 -5
  89. package/dist/tools/store/handlers.d.ts +25 -0
  90. package/dist/tools/store/handlers.js +89 -0
  91. package/dist/tools/store/index.d.ts +55 -0
  92. package/dist/tools/store/index.js +46 -0
  93. package/dist/tools/store/schemas.d.ts +38 -0
  94. package/dist/tools/store/schemas.js +23 -0
  95. package/dist/tools/tierset/handlers.js +92 -1
  96. package/dist/tools/tierset/index.d.ts +6 -0
  97. package/dist/tools/tierset/index.js +8 -1
  98. package/dist/tools/transaction/handlers.js +40 -0
  99. package/dist/tools/transaction/index.d.ts +4 -0
  100. package/dist/tools/transaction/index.js +4 -0
  101. package/dist/tools/transaction/schemas.js +3 -3
  102. package/dist/tools/wallet-type/index.d.ts +4 -0
  103. package/dist/tools/wallet-type/index.js +5 -1
  104. package/dist/tools/webhook/handlers.d.ts +34 -0
  105. package/dist/tools/webhook/handlers.js +147 -0
  106. package/dist/tools/webhook/index.d.ts +97 -0
  107. package/dist/tools/webhook/index.js +65 -0
  108. package/dist/tools/webhook/schemas.d.ts +72 -0
  109. package/dist/tools/{webhook.js → webhook/schemas.js} +0 -140
  110. package/dist/types/schemas/tierset.js +3 -1
  111. package/package.json +1 -1
  112. package/dist/tools/admin.d.ts +0 -165
  113. package/dist/tools/admin.js +0 -205
  114. package/dist/tools/analytics.d.ts +0 -180
  115. package/dist/tools/analytics.js +0 -255
  116. package/dist/tools/apikey.d.ts +0 -79
  117. package/dist/tools/apikey.js +0 -85
  118. package/dist/tools/audit.d.ts +0 -111
  119. package/dist/tools/audit.js +0 -94
  120. package/dist/tools/badge.d.ts +0 -143
  121. package/dist/tools/badge.js +0 -174
  122. package/dist/tools/custom-event.d.ts +0 -315
  123. package/dist/tools/custom-event.js +0 -271
  124. package/dist/tools/export.d.ts +0 -118
  125. package/dist/tools/export.js +0 -152
  126. package/dist/tools/import.d.ts +0 -116
  127. package/dist/tools/import.js +0 -143
  128. package/dist/tools/role.d.ts +0 -180
  129. package/dist/tools/role.js +0 -173
  130. package/dist/tools/store.d.ts +0 -109
  131. package/dist/tools/store.js +0 -125
  132. package/dist/tools/webhook.d.ts +0 -192
@@ -1,125 +0,0 @@
1
- import { z } from "zod";
2
- import { apiGet, apiPost, apiPut } from "../client/http.js";
3
- import { formatApiError } from "../utils/errors.js";
4
- // Input Schemas
5
- export const StoreListInputSchema = {
6
- page: z.number().optional().describe("Page number (default: 1)."),
7
- perPage: z.number().optional().describe("Items per page (default: 25)."),
8
- active: z.boolean().optional().describe("Filter by active status."),
9
- name: z.string().optional().describe("Filter by store name."),
10
- code: z.string().optional().describe("Filter by store code."),
11
- };
12
- export const StoreCreateInputSchema = {
13
- code: z.string().describe("Store code (required, unique identifier like 'US', 'EU')."),
14
- name: z.string().describe("Store name (required)."),
15
- currency: z.string().optional().describe("Currency code (e.g., 'USD', 'EUR')."),
16
- active: z.boolean().optional().describe("Whether the store is active (default: true)."),
17
- };
18
- export const StoreGetInputSchema = {
19
- storeId: z.string().describe("The store ID (UUID) to retrieve."),
20
- };
21
- export const StoreUpdateInputSchema = {
22
- storeId: z.string().describe("The store ID (UUID) to update."),
23
- name: z.string().optional().describe("Store name."),
24
- active: z.boolean().optional().describe("Whether the store is active."),
25
- currency: z.string().optional().describe("Currency code."),
26
- };
27
- // Handler functions
28
- export async function storeList(input) {
29
- const params = new URLSearchParams();
30
- if (input.page)
31
- params.append("_page", String(input.page));
32
- if (input.perPage)
33
- params.append("_itemsOnPage", String(input.perPage));
34
- if (input.active !== undefined)
35
- params.append("active[eq]", String(input.active));
36
- if (input.name)
37
- params.append("name[eq]", input.name);
38
- if (input.code)
39
- params.append("code", input.code);
40
- const queryString = params.toString();
41
- const url = `/store${queryString ? `?${queryString}` : ""}`;
42
- try {
43
- const response = await apiGet(url);
44
- return response;
45
- }
46
- catch (error) {
47
- throw formatApiError(error, "ol_store_list");
48
- }
49
- }
50
- export async function storeCreate(input) {
51
- const payload = {
52
- code: input.code,
53
- name: input.name,
54
- };
55
- if (input.currency)
56
- payload.currency = input.currency;
57
- if (input.active !== undefined)
58
- payload.active = input.active;
59
- try {
60
- const response = await apiPost("/store", { store: payload });
61
- return response;
62
- }
63
- catch (error) {
64
- throw formatApiError(error, "ol_store_create");
65
- }
66
- }
67
- export async function storeGet(input) {
68
- try {
69
- const response = await apiGet(`/store/${input.storeId}`);
70
- return response;
71
- }
72
- catch (error) {
73
- throw formatApiError(error, "ol_store_get");
74
- }
75
- }
76
- export async function storeUpdate(input) {
77
- const payload = {};
78
- if (input.name)
79
- payload.name = input.name;
80
- if (input.active !== undefined)
81
- payload.active = input.active;
82
- if (input.currency)
83
- payload.currency = input.currency;
84
- try {
85
- await apiPut(`/store/${input.storeId}`, { store: payload });
86
- }
87
- catch (error) {
88
- throw formatApiError(error, "ol_store_update");
89
- }
90
- }
91
- // Tool definitions
92
- export const storeToolDefinitions = [
93
- {
94
- name: "ol_store_list",
95
- title: "List Stores",
96
- description: "List all stores with optional filtering. Returns paginated list of stores with storeId, code, name, currency, and active status. Stores enable multi-tenant loyalty programs. Each store has independent members, campaigns, and settings.",
97
- readOnly: true,
98
- inputSchema: StoreListInputSchema,
99
- handler: storeList,
100
- },
101
- {
102
- name: "ol_store_create",
103
- title: "Create Store",
104
- description: "Create a new store for multi-tenant setup. Requires unique code and name. Returns storeId on success.",
105
- readOnly: false,
106
- inputSchema: StoreCreateInputSchema,
107
- handler: storeCreate,
108
- },
109
- {
110
- name: "ol_store_get",
111
- title: "Get Store Details",
112
- description: "Get full store configuration by ID. Returns storeId, code, name, currency, active status, and timestamps.",
113
- readOnly: true,
114
- inputSchema: StoreGetInputSchema,
115
- handler: storeGet,
116
- },
117
- {
118
- name: "ol_store_update",
119
- title: "Update Store",
120
- description: "Update store configuration. Can update name, currency, and active status. Returns void on success (204 No Content).",
121
- readOnly: false,
122
- inputSchema: StoreUpdateInputSchema,
123
- handler: storeUpdate,
124
- },
125
- ];
@@ -1,192 +0,0 @@
1
- import { z } from "zod";
2
- export interface WebhookHeader {
3
- headerName: string;
4
- headerValue: string;
5
- }
6
- export interface WebhookSubscription {
7
- webhookSubscriptionId: string;
8
- eventName: string;
9
- url: string;
10
- headers?: WebhookHeader[];
11
- createdAt?: string;
12
- }
13
- export interface WebhookSubscriptionListResponse {
14
- items: WebhookSubscription[];
15
- total?: {
16
- all?: number | string;
17
- filtered?: number | string;
18
- estimated?: boolean;
19
- };
20
- }
21
- export interface WebhookEventTypesResponse {
22
- items: string[];
23
- }
24
- export declare const WebhookListInputSchema: {
25
- storeCode: z.ZodOptional<z.ZodString>;
26
- page: z.ZodOptional<z.ZodNumber>;
27
- perPage: z.ZodOptional<z.ZodNumber>;
28
- eventName: z.ZodOptional<z.ZodString>;
29
- url: z.ZodOptional<z.ZodString>;
30
- };
31
- export declare const WebhookCreateInputSchema: {
32
- storeCode: z.ZodOptional<z.ZodString>;
33
- eventName: z.ZodString;
34
- url: z.ZodEffects<z.ZodString, string, string>;
35
- headers: z.ZodOptional<z.ZodArray<z.ZodObject<{
36
- headerName: z.ZodString;
37
- headerValue: z.ZodString;
38
- }, "strip", z.ZodTypeAny, {
39
- headerName: string;
40
- headerValue: string;
41
- }, {
42
- headerName: string;
43
- headerValue: string;
44
- }>, "many">>;
45
- };
46
- export declare const WebhookGetInputSchema: {
47
- storeCode: z.ZodOptional<z.ZodString>;
48
- webhookSubscriptionId: z.ZodString;
49
- };
50
- export declare const WebhookUpdateInputSchema: {
51
- storeCode: z.ZodOptional<z.ZodString>;
52
- webhookSubscriptionId: z.ZodString;
53
- eventName: z.ZodOptional<z.ZodString>;
54
- url: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
55
- headers: z.ZodOptional<z.ZodArray<z.ZodObject<{
56
- headerName: z.ZodString;
57
- headerValue: z.ZodString;
58
- }, "strip", z.ZodTypeAny, {
59
- headerName: string;
60
- headerValue: string;
61
- }, {
62
- headerName: string;
63
- headerValue: string;
64
- }>, "many">>;
65
- };
66
- export declare const WebhookDeleteInputSchema: {
67
- storeCode: z.ZodOptional<z.ZodString>;
68
- webhookSubscriptionId: z.ZodString;
69
- };
70
- export declare const WebhookEventsInputSchema: {
71
- storeCode: z.ZodOptional<z.ZodString>;
72
- };
73
- export declare function webhookList(input: {
74
- storeCode?: string;
75
- page?: number;
76
- perPage?: number;
77
- eventName?: string;
78
- url?: string;
79
- }): Promise<WebhookSubscriptionListResponse>;
80
- export declare function webhookCreate(input: {
81
- storeCode?: string;
82
- eventName: string;
83
- url: string;
84
- headers?: WebhookHeader[];
85
- }): Promise<{
86
- webhookSubscriptionId: string;
87
- }>;
88
- export declare function webhookGet(input: {
89
- storeCode?: string;
90
- webhookSubscriptionId: string;
91
- }): Promise<WebhookSubscription>;
92
- export declare function webhookUpdate(input: {
93
- storeCode?: string;
94
- webhookSubscriptionId: string;
95
- eventName?: string;
96
- url?: string;
97
- headers?: WebhookHeader[];
98
- }): Promise<void>;
99
- export declare function webhookDelete(input: {
100
- storeCode?: string;
101
- webhookSubscriptionId: string;
102
- }): Promise<void>;
103
- export declare function webhookEvents(input: {
104
- storeCode?: string;
105
- }): Promise<WebhookEventTypesResponse>;
106
- export declare const webhookToolDefinitions: readonly [{
107
- readonly name: "ol_webhook_list";
108
- readonly title: "List Webhook Subscriptions";
109
- readonly description: "List webhook subscriptions with optional filtering. Returns paginated list of subscriptions with webhookSubscriptionId, eventName, url, and createdAt.";
110
- readonly readOnly: true;
111
- readonly inputSchema: {
112
- storeCode: z.ZodOptional<z.ZodString>;
113
- page: z.ZodOptional<z.ZodNumber>;
114
- perPage: z.ZodOptional<z.ZodNumber>;
115
- eventName: z.ZodOptional<z.ZodString>;
116
- url: z.ZodOptional<z.ZodString>;
117
- };
118
- readonly handler: typeof webhookList;
119
- }, {
120
- readonly name: "ol_webhook_create";
121
- readonly title: "Create Webhook Subscription";
122
- readonly description: "Create a new webhook subscription to receive event notifications. Returns webhookSubscriptionId on success. Use webhook_events to discover available event types before creating subscriptions.";
123
- readonly readOnly: false;
124
- readonly inputSchema: {
125
- storeCode: z.ZodOptional<z.ZodString>;
126
- eventName: z.ZodString;
127
- url: z.ZodEffects<z.ZodString, string, string>;
128
- headers: z.ZodOptional<z.ZodArray<z.ZodObject<{
129
- headerName: z.ZodString;
130
- headerValue: z.ZodString;
131
- }, "strip", z.ZodTypeAny, {
132
- headerName: string;
133
- headerValue: string;
134
- }, {
135
- headerName: string;
136
- headerValue: string;
137
- }>, "many">>;
138
- };
139
- readonly handler: typeof webhookCreate;
140
- }, {
141
- readonly name: "ol_webhook_get";
142
- readonly title: "Get Webhook Subscription Details";
143
- readonly description: "Get full webhook subscription details including headers configuration.";
144
- readonly readOnly: true;
145
- readonly inputSchema: {
146
- storeCode: z.ZodOptional<z.ZodString>;
147
- webhookSubscriptionId: z.ZodString;
148
- };
149
- readonly handler: typeof webhookGet;
150
- }, {
151
- readonly name: "ol_webhook_update";
152
- readonly title: "Update Webhook Subscription";
153
- readonly description: "Update a webhook subscription. Can update eventName, url, and headers. Returns void on success (204 No Content).";
154
- readonly readOnly: false;
155
- readonly inputSchema: {
156
- storeCode: z.ZodOptional<z.ZodString>;
157
- webhookSubscriptionId: z.ZodString;
158
- eventName: z.ZodOptional<z.ZodString>;
159
- url: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
160
- headers: z.ZodOptional<z.ZodArray<z.ZodObject<{
161
- headerName: z.ZodString;
162
- headerValue: z.ZodString;
163
- }, "strip", z.ZodTypeAny, {
164
- headerName: string;
165
- headerValue: string;
166
- }, {
167
- headerName: string;
168
- headerValue: string;
169
- }>, "many">>;
170
- };
171
- readonly handler: typeof webhookUpdate;
172
- }, {
173
- readonly name: "ol_webhook_delete";
174
- readonly title: "Delete Webhook Subscription (Permanent)";
175
- readonly description: "Delete a webhook subscription. Returns void on success (204 No Content). The subscription will stop receiving events immediately.";
176
- readonly readOnly: false;
177
- readonly destructive: true;
178
- readonly inputSchema: {
179
- storeCode: z.ZodOptional<z.ZodString>;
180
- webhookSubscriptionId: z.ZodString;
181
- };
182
- readonly handler: typeof webhookDelete;
183
- }, {
184
- readonly name: "ol_webhook_events";
185
- readonly title: "List Available Webhook Events";
186
- readonly description: "Get available webhook event types. Returns list of event names that can be used when creating webhook subscriptions. Use this to discover available events before creating subscriptions.";
187
- readonly readOnly: true;
188
- readonly inputSchema: {
189
- storeCode: z.ZodOptional<z.ZodString>;
190
- };
191
- readonly handler: typeof webhookEvents;
192
- }];