@lehaotech/walmart-mcp 0.5.4

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 (87) hide show
  1. package/.env.example +25 -0
  2. package/CHANGELOG.md +247 -0
  3. package/LICENSE +21 -0
  4. package/README.md +344 -0
  5. package/build/api/advertising/ad-client.d.ts +24 -0
  6. package/build/api/advertising/ad-client.js +174 -0
  7. package/build/api/advertising/advertising-api.d.ts +50 -0
  8. package/build/api/advertising/advertising-api.js +89 -0
  9. package/build/api/client.d.ts +19 -0
  10. package/build/api/client.js +150 -0
  11. package/build/api/feeds/feeds-api.d.ts +15 -0
  12. package/build/api/feeds/feeds-api.js +53 -0
  13. package/build/api/fulfillment/fulfillment-api.d.ts +37 -0
  14. package/build/api/fulfillment/fulfillment-api.js +81 -0
  15. package/build/api/index.d.ts +44 -0
  16. package/build/api/index.js +56 -0
  17. package/build/api/inventory/inventory-api.d.ts +27 -0
  18. package/build/api/inventory/inventory-api.js +49 -0
  19. package/build/api/items/items-api.d.ts +33 -0
  20. package/build/api/items/items-api.js +67 -0
  21. package/build/api/notifications/notifications-api.d.ts +14 -0
  22. package/build/api/notifications/notifications-api.js +33 -0
  23. package/build/api/orders/orders-api.d.ts +32 -0
  24. package/build/api/orders/orders-api.js +47 -0
  25. package/build/api/pricing/pricing-api.d.ts +32 -0
  26. package/build/api/pricing/pricing-api.js +60 -0
  27. package/build/api/reports/reports-api.d.ts +37 -0
  28. package/build/api/reports/reports-api.js +51 -0
  29. package/build/api/returns/returns-api.d.ts +26 -0
  30. package/build/api/returns/returns-api.js +37 -0
  31. package/build/api/settings/settings-api.d.ts +9 -0
  32. package/build/api/settings/settings-api.js +21 -0
  33. package/build/auth/oauth.d.ts +16 -0
  34. package/build/auth/oauth.js +125 -0
  35. package/build/config/environment.d.ts +22 -0
  36. package/build/config/environment.js +50 -0
  37. package/build/index.d.ts +2 -0
  38. package/build/index.js +180 -0
  39. package/build/scripts/client-configs.d.ts +36 -0
  40. package/build/scripts/client-configs.js +132 -0
  41. package/build/scripts/diagnose.d.ts +15 -0
  42. package/build/scripts/diagnose.js +320 -0
  43. package/build/scripts/setup.d.ts +17 -0
  44. package/build/scripts/setup.js +276 -0
  45. package/build/tools/definitions/advertising.d.ts +664 -0
  46. package/build/tools/definitions/advertising.js +315 -0
  47. package/build/tools/definitions/discovery.d.ts +24 -0
  48. package/build/tools/definitions/discovery.js +65 -0
  49. package/build/tools/definitions/feeds.d.ts +46 -0
  50. package/build/tools/definitions/feeds.js +42 -0
  51. package/build/tools/definitions/fulfillment.d.ts +1127 -0
  52. package/build/tools/definitions/fulfillment.js +272 -0
  53. package/build/tools/definitions/inventory.d.ts +392 -0
  54. package/build/tools/definitions/inventory.js +182 -0
  55. package/build/tools/definitions/items.d.ts +447 -0
  56. package/build/tools/definitions/items.js +223 -0
  57. package/build/tools/definitions/notifications.d.ts +84 -0
  58. package/build/tools/definitions/notifications.js +73 -0
  59. package/build/tools/definitions/orders.d.ts +2659 -0
  60. package/build/tools/definitions/orders.js +298 -0
  61. package/build/tools/definitions/pricing.d.ts +724 -0
  62. package/build/tools/definitions/pricing.js +254 -0
  63. package/build/tools/definitions/reports.d.ts +223 -0
  64. package/build/tools/definitions/reports.js +144 -0
  65. package/build/tools/definitions/returns.d.ts +441 -0
  66. package/build/tools/definitions/returns.js +126 -0
  67. package/build/tools/definitions/settings.d.ts +100 -0
  68. package/build/tools/definitions/settings.js +52 -0
  69. package/build/tools/definitions/shared-schemas.d.ts +40 -0
  70. package/build/tools/definitions/shared-schemas.js +47 -0
  71. package/build/tools/definitions/token-management.d.ts +16 -0
  72. package/build/tools/definitions/token-management.js +41 -0
  73. package/build/tools/index.d.ts +6924 -0
  74. package/build/tools/index.js +379 -0
  75. package/build/utils/api-error.d.ts +41 -0
  76. package/build/utils/api-error.js +97 -0
  77. package/build/utils/endpoint-catalog.d.ts +22 -0
  78. package/build/utils/endpoint-catalog.js +89 -0
  79. package/build/utils/env-file.d.ts +12 -0
  80. package/build/utils/env-file.js +27 -0
  81. package/build/utils/known-issues.d.ts +29 -0
  82. package/build/utils/known-issues.js +122 -0
  83. package/build/utils/logger.d.ts +15 -0
  84. package/build/utils/logger.js +56 -0
  85. package/build/utils/rate-limiter.d.ts +51 -0
  86. package/build/utils/rate-limiter.js +109 -0
  87. package/package.json +1 -0
