@open-loyalty/mcp-server 1.0.3 → 1.3.1
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 +180 -177
- package/dist/auth/provider.js +2 -14
- package/dist/auth/storage.js +22 -0
- package/dist/client/http.d.ts +5 -0
- package/dist/client/http.js +62 -3
- package/dist/config.d.ts +6 -5
- package/dist/config.js +15 -11
- package/dist/http.js +170 -65
- package/dist/instructions.d.ts +5 -0
- package/dist/instructions.js +420 -0
- package/dist/prompts/fan-engagement-setup.d.ts +107 -0
- package/dist/prompts/fan-engagement-setup.js +492 -0
- package/dist/server.d.ts +1 -1
- package/dist/server.js +68 -278
- package/dist/tools/achievement/handlers.d.ts +117 -0
- package/dist/tools/achievement/handlers.js +161 -0
- package/dist/tools/achievement/index.d.ts +479 -0
- package/dist/tools/achievement/index.js +74 -0
- package/dist/tools/achievement/schemas.d.ts +433 -0
- package/dist/tools/achievement/schemas.js +142 -0
- package/dist/tools/achievement.d.ts +155 -121
- package/dist/tools/achievement.js +82 -39
- package/dist/tools/admin.d.ts +18 -6
- package/dist/tools/admin.js +24 -12
- package/dist/tools/analytics.d.ts +29 -11
- package/dist/tools/analytics.js +58 -48
- package/dist/tools/apikey.d.ts +10 -3
- package/dist/tools/apikey.js +13 -6
- package/dist/tools/audit.d.ts +6 -2
- package/dist/tools/audit.js +8 -4
- package/dist/tools/badge.d.ts +14 -6
- package/dist/tools/badge.js +36 -27
- package/dist/tools/campaign/handlers.d.ts +42 -0
- package/dist/tools/campaign/handlers.js +223 -0
- package/dist/tools/campaign/index.d.ts +783 -0
- package/dist/tools/campaign/index.js +112 -0
- package/dist/tools/campaign/member-handlers.d.ts +60 -0
- package/dist/tools/campaign/member-handlers.js +159 -0
- package/dist/tools/campaign/schemas.d.ts +704 -0
- package/dist/tools/campaign/schemas.js +259 -0
- package/dist/tools/campaign/types.d.ts +161 -0
- package/dist/tools/campaign/types.js +2 -0
- package/dist/tools/campaign.d.ts +41 -16
- package/dist/tools/campaign.js +38 -25
- package/dist/tools/custom-event.d.ts +315 -0
- package/dist/tools/custom-event.js +270 -0
- package/dist/tools/export.d.ts +12 -4
- package/dist/tools/export.js +25 -20
- package/dist/tools/import.d.ts +9 -3
- package/dist/tools/import.js +33 -21
- package/dist/tools/index.d.ts +3 -11
- package/dist/tools/index.js +17 -475
- package/dist/tools/member/handlers.d.ts +111 -0
- package/dist/tools/member/handlers.js +206 -0
- package/dist/tools/member/index.d.ts +169 -0
- package/dist/tools/member/index.js +92 -0
- package/dist/tools/member/schemas.d.ts +89 -0
- package/dist/tools/member/schemas.js +65 -0
- package/dist/tools/member.d.ts +21 -0
- package/dist/tools/member.js +56 -62
- package/dist/tools/points.d.ts +19 -6
- package/dist/tools/points.js +51 -49
- package/dist/tools/referral/handlers.d.ts +47 -0
- package/dist/tools/referral/handlers.js +115 -0
- package/dist/tools/referral/index.d.ts +44 -0
- package/dist/tools/referral/index.js +44 -0
- package/dist/tools/referral/schemas.d.ts +34 -0
- package/dist/tools/referral/schemas.js +52 -0
- package/dist/tools/reward/handlers.d.ts +110 -0
- package/dist/tools/reward/handlers.js +289 -0
- package/dist/tools/reward/index.d.ts +177 -0
- package/dist/tools/reward/index.js +90 -0
- package/dist/tools/reward/schemas.d.ts +116 -0
- package/dist/tools/reward/schemas.js +91 -0
- package/dist/tools/reward.d.ts +18 -0
- package/dist/tools/reward.js +56 -66
- package/dist/tools/role.d.ts +26 -7
- package/dist/tools/role.js +25 -12
- package/dist/tools/segment/handlers.d.ts +87 -0
- package/dist/tools/segment/handlers.js +174 -0
- package/dist/tools/segment/index.d.ts +395 -0
- package/dist/tools/segment/index.js +87 -0
- package/dist/tools/segment/schemas.d.ts +337 -0
- package/dist/tools/segment/schemas.js +79 -0
- package/dist/tools/segment.d.ts +29 -10
- package/dist/tools/segment.js +84 -50
- package/dist/tools/store.d.ts +12 -4
- package/dist/tools/store.js +16 -8
- package/dist/tools/tierset.d.ts +19 -7
- package/dist/tools/tierset.js +44 -35
- package/dist/tools/transaction.d.ts +16 -8
- package/dist/tools/transaction.js +25 -21
- package/dist/tools/wallet-type.d.ts +7 -3
- package/dist/tools/wallet-type.js +14 -12
- package/dist/tools/webhook.d.ts +23 -10
- package/dist/tools/webhook.js +135 -33
- package/dist/types/schemas/achievement.d.ts +12 -309
- package/dist/types/schemas/achievement.js +0 -13
- package/dist/types/schemas/admin.d.ts +10 -97
- package/dist/types/schemas/admin.js +0 -38
- package/dist/types/schemas/badge.d.ts +0 -37
- package/dist/types/schemas/badge.js +0 -11
- package/dist/types/schemas/campaign.d.ts +64 -832
- package/dist/types/schemas/campaign.js +2 -25
- package/dist/types/schemas/common.d.ts +5 -0
- package/dist/types/schemas/common.js +5 -0
- package/dist/types/schemas/export.d.ts +0 -17
- package/dist/types/schemas/export.js +0 -7
- package/dist/types/schemas/member.d.ts +37 -176
- package/dist/types/schemas/member.js +0 -27
- package/dist/types/schemas/points.d.ts +0 -63
- package/dist/types/schemas/points.js +0 -22
- package/dist/types/schemas/reward.d.ts +71 -68
- package/dist/types/schemas/reward.js +8 -28
- package/dist/types/schemas/role.d.ts +0 -100
- package/dist/types/schemas/role.js +0 -29
- package/dist/types/schemas/segment.d.ts +0 -58
- package/dist/types/schemas/segment.js +0 -17
- package/dist/types/schemas/tierset.d.ts +0 -176
- package/dist/types/schemas/tierset.js +0 -27
- package/dist/types/schemas/transaction.d.ts +23 -254
- package/dist/types/schemas/transaction.js +0 -7
- package/dist/types/schemas/wallet-type.d.ts +8 -8
- package/dist/types/schemas/wallet-type.js +1 -1
- package/dist/types/schemas/webhook.d.ts +0 -58
- package/dist/types/schemas/webhook.js +0 -12
- package/dist/utils/errors.js +30 -3
- package/dist/utils/payload.d.ts +12 -0
- package/dist/utils/payload.js +14 -0
- package/dist/workflows/app-login-streak.d.ts +39 -0
- package/dist/workflows/app-login-streak.js +298 -0
- package/dist/workflows/early-arrival.d.ts +33 -0
- package/dist/workflows/early-arrival.js +148 -0
- package/dist/workflows/index.d.ts +101 -0
- package/dist/workflows/index.js +208 -0
- package/dist/workflows/match-attendance.d.ts +45 -0
- package/dist/workflows/match-attendance.js +308 -0
- package/dist/workflows/sportsbar-visit.d.ts +41 -0
- package/dist/workflows/sportsbar-visit.js +284 -0
- package/dist/workflows/vod-watching.d.ts +43 -0
- package/dist/workflows/vod-watching.js +326 -0
- package/package.json +10 -2
package/dist/tools/member.d.ts
CHANGED
|
@@ -200,7 +200,9 @@ export declare function memberRemoveManualTier(input: {
|
|
|
200
200
|
}): Promise<void>;
|
|
201
201
|
export declare const memberToolDefinitions: readonly [{
|
|
202
202
|
readonly name: "openloyalty_member_create";
|
|
203
|
+
readonly title: "Register New Member";
|
|
203
204
|
readonly description: "Register a new loyalty program member. Returns memberId for subsequent operations like points_add or member_get. Email must be unique within the store.";
|
|
205
|
+
readonly readOnly: false;
|
|
204
206
|
readonly inputSchema: {
|
|
205
207
|
storeCode: z.ZodOptional<z.ZodString>;
|
|
206
208
|
email: z.ZodString;
|
|
@@ -236,7 +238,9 @@ export declare const memberToolDefinitions: readonly [{
|
|
|
236
238
|
readonly handler: typeof memberCreate;
|
|
237
239
|
}, {
|
|
238
240
|
readonly name: "openloyalty_member_get";
|
|
241
|
+
readonly title: "Get Member Profile";
|
|
239
242
|
readonly description: "Get member details including profile, points balance, and tier status. Use memberId from member_create or member_list.";
|
|
243
|
+
readonly readOnly: true;
|
|
240
244
|
readonly inputSchema: {
|
|
241
245
|
storeCode: z.ZodOptional<z.ZodString>;
|
|
242
246
|
memberId: z.ZodString;
|
|
@@ -244,7 +248,9 @@ export declare const memberToolDefinitions: readonly [{
|
|
|
244
248
|
readonly handler: typeof memberGet;
|
|
245
249
|
}, {
|
|
246
250
|
readonly name: "openloyalty_member_list";
|
|
251
|
+
readonly title: "Search Members";
|
|
247
252
|
readonly description: string;
|
|
253
|
+
readonly readOnly: true;
|
|
248
254
|
readonly inputSchema: {
|
|
249
255
|
storeCode: z.ZodOptional<z.ZodString>;
|
|
250
256
|
cursor: z.ZodOptional<z.ZodString>;
|
|
@@ -260,7 +266,9 @@ export declare const memberToolDefinitions: readonly [{
|
|
|
260
266
|
readonly handler: typeof memberList;
|
|
261
267
|
}, {
|
|
262
268
|
readonly name: "openloyalty_member_update";
|
|
269
|
+
readonly title: "Update Member Profile";
|
|
263
270
|
readonly description: "Update member profile fields. Cannot change email. Use member_get first to see current values.";
|
|
271
|
+
readonly readOnly: false;
|
|
264
272
|
readonly inputSchema: {
|
|
265
273
|
storeCode: z.ZodOptional<z.ZodString>;
|
|
266
274
|
memberId: z.ZodString;
|
|
@@ -295,7 +303,9 @@ export declare const memberToolDefinitions: readonly [{
|
|
|
295
303
|
readonly handler: typeof memberUpdate;
|
|
296
304
|
}, {
|
|
297
305
|
readonly name: "openloyalty_member_activate";
|
|
306
|
+
readonly title: "Activate Member Account";
|
|
298
307
|
readonly description: "Activate a member account. Inactive members cannot earn or spend points.";
|
|
308
|
+
readonly readOnly: false;
|
|
299
309
|
readonly inputSchema: {
|
|
300
310
|
storeCode: z.ZodOptional<z.ZodString>;
|
|
301
311
|
memberId: z.ZodString;
|
|
@@ -303,7 +313,9 @@ export declare const memberToolDefinitions: readonly [{
|
|
|
303
313
|
readonly handler: typeof memberActivate;
|
|
304
314
|
}, {
|
|
305
315
|
readonly name: "openloyalty_member_deactivate";
|
|
316
|
+
readonly title: "Deactivate Member Account";
|
|
306
317
|
readonly description: "Deactivate a member account. Deactivated members cannot earn or spend points but retain their balance.";
|
|
318
|
+
readonly readOnly: false;
|
|
307
319
|
readonly inputSchema: {
|
|
308
320
|
storeCode: z.ZodOptional<z.ZodString>;
|
|
309
321
|
memberId: z.ZodString;
|
|
@@ -311,7 +323,10 @@ export declare const memberToolDefinitions: readonly [{
|
|
|
311
323
|
readonly handler: typeof memberDeactivate;
|
|
312
324
|
}, {
|
|
313
325
|
readonly name: "openloyalty_member_delete";
|
|
326
|
+
readonly title: "Delete Member (Permanent)";
|
|
314
327
|
readonly description: "Permanently removes member and all associated data. Cannot be undone. Use for GDPR compliance or member requests.";
|
|
328
|
+
readonly readOnly: false;
|
|
329
|
+
readonly destructive: true;
|
|
315
330
|
readonly inputSchema: {
|
|
316
331
|
storeCode: z.ZodOptional<z.ZodString>;
|
|
317
332
|
memberId: z.ZodString;
|
|
@@ -319,7 +334,9 @@ export declare const memberToolDefinitions: readonly [{
|
|
|
319
334
|
readonly handler: typeof memberDelete;
|
|
320
335
|
}, {
|
|
321
336
|
readonly name: "openloyalty_member_get_tier_progress";
|
|
337
|
+
readonly title: "Check Tier Progress";
|
|
322
338
|
readonly description: "Get member tier progression status showing current tier and progress to next. Returns currentValue, requiredValue, and progressPercent.";
|
|
339
|
+
readonly readOnly: true;
|
|
323
340
|
readonly inputSchema: {
|
|
324
341
|
storeCode: z.ZodOptional<z.ZodString>;
|
|
325
342
|
memberId: z.ZodString;
|
|
@@ -327,7 +344,9 @@ export declare const memberToolDefinitions: readonly [{
|
|
|
327
344
|
readonly handler: typeof memberGetTierProgress;
|
|
328
345
|
}, {
|
|
329
346
|
readonly name: "openloyalty_member_assign_tier";
|
|
347
|
+
readonly title: "Assign Tier to Member";
|
|
330
348
|
readonly description: "Manually assign a tier level to a member, overriding automatic tier calculation. Use tierset_get_tiers to find available levelId values.";
|
|
349
|
+
readonly readOnly: false;
|
|
331
350
|
readonly inputSchema: {
|
|
332
351
|
storeCode: z.ZodOptional<z.ZodString>;
|
|
333
352
|
memberId: z.ZodString;
|
|
@@ -336,7 +355,9 @@ export declare const memberToolDefinitions: readonly [{
|
|
|
336
355
|
readonly handler: typeof memberAssignTier;
|
|
337
356
|
}, {
|
|
338
357
|
readonly name: "openloyalty_member_remove_manual_tier";
|
|
358
|
+
readonly title: "Remove Manual Tier Assignment";
|
|
339
359
|
readonly description: "Remove manually assigned tier from member, restoring automatic tier calculation based on conditions.";
|
|
360
|
+
readonly readOnly: false;
|
|
340
361
|
readonly inputSchema: {
|
|
341
362
|
storeCode: z.ZodOptional<z.ZodString>;
|
|
342
363
|
memberId: z.ZodString;
|
package/dist/tools/member.js
CHANGED
|
@@ -2,8 +2,9 @@ import { z } from "zod";
|
|
|
2
2
|
import { apiGet, apiPost, apiPut, apiDelete } from "../client/http.js";
|
|
3
3
|
import { MemberSchema, } from "../types/schemas/member.js";
|
|
4
4
|
import { formatApiError } from "../utils/errors.js";
|
|
5
|
-
import {
|
|
5
|
+
import { getStoreCode } from "../config.js";
|
|
6
6
|
import { buildPaginationParams } from "../utils/pagination.js";
|
|
7
|
+
import { omitUndefined } from "../utils/payload.js";
|
|
7
8
|
// Input Schemas
|
|
8
9
|
export const MemberCreateInputSchema = {
|
|
9
10
|
storeCode: z.string().optional().describe("Store code. If not provided, uses the default store code from configuration."),
|
|
@@ -71,31 +72,20 @@ export const MemberAssignTierInputSchema = {
|
|
|
71
72
|
};
|
|
72
73
|
// Handler functions
|
|
73
74
|
export async function memberCreate(input) {
|
|
74
|
-
const
|
|
75
|
-
const
|
|
76
|
-
const payload = {
|
|
75
|
+
const storeCode = getStoreCode(input.storeCode);
|
|
76
|
+
const payload = omitUndefined({
|
|
77
77
|
email: input.email,
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
if (input.loyaltyCardNumber)
|
|
90
|
-
payload.loyaltyCardNumber = input.loyaltyCardNumber;
|
|
91
|
-
if (input.agreement1 !== undefined)
|
|
92
|
-
payload.agreement1 = input.agreement1;
|
|
93
|
-
if (input.agreement2 !== undefined)
|
|
94
|
-
payload.agreement2 = input.agreement2;
|
|
95
|
-
if (input.agreement3 !== undefined)
|
|
96
|
-
payload.agreement3 = input.agreement3;
|
|
97
|
-
if (input.address)
|
|
98
|
-
payload.address = input.address;
|
|
78
|
+
firstName: input.firstName,
|
|
79
|
+
lastName: input.lastName,
|
|
80
|
+
phone: input.phone,
|
|
81
|
+
birthDate: input.birthDate,
|
|
82
|
+
gender: input.gender,
|
|
83
|
+
loyaltyCardNumber: input.loyaltyCardNumber,
|
|
84
|
+
agreement1: input.agreement1,
|
|
85
|
+
agreement2: input.agreement2,
|
|
86
|
+
agreement3: input.agreement3,
|
|
87
|
+
address: input.address,
|
|
88
|
+
});
|
|
99
89
|
try {
|
|
100
90
|
const response = await apiPost(`/${storeCode}/member`, { customer: payload });
|
|
101
91
|
return {
|
|
@@ -109,8 +99,7 @@ export async function memberCreate(input) {
|
|
|
109
99
|
}
|
|
110
100
|
}
|
|
111
101
|
export async function memberGet(input) {
|
|
112
|
-
const
|
|
113
|
-
const storeCode = input.storeCode || config.defaultStoreCode;
|
|
102
|
+
const storeCode = getStoreCode(input.storeCode);
|
|
114
103
|
try {
|
|
115
104
|
const response = await apiGet(`/${storeCode}/member/${input.memberId}`);
|
|
116
105
|
// Map API response to our schema
|
|
@@ -141,8 +130,7 @@ export async function memberGet(input) {
|
|
|
141
130
|
}
|
|
142
131
|
}
|
|
143
132
|
export async function memberList(input) {
|
|
144
|
-
const
|
|
145
|
-
const storeCode = input.storeCode || config.defaultStoreCode;
|
|
133
|
+
const storeCode = getStoreCode(input.storeCode);
|
|
146
134
|
const params = new URLSearchParams();
|
|
147
135
|
// Use buildPaginationParams for cursor/page handling
|
|
148
136
|
buildPaginationParams({ cursor: input.cursor, page: input.page, perPage: input.perPage }, params);
|
|
@@ -188,27 +176,18 @@ export async function memberList(input) {
|
|
|
188
176
|
}
|
|
189
177
|
}
|
|
190
178
|
export async function memberUpdate(input) {
|
|
191
|
-
const
|
|
192
|
-
const
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
payload.gender = input.gender;
|
|
204
|
-
if (input.address)
|
|
205
|
-
payload.address = input.address;
|
|
206
|
-
if (input.agreement1 !== undefined)
|
|
207
|
-
payload.agreement1 = input.agreement1;
|
|
208
|
-
if (input.agreement2 !== undefined)
|
|
209
|
-
payload.agreement2 = input.agreement2;
|
|
210
|
-
if (input.agreement3 !== undefined)
|
|
211
|
-
payload.agreement3 = input.agreement3;
|
|
179
|
+
const storeCode = getStoreCode(input.storeCode);
|
|
180
|
+
const payload = omitUndefined({
|
|
181
|
+
firstName: input.firstName,
|
|
182
|
+
lastName: input.lastName,
|
|
183
|
+
phone: input.phone,
|
|
184
|
+
birthDate: input.birthDate,
|
|
185
|
+
gender: input.gender,
|
|
186
|
+
address: input.address,
|
|
187
|
+
agreement1: input.agreement1,
|
|
188
|
+
agreement2: input.agreement2,
|
|
189
|
+
agreement3: input.agreement3,
|
|
190
|
+
});
|
|
212
191
|
try {
|
|
213
192
|
await apiPut(`/${storeCode}/member/${input.memberId}`, { customer: payload });
|
|
214
193
|
}
|
|
@@ -217,8 +196,7 @@ export async function memberUpdate(input) {
|
|
|
217
196
|
}
|
|
218
197
|
}
|
|
219
198
|
export async function memberActivate(input) {
|
|
220
|
-
const
|
|
221
|
-
const storeCode = input.storeCode || config.defaultStoreCode;
|
|
199
|
+
const storeCode = getStoreCode(input.storeCode);
|
|
222
200
|
try {
|
|
223
201
|
await apiPost(`/${storeCode}/member/${input.memberId}/activate`);
|
|
224
202
|
}
|
|
@@ -227,8 +205,7 @@ export async function memberActivate(input) {
|
|
|
227
205
|
}
|
|
228
206
|
}
|
|
229
207
|
export async function memberDeactivate(input) {
|
|
230
|
-
const
|
|
231
|
-
const storeCode = input.storeCode || config.defaultStoreCode;
|
|
208
|
+
const storeCode = getStoreCode(input.storeCode);
|
|
232
209
|
try {
|
|
233
210
|
await apiPost(`/${storeCode}/member/${input.memberId}/deactivate`);
|
|
234
211
|
}
|
|
@@ -237,8 +214,7 @@ export async function memberDeactivate(input) {
|
|
|
237
214
|
}
|
|
238
215
|
}
|
|
239
216
|
export async function memberDelete(input) {
|
|
240
|
-
const
|
|
241
|
-
const storeCode = input.storeCode || config.defaultStoreCode;
|
|
217
|
+
const storeCode = getStoreCode(input.storeCode);
|
|
242
218
|
try {
|
|
243
219
|
await apiDelete(`/${storeCode}/member/${input.memberId}`);
|
|
244
220
|
}
|
|
@@ -247,8 +223,7 @@ export async function memberDelete(input) {
|
|
|
247
223
|
}
|
|
248
224
|
}
|
|
249
225
|
export async function memberGetTierProgress(input) {
|
|
250
|
-
const
|
|
251
|
-
const storeCode = input.storeCode || config.defaultStoreCode;
|
|
226
|
+
const storeCode = getStoreCode(input.storeCode);
|
|
252
227
|
try {
|
|
253
228
|
const response = await apiGet(`/${storeCode}/member/${input.memberId}/tier`);
|
|
254
229
|
const currentLevel = response.currentLevel;
|
|
@@ -272,8 +247,7 @@ export async function memberGetTierProgress(input) {
|
|
|
272
247
|
}
|
|
273
248
|
}
|
|
274
249
|
export async function memberAssignTier(input) {
|
|
275
|
-
const
|
|
276
|
-
const storeCode = input.storeCode || config.defaultStoreCode;
|
|
250
|
+
const storeCode = getStoreCode(input.storeCode);
|
|
277
251
|
try {
|
|
278
252
|
await apiPost(`/${storeCode}/member/${input.memberId}/tier`, { levelId: input.levelId });
|
|
279
253
|
}
|
|
@@ -282,8 +256,7 @@ export async function memberAssignTier(input) {
|
|
|
282
256
|
}
|
|
283
257
|
}
|
|
284
258
|
export async function memberRemoveManualTier(input) {
|
|
285
|
-
const
|
|
286
|
-
const storeCode = input.storeCode || config.defaultStoreCode;
|
|
259
|
+
const storeCode = getStoreCode(input.storeCode);
|
|
287
260
|
try {
|
|
288
261
|
// API uses POST to /remove-manually-level, not DELETE to /tier
|
|
289
262
|
await apiPost(`/${storeCode}/member/${input.memberId}/remove-manually-level`);
|
|
@@ -296,62 +269,83 @@ export async function memberRemoveManualTier(input) {
|
|
|
296
269
|
export const memberToolDefinitions = [
|
|
297
270
|
{
|
|
298
271
|
name: "openloyalty_member_create",
|
|
272
|
+
title: "Register New Member",
|
|
299
273
|
description: "Register a new loyalty program member. Returns memberId for subsequent operations like points_add or member_get. Email must be unique within the store.",
|
|
274
|
+
readOnly: false,
|
|
300
275
|
inputSchema: MemberCreateInputSchema,
|
|
301
276
|
handler: memberCreate,
|
|
302
277
|
},
|
|
303
278
|
{
|
|
304
279
|
name: "openloyalty_member_get",
|
|
280
|
+
title: "Get Member Profile",
|
|
305
281
|
description: "Get member details including profile, points balance, and tier status. Use memberId from member_create or member_list.",
|
|
282
|
+
readOnly: true,
|
|
306
283
|
inputSchema: MemberGetInputSchema,
|
|
307
284
|
handler: memberGet,
|
|
308
285
|
},
|
|
309
286
|
{
|
|
310
287
|
name: "openloyalty_member_list",
|
|
288
|
+
title: "Search Members",
|
|
311
289
|
description: "Search and list members with optional filters. Use member_get for full details of a specific member. " +
|
|
312
290
|
"Supports cursor pagination: provide 'cursor' from previous response to get next page.",
|
|
291
|
+
readOnly: true,
|
|
313
292
|
inputSchema: MemberListInputSchema,
|
|
314
293
|
handler: memberList,
|
|
315
294
|
},
|
|
316
295
|
{
|
|
317
296
|
name: "openloyalty_member_update",
|
|
297
|
+
title: "Update Member Profile",
|
|
318
298
|
description: "Update member profile fields. Cannot change email. Use member_get first to see current values.",
|
|
299
|
+
readOnly: false,
|
|
319
300
|
inputSchema: MemberUpdateInputSchema,
|
|
320
301
|
handler: memberUpdate,
|
|
321
302
|
},
|
|
322
303
|
{
|
|
323
304
|
name: "openloyalty_member_activate",
|
|
305
|
+
title: "Activate Member Account",
|
|
324
306
|
description: "Activate a member account. Inactive members cannot earn or spend points.",
|
|
307
|
+
readOnly: false,
|
|
325
308
|
inputSchema: MemberIdInputSchema,
|
|
326
309
|
handler: memberActivate,
|
|
327
310
|
},
|
|
328
311
|
{
|
|
329
312
|
name: "openloyalty_member_deactivate",
|
|
313
|
+
title: "Deactivate Member Account",
|
|
330
314
|
description: "Deactivate a member account. Deactivated members cannot earn or spend points but retain their balance.",
|
|
315
|
+
readOnly: false,
|
|
331
316
|
inputSchema: MemberIdInputSchema,
|
|
332
317
|
handler: memberDeactivate,
|
|
333
318
|
},
|
|
334
319
|
{
|
|
335
320
|
name: "openloyalty_member_delete",
|
|
321
|
+
title: "Delete Member (Permanent)",
|
|
336
322
|
description: "Permanently removes member and all associated data. Cannot be undone. Use for GDPR compliance or member requests.",
|
|
323
|
+
readOnly: false,
|
|
324
|
+
destructive: true,
|
|
337
325
|
inputSchema: MemberIdInputSchema,
|
|
338
326
|
handler: memberDelete,
|
|
339
327
|
},
|
|
340
328
|
{
|
|
341
329
|
name: "openloyalty_member_get_tier_progress",
|
|
330
|
+
title: "Check Tier Progress",
|
|
342
331
|
description: "Get member tier progression status showing current tier and progress to next. Returns currentValue, requiredValue, and progressPercent.",
|
|
332
|
+
readOnly: true,
|
|
343
333
|
inputSchema: MemberIdInputSchema,
|
|
344
334
|
handler: memberGetTierProgress,
|
|
345
335
|
},
|
|
346
336
|
{
|
|
347
337
|
name: "openloyalty_member_assign_tier",
|
|
338
|
+
title: "Assign Tier to Member",
|
|
348
339
|
description: "Manually assign a tier level to a member, overriding automatic tier calculation. Use tierset_get_tiers to find available levelId values.",
|
|
340
|
+
readOnly: false,
|
|
349
341
|
inputSchema: MemberAssignTierInputSchema,
|
|
350
342
|
handler: memberAssignTier,
|
|
351
343
|
},
|
|
352
344
|
{
|
|
353
345
|
name: "openloyalty_member_remove_manual_tier",
|
|
346
|
+
title: "Remove Manual Tier Assignment",
|
|
354
347
|
description: "Remove manually assigned tier from member, restoring automatic tier calculation based on conditions.",
|
|
348
|
+
readOnly: false,
|
|
355
349
|
inputSchema: MemberIdInputSchema,
|
|
356
350
|
handler: memberRemoveManualTier,
|
|
357
351
|
},
|
package/dist/tools/points.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import "../types/schemas/points.js";
|
|
2
3
|
export declare const PointsAddInputSchema: {
|
|
3
4
|
storeCode: z.ZodOptional<z.ZodString>;
|
|
4
5
|
memberId: z.ZodString;
|
|
@@ -118,8 +119,10 @@ export declare function pointsGetHistogram(input: {
|
|
|
118
119
|
balance: number;
|
|
119
120
|
}>>;
|
|
120
121
|
export declare const pointsToolDefinitions: readonly [{
|
|
121
|
-
readonly name: "
|
|
122
|
+
readonly name: "ol_points_add";
|
|
123
|
+
readonly title: "Add Points to Member";
|
|
122
124
|
readonly description: string;
|
|
125
|
+
readonly readOnly: false;
|
|
123
126
|
readonly inputSchema: {
|
|
124
127
|
storeCode: z.ZodOptional<z.ZodString>;
|
|
125
128
|
memberId: z.ZodString;
|
|
@@ -131,8 +134,10 @@ export declare const pointsToolDefinitions: readonly [{
|
|
|
131
134
|
};
|
|
132
135
|
readonly handler: typeof pointsAdd;
|
|
133
136
|
}, {
|
|
134
|
-
readonly name: "
|
|
137
|
+
readonly name: "ol_points_spend";
|
|
138
|
+
readonly title: "Spend Member Points";
|
|
135
139
|
readonly description: string;
|
|
140
|
+
readonly readOnly: false;
|
|
136
141
|
readonly inputSchema: {
|
|
137
142
|
storeCode: z.ZodOptional<z.ZodString>;
|
|
138
143
|
memberId: z.ZodString;
|
|
@@ -142,8 +147,10 @@ export declare const pointsToolDefinitions: readonly [{
|
|
|
142
147
|
};
|
|
143
148
|
readonly handler: typeof pointsSpend;
|
|
144
149
|
}, {
|
|
145
|
-
readonly name: "
|
|
150
|
+
readonly name: "ol_points_transfer";
|
|
151
|
+
readonly title: "Transfer Points Between Members";
|
|
146
152
|
readonly description: string;
|
|
153
|
+
readonly readOnly: false;
|
|
147
154
|
readonly inputSchema: {
|
|
148
155
|
storeCode: z.ZodOptional<z.ZodString>;
|
|
149
156
|
senderId: z.ZodString;
|
|
@@ -152,8 +159,10 @@ export declare const pointsToolDefinitions: readonly [{
|
|
|
152
159
|
};
|
|
153
160
|
readonly handler: typeof pointsTransfer;
|
|
154
161
|
}, {
|
|
155
|
-
readonly name: "
|
|
162
|
+
readonly name: "ol_points_get_balance";
|
|
163
|
+
readonly title: "Check Points Balance";
|
|
156
164
|
readonly description: string;
|
|
165
|
+
readonly readOnly: true;
|
|
157
166
|
readonly inputSchema: {
|
|
158
167
|
storeCode: z.ZodOptional<z.ZodString>;
|
|
159
168
|
memberId: z.ZodString;
|
|
@@ -161,8 +170,10 @@ export declare const pointsToolDefinitions: readonly [{
|
|
|
161
170
|
};
|
|
162
171
|
readonly handler: typeof pointsGetBalance;
|
|
163
172
|
}, {
|
|
164
|
-
readonly name: "
|
|
173
|
+
readonly name: "ol_points_get_history";
|
|
174
|
+
readonly title: "View Points History";
|
|
165
175
|
readonly description: string;
|
|
176
|
+
readonly readOnly: true;
|
|
166
177
|
readonly inputSchema: {
|
|
167
178
|
storeCode: z.ZodOptional<z.ZodString>;
|
|
168
179
|
memberId: z.ZodString;
|
|
@@ -173,8 +184,10 @@ export declare const pointsToolDefinitions: readonly [{
|
|
|
173
184
|
};
|
|
174
185
|
readonly handler: typeof pointsGetHistory;
|
|
175
186
|
}, {
|
|
176
|
-
readonly name: "
|
|
187
|
+
readonly name: "ol_points_get_histogram";
|
|
188
|
+
readonly title: "View Points Trends";
|
|
177
189
|
readonly description: string;
|
|
190
|
+
readonly readOnly: true;
|
|
178
191
|
readonly inputSchema: {
|
|
179
192
|
storeCode: z.ZodOptional<z.ZodString>;
|
|
180
193
|
memberId: z.ZodString;
|