@@ -0,0 +1,223 @@
1
+ import { z } from 'zod';
2
+ import { SkuSchema, GtinSchema } from './shared-schemas.js';
3
+ // ---------- MP_ITEM feed envelope ----------
4
+ const MpItemEnvelopeSchema = z
5
+ .object({
6
+ MPItemFeedHeader: z
7
+ .object({
8
+ version: z.string().default('5.0'),
9
+ sellingChannel: z.literal('marketplace').default('marketplace'),
10
+ locale: z.string().default('en'),
11
+ requestId: z.string().optional(),
12
+ })
13
+ .passthrough(),
14
+ MPItem: z
15
+ .array(z
16
+ .object({
17
+ Item: z
18
+ .object({
19
+ sku: SkuSchema,
20
+ productIdentifiers: z
21
+ .object({
22
+ productIdType: z.enum(['GTIN', 'UPC', 'ISBN', 'EAN']).optional(),
23
+ productId: z.string().min(1).optional(),
24
+ })
25
+ .passthrough()
26
+ .optional(),
27
+ })
28
+ .passthrough(),
29
+ })
30
+ .passthrough())
31
+ .min(1, 'MP_ITEM feed needs at least 1 item')
32
+ .max(10_000, 'Walmart caps MP_ITEM feeds at ~10000 items per submission'),
33
+ })
34
+ .strict();
35
+ // ---------- MP_MAINTENANCE feed envelope ----------
36
+ const MpMaintenanceEnvelopeSchema = z
37
+ .object({
38
+ MPItemFeedHeader: z
39
+ .object({
40
+ version: z.string().default('5.0'),
41
+ sellingChannel: z.literal('marketplace').default('marketplace'),
42
+ locale: z.string().default('en'),
43
+ requestId: z.string().optional(),
44
+ })
45
+ .passthrough(),
46
+ MPItem: z
47
+ .array(z.object({ Item: z.object({ sku: SkuSchema }).passthrough() }).passthrough())
48
+ .min(1)
49
+ .max(10_000),
50
+ })
51
+ .strict();
52
+ // ---------- MP_RETIRE_ITEM bulk retire ----------
53
+ const BulkRetireSchema = z
54
+ .object({
55
+ skus: z
56
+ .array(z.object({ sku: SkuSchema }).strict())
57
+ .min(1, 'Need at least 1 SKU to retire')
58
+ .max(1_000, 'Bulk retire capped at 1000 SKUs per call'),
59
+ })
60
+ .strict();
61
+ // ---------- Hazmat search ----------
62
+ const HazmatSearchSchema = z
63
+ .object({
64
+ sku: SkuSchema.optional(),
65
+ gtin: GtinSchema.optional(),
66
+ limit: z.number().int().min(1).max(200).optional(),
67
+ offset: z.number().int().min(0).optional(),
68
+ })
69
+ .passthrough();
70
+ // ---------- WFS item feed (feedType=WFS_ITEM) ----------
71
+ // Walmart WFS item feed includes per-item dimensions, weight, and storage attributes.
72
+ const WfsItemEnvelopeSchema = z
73
+ .object({
74
+ WFSItemFeedHeader: z
75
+ .object({
76
+ version: z.string().default('1.0'),
77
+ feedDate: z.string().datetime({ offset: true }).optional(),
78
+ })
79
+ .passthrough(),
80
+ WFSItem: z
81
+ .array(z
82
+ .object({
83
+ sku: SkuSchema,
84
+ wfsAttributes: z
85
+ .object({
86
+ weight: z.number().positive().optional(),
87
+ weightUnit: z.enum(['LB', 'OZ', 'KG', 'G']).optional(),
88
+ length: z.number().positive().optional(),
89
+ width: z.number().positive().optional(),
90
+ height: z.number().positive().optional(),
91
+ dimensionUnit: z.enum(['IN', 'CM']).optional(),
92
+ })
93
+ .passthrough()
94
+ .optional(),
95
+ })
96
+ .passthrough())
97
+ .min(1)
98
+ .max(10_000),
99
+ })
100
+ .strict();
101
+ // ---------- OMNI_WFS conversion feed ----------
102
+ // Converts existing SF SKUs to WFS-fulfilled. Body has list of SKUs and unit attributes.
103
+ const ConvertToWfsEnvelopeSchema = z
104
+ .object({
105
+ OmniWFSFeedHeader: z
106
+ .object({
107
+ version: z.string().default('1.0'),
108
+ })
109
+ .passthrough(),
110
+ OmniWFSItem: z
111
+ .array(z
112
+ .object({
113
+ sku: SkuSchema,
114
+ convertToWFS: z.boolean().default(true),
115
+ })
116
+ .passthrough())
117
+ .min(1)
118
+ .max(10_000),
119
+ })
120
+ .strict();
121
+ export const itemTools = [
122
+ {
123
+ name: 'walmart_get_all_items',
124
+ description: 'Get all items in the seller catalog with pagination. Returns item details including SKU, ' +
125
+ 'title, price, publish status, and lifecycle status.',
126
+ inputSchema: {
127
+ limit: z.number().int().min(1).max(50).optional().describe('Items per page (default 20, max 50)'),
128
+ offset: z.string().optional().describe('Pagination offset token from previous response'),
129
+ lifecycleStatus: z.enum(['ACTIVE', 'RETIRED']).optional().describe('Filter by lifecycle status'),
130
+ publishedStatus: z.enum(['PUBLISHED', 'UNPUBLISHED', 'STAGE']).optional().describe('Filter by publish status'),
131
+ sku: z.string().optional().describe('Filter by specific SKU'),
132
+ },
133
+ },
134
+ {
135
+ name: 'walmart_get_item',
136
+ description: 'Get a single item by SKU. Returns full item details including product attributes, price, ' +
137
+ 'inventory, and listing quality.',
138
+ inputSchema: {
139
+ sku: z.string().describe('Seller-defined SKU identifier'),
140
+ },
141
+ },
142
+ {
143
+ name: 'walmart_retire_item',
144
+ description: 'Retire (unpublish) an item by SKU. This removes the item from the Walmart marketplace. ' +
145
+ 'The item can be re-listed later by submitting an MP_ITEM feed for the same SKU.',
146
+ inputSchema: {
147
+ sku: SkuSchema.describe('SKU of the item to retire'),
148
+ },
149
+ },
150
+ {
151
+ name: 'walmart_bulk_retire_items',
152
+ description: 'Retire multiple items at once. Pass `skus: [{ sku }, ...]`. Walmart caps bulk retire at ' +
153
+ '~1000 SKUs per call.',
154
+ inputSchema: {
155
+ skus: BulkRetireSchema.shape.skus,
156
+ },
157
+ },
158
+ {
159
+ name: 'walmart_get_item_count',
160
+ description: 'Get item count grouped by status. Useful for monitoring catalog health. The status ' +
161
+ 'parameter is required by Walmart and defaults to PUBLISHED.',
162
+ inputSchema: {
163
+ status: z.enum(['PUBLISHED', 'UNPUBLISHED', 'STAGE']).optional().describe('Item status to count (defaults to PUBLISHED)'),
164
+ lifecycleStatus: z.enum(['ACTIVE', 'RETIRED']).optional().describe('Filter by lifecycle status'),
165
+ publishedStatus: z.enum(['PUBLISHED', 'UNPUBLISHED', 'STAGE']).optional().describe('Filter by publish status'),
166
+ },
167
+ },
168
+ {
169
+ name: 'walmart_get_taxonomy',
170
+ description: 'Get the complete Walmart product taxonomy (category hierarchy). Use this to find the correct category for item setup.',
171
+ inputSchema: {},
172
+ },
173
+ {
174
+ name: 'walmart_get_item_spec',
175
+ description: 'Get the item specification (required and optional attributes) for a product type. Use this before creating items to know which fields are needed.',
176
+ inputSchema: {
177
+ productType: z.string().describe('Product type name from taxonomy (e.g., "Electronics", "Clothing")'),
178
+ version: z.string().optional().describe('Spec version (optional)'),
179
+ },
180
+ },
181
+ {
182
+ name: 'walmart_submit_item_feed',
183
+ description: 'Submit a bulk item creation feed (feedType=item). Envelope: { MPItemFeedHeader, ' +
184
+ 'MPItem: [{ Item: { sku, productIdentifiers, ...attributes } }] }. Per-item content fields ' +
185
+ 'vary by productType — call walmart_get_item_spec first. Returns a feedId.',
186
+ inputSchema: {
187
+ feedData: MpItemEnvelopeSchema,
188
+ },
189
+ },
190
+ {
191
+ name: 'walmart_submit_item_update_feed',
192
+ description: 'Submit a bulk item update / maintenance feed (feedType=MP_MAINTENANCE). Same envelope as ' +
193
+ 'item creation but for updating existing SKUs. Returns a feedId.',
194
+ inputSchema: {
195
+ feedData: MpMaintenanceEnvelopeSchema,
196
+ },
197
+ },
198
+ {
199
+ name: 'walmart_submit_wfs_item_feed',
200
+ description: 'Submit a WFS item setup feed (feedType=WFS_ITEM). Envelope: { WFSItemFeedHeader, ' +
201
+ 'WFSItem: [{ sku, wfsAttributes: { weight, length, width, height, units } }] }. ' +
202
+ 'Returns a feedId.',
203
+ inputSchema: {
204
+ feedData: WfsItemEnvelopeSchema,
205
+ },
206
+ },
207
+ {
208
+ name: 'walmart_convert_to_wfs',
209
+ description: 'Convert existing seller-fulfilled items to WFS fulfillment (feedType=OMNI_WFS). Envelope: ' +
210
+ '{ OmniWFSFeedHeader, OmniWFSItem: [{ sku, convertToWFS: true }] }.',
211
+ inputSchema: {
212
+ feedData: ConvertToWfsEnvelopeSchema,
213
+ },
214
+ },
215
+ {
216
+ name: 'walmart_get_hazmat_items',
217
+ description: 'Get items on hold for hazmat compliance review (POST /v3/items/onhold/search). These items ' +
218
+ 'need compliance documentation before they can be published.',
219
+ inputSchema: {
220
+ requestData: HazmatSearchSchema.optional(),
221
+ },
222
+ },
223
+ ];
@@ -0,0 +1,84 @@
1
+ import { z } from 'zod';
2
+ export declare const notificationTools: ({
3
+ name: string;
4
+ description: string;
5
+ inputSchema: {
6
+ subscriptionData: z.ZodEffects<z.ZodObject<{
7
+ eventType: z.ZodEnum<["PO_CREATED", "PO_LINE_AUTOCANCELLED", "OFFER_UNPUBLISHED", "BUYBOX_CHANGED", "PRICE_CHANGED", "INVENTORY_CHANGED", "RETURN_CREATED", "ITEM_PUBLISHED", "ITEM_UNPUBLISHED"]>;
8
+ destinationUrl: z.ZodString;
9
+ format: z.ZodDefault<z.ZodEnum<["JSON", "XML"]>>;
10
+ isActive: z.ZodDefault<z.ZodBoolean>;
11
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
12
+ eventType: z.ZodEnum<["PO_CREATED", "PO_LINE_AUTOCANCELLED", "OFFER_UNPUBLISHED", "BUYBOX_CHANGED", "PRICE_CHANGED", "INVENTORY_CHANGED", "RETURN_CREATED", "ITEM_PUBLISHED", "ITEM_UNPUBLISHED"]>;
13
+ destinationUrl: z.ZodString;
14
+ format: z.ZodDefault<z.ZodEnum<["JSON", "XML"]>>;
15
+ isActive: z.ZodDefault<z.ZodBoolean>;
16
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
17
+ eventType: z.ZodEnum<["PO_CREATED", "PO_LINE_AUTOCANCELLED", "OFFER_UNPUBLISHED", "BUYBOX_CHANGED", "PRICE_CHANGED", "INVENTORY_CHANGED", "RETURN_CREATED", "ITEM_PUBLISHED", "ITEM_UNPUBLISHED"]>;
18
+ destinationUrl: z.ZodString;
19
+ format: z.ZodDefault<z.ZodEnum<["JSON", "XML"]>>;
20
+ isActive: z.ZodDefault<z.ZodBoolean>;
21
+ }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
22
+ eventType: z.ZodEnum<["PO_CREATED", "PO_LINE_AUTOCANCELLED", "OFFER_UNPUBLISHED", "BUYBOX_CHANGED", "PRICE_CHANGED", "INVENTORY_CHANGED", "RETURN_CREATED", "ITEM_PUBLISHED", "ITEM_UNPUBLISHED"]>;
23
+ destinationUrl: z.ZodString;
24
+ format: z.ZodDefault<z.ZodEnum<["JSON", "XML"]>>;
25
+ isActive: z.ZodDefault<z.ZodBoolean>;
26
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
27
+ eventType: z.ZodEnum<["PO_CREATED", "PO_LINE_AUTOCANCELLED", "OFFER_UNPUBLISHED", "BUYBOX_CHANGED", "PRICE_CHANGED", "INVENTORY_CHANGED", "RETURN_CREATED", "ITEM_PUBLISHED", "ITEM_UNPUBLISHED"]>;
28
+ destinationUrl: z.ZodString;
29
+ format: z.ZodDefault<z.ZodEnum<["JSON", "XML"]>>;
30
+ isActive: z.ZodDefault<z.ZodBoolean>;
31
+ }, z.ZodTypeAny, "passthrough">>;
32
+ eventType?: undefined;
33
+ subscriptionId?: undefined;
34
+ };
35
+ } | {
36
+ name: string;
37
+ description: string;
38
+ inputSchema: {
39
+ eventType: z.ZodOptional<z.ZodEnum<["PO_CREATED", "PO_LINE_AUTOCANCELLED", "OFFER_UNPUBLISHED", "BUYBOX_CHANGED", "PRICE_CHANGED", "INVENTORY_CHANGED", "RETURN_CREATED", "ITEM_PUBLISHED", "ITEM_UNPUBLISHED"]>>;
40
+ subscriptionData?: undefined;
41
+ subscriptionId?: undefined;
42
+ };
43
+ } | {
44
+ name: string;
45
+ description: string;
46
+ inputSchema: {
47
+ subscriptionId: z.ZodString;
48
+ subscriptionData?: undefined;
49
+ eventType?: undefined;
50
+ };
51
+ } | {
52
+ name: string;
53
+ description: string;
54
+ inputSchema: {
55
+ subscriptionId: z.ZodString;
56
+ subscriptionData: z.ZodEffects<z.ZodObject<{
57
+ eventType: z.ZodEnum<["PO_CREATED", "PO_LINE_AUTOCANCELLED", "OFFER_UNPUBLISHED", "BUYBOX_CHANGED", "PRICE_CHANGED", "INVENTORY_CHANGED", "RETURN_CREATED", "ITEM_PUBLISHED", "ITEM_UNPUBLISHED"]>;
58
+ destinationUrl: z.ZodString;
59
+ format: z.ZodDefault<z.ZodEnum<["JSON", "XML"]>>;
60
+ isActive: z.ZodDefault<z.ZodBoolean>;
61
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
62
+ eventType: z.ZodEnum<["PO_CREATED", "PO_LINE_AUTOCANCELLED", "OFFER_UNPUBLISHED", "BUYBOX_CHANGED", "PRICE_CHANGED", "INVENTORY_CHANGED", "RETURN_CREATED", "ITEM_PUBLISHED", "ITEM_UNPUBLISHED"]>;
63
+ destinationUrl: z.ZodString;
64
+ format: z.ZodDefault<z.ZodEnum<["JSON", "XML"]>>;
65
+ isActive: z.ZodDefault<z.ZodBoolean>;
66
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
67
+ eventType: z.ZodEnum<["PO_CREATED", "PO_LINE_AUTOCANCELLED", "OFFER_UNPUBLISHED", "BUYBOX_CHANGED", "PRICE_CHANGED", "INVENTORY_CHANGED", "RETURN_CREATED", "ITEM_PUBLISHED", "ITEM_UNPUBLISHED"]>;
68
+ destinationUrl: z.ZodString;
69
+ format: z.ZodDefault<z.ZodEnum<["JSON", "XML"]>>;
70
+ isActive: z.ZodDefault<z.ZodBoolean>;
71
+ }, z.ZodTypeAny, "passthrough">>, z.objectOutputType<{
72
+ eventType: z.ZodEnum<["PO_CREATED", "PO_LINE_AUTOCANCELLED", "OFFER_UNPUBLISHED", "BUYBOX_CHANGED", "PRICE_CHANGED", "INVENTORY_CHANGED", "RETURN_CREATED", "ITEM_PUBLISHED", "ITEM_UNPUBLISHED"]>;
73
+ destinationUrl: z.ZodString;
74
+ format: z.ZodDefault<z.ZodEnum<["JSON", "XML"]>>;
75
+ isActive: z.ZodDefault<z.ZodBoolean>;
76
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
77
+ eventType: z.ZodEnum<["PO_CREATED", "PO_LINE_AUTOCANCELLED", "OFFER_UNPUBLISHED", "BUYBOX_CHANGED", "PRICE_CHANGED", "INVENTORY_CHANGED", "RETURN_CREATED", "ITEM_PUBLISHED", "ITEM_UNPUBLISHED"]>;
78
+ destinationUrl: z.ZodString;
79
+ format: z.ZodDefault<z.ZodEnum<["JSON", "XML"]>>;
80
+ isActive: z.ZodDefault<z.ZodBoolean>;
81
+ }, z.ZodTypeAny, "passthrough">>;
82
+ eventType?: undefined;
83
+ };
84
+ })[];
@@ -0,0 +1,73 @@
1
+ import { z } from 'zod';
2
+ const WalmartEventTypeSchema = z.enum([
3
+ 'PO_CREATED',
4
+ 'PO_LINE_AUTOCANCELLED',
5
+ 'OFFER_UNPUBLISHED',
6
+ 'BUYBOX_CHANGED',
7
+ 'PRICE_CHANGED',
8
+ 'INVENTORY_CHANGED',
9
+ 'RETURN_CREATED',
10
+ 'ITEM_PUBLISHED',
11
+ 'ITEM_UNPUBLISHED',
12
+ ]);
13
+ const SubscriptionBodySchema = z
14
+ .object({
15
+ eventType: WalmartEventTypeSchema,
16
+ destinationUrl: z
17
+ .string()
18
+ .url('destinationUrl must be a valid HTTPS URL'),
19
+ format: z.enum(['JSON', 'XML']).default('JSON'),
20
+ isActive: z.boolean().default(true),
21
+ })
22
+ .passthrough()
23
+ .refine((s) => s.destinationUrl.startsWith('https://'), {
24
+ message: 'Walmart requires HTTPS for webhook destinations',
25
+ path: ['destinationUrl'],
26
+ });
27
+ export const notificationTools = [
28
+ {
29
+ name: 'walmart_create_subscription',
30
+ description: 'Create a webhook subscription for event notifications. Required: eventType + destinationUrl ' +
31
+ '(HTTPS only). Events: PO_CREATED, PO_LINE_AUTOCANCELLED, OFFER_UNPUBLISHED, BUYBOX_CHANGED, ' +
32
+ 'PRICE_CHANGED, INVENTORY_CHANGED, RETURN_CREATED, ITEM_PUBLISHED, ITEM_UNPUBLISHED.',
33
+ inputSchema: {
34
+ subscriptionData: SubscriptionBodySchema,
35
+ },
36
+ },
37
+ {
38
+ name: 'walmart_get_subscriptions',
39
+ description: 'List all webhook subscriptions with optional event type filter.',
40
+ inputSchema: {
41
+ eventType: WalmartEventTypeSchema.optional().describe('Filter by event type'),
42
+ },
43
+ },
44
+ {
45
+ name: 'walmart_get_subscription',
46
+ description: 'Get details of a specific webhook subscription.',
47
+ inputSchema: {
48
+ subscriptionId: z.string().describe('Subscription ID'),
49
+ },
50
+ },
51
+ {
52
+ name: 'walmart_update_subscription',
53
+ description: 'Update an existing webhook subscription (e.g., change URL or status).',
54
+ inputSchema: {
55
+ subscriptionId: z.string().describe('Subscription ID to update'),
56
+ subscriptionData: SubscriptionBodySchema,
57
+ },
58
+ },
59
+ {
60
+ name: 'walmart_delete_subscription',
61
+ description: 'Delete a webhook subscription. Events will no longer be sent to the destination URL.',
62
+ inputSchema: {
63
+ subscriptionId: z.string().describe('Subscription ID to delete'),
64
+ },
65
+ },
66
+ {
67
+ name: 'walmart_test_subscription',
68
+ description: 'Send a test event to a webhook subscription to verify the endpoint is working correctly.',
69
+ inputSchema: {
70
+ subscriptionId: z.string().describe('Subscription ID to test'),
71
+ },
72
+ },
73
+ ];