ebay-mcp 1.4.3

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 (205) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +586 -0
  3. package/build/api/account-management/account.d.ts +216 -0
  4. package/build/api/account-management/account.js +305 -0
  5. package/build/api/analytics-and-report/analytics.d.ts +33 -0
  6. package/build/api/analytics-and-report/analytics.js +102 -0
  7. package/build/api/client.d.ts +89 -0
  8. package/build/api/client.js +343 -0
  9. package/build/api/communication/feedback.d.ts +45 -0
  10. package/build/api/communication/feedback.js +119 -0
  11. package/build/api/communication/message.d.ts +55 -0
  12. package/build/api/communication/message.js +131 -0
  13. package/build/api/communication/negotiation.d.ts +39 -0
  14. package/build/api/communication/negotiation.js +97 -0
  15. package/build/api/communication/notification.d.ts +128 -0
  16. package/build/api/communication/notification.js +373 -0
  17. package/build/api/index.d.ts +96 -0
  18. package/build/api/index.js +121 -0
  19. package/build/api/listing-management/inventory.d.ts +216 -0
  20. package/build/api/listing-management/inventory.js +633 -0
  21. package/build/api/listing-metadata/metadata.d.ts +154 -0
  22. package/build/api/listing-metadata/metadata.js +485 -0
  23. package/build/api/listing-metadata/taxonomy.d.ts +38 -0
  24. package/build/api/listing-metadata/taxonomy.js +58 -0
  25. package/build/api/marketing-and-promotions/marketing.d.ts +395 -0
  26. package/build/api/marketing-and-promotions/marketing.js +565 -0
  27. package/build/api/marketing-and-promotions/recommendation.d.ts +20 -0
  28. package/build/api/marketing-and-promotions/recommendation.js +32 -0
  29. package/build/api/order-management/dispute.d.ts +65 -0
  30. package/build/api/order-management/dispute.js +69 -0
  31. package/build/api/order-management/fulfillment.d.ts +80 -0
  32. package/build/api/order-management/fulfillment.js +89 -0
  33. package/build/api/other/compliance.d.ts +26 -0
  34. package/build/api/other/compliance.js +47 -0
  35. package/build/api/other/edelivery.d.ts +153 -0
  36. package/build/api/other/edelivery.js +219 -0
  37. package/build/api/other/identity.d.ts +17 -0
  38. package/build/api/other/identity.js +24 -0
  39. package/build/api/other/translation.d.ts +14 -0
  40. package/build/api/other/translation.js +22 -0
  41. package/build/api/other/vero.d.ts +30 -0
  42. package/build/api/other/vero.js +48 -0
  43. package/build/auth/oauth-metadata.d.ts +46 -0
  44. package/build/auth/oauth-metadata.js +59 -0
  45. package/build/auth/oauth-middleware.d.ts +35 -0
  46. package/build/auth/oauth-middleware.js +99 -0
  47. package/build/auth/oauth-types.d.ts +66 -0
  48. package/build/auth/oauth-types.js +4 -0
  49. package/build/auth/oauth.d.ts +93 -0
  50. package/build/auth/oauth.js +383 -0
  51. package/build/auth/scope-utils.d.ts +70 -0
  52. package/build/auth/scope-utils.js +304 -0
  53. package/build/auth/token-verifier.d.ts +57 -0
  54. package/build/auth/token-verifier.js +172 -0
  55. package/build/config/environment.d.ts +61 -0
  56. package/build/config/environment.js +260 -0
  57. package/build/index.d.ts +1 -0
  58. package/build/index.js +98 -0
  59. package/build/schemas/account-management/account.d.ts +5324 -0
  60. package/build/schemas/account-management/account.js +366 -0
  61. package/build/schemas/analytics/analytics.d.ts +167 -0
  62. package/build/schemas/analytics/analytics.js +191 -0
  63. package/build/schemas/communication/messages.d.ts +1872 -0
  64. package/build/schemas/communication/messages.js +348 -0
  65. package/build/schemas/fulfillment/orders.d.ts +4655 -0
  66. package/build/schemas/fulfillment/orders.js +317 -0
  67. package/build/schemas/index.d.ts +2100 -0
  68. package/build/schemas/index.js +68 -0
  69. package/build/schemas/inventory-management/inventory.d.ts +6419 -0
  70. package/build/schemas/inventory-management/inventory.js +450 -0
  71. package/build/schemas/marketing/marketing.d.ts +14181 -0
  72. package/build/schemas/marketing/marketing.js +1088 -0
  73. package/build/schemas/metadata/metadata.d.ts +5259 -0
  74. package/build/schemas/metadata/metadata.js +614 -0
  75. package/build/schemas/other/other-apis.d.ts +257 -0
  76. package/build/schemas/other/other-apis.js +372 -0
  77. package/build/schemas/taxonomy/taxonomy.d.ts +215 -0
  78. package/build/schemas/taxonomy/taxonomy.js +571 -0
  79. package/build/scripts/auto-setup.d.ts +12 -0
  80. package/build/scripts/auto-setup.js +277 -0
  81. package/build/scripts/diagnostics.d.ts +8 -0
  82. package/build/scripts/diagnostics.js +299 -0
  83. package/build/scripts/download-specs.d.ts +1 -0
  84. package/build/scripts/download-specs.js +116 -0
  85. package/build/scripts/interactive-setup.d.ts +21 -0
  86. package/build/scripts/interactive-setup.js +723 -0
  87. package/build/server-http.d.ts +11 -0
  88. package/build/server-http.js +361 -0
  89. package/build/tools/definitions/account-with-schemas.d.ts +39 -0
  90. package/build/tools/definitions/account-with-schemas.js +170 -0
  91. package/build/tools/definitions/account.d.ts +12 -0
  92. package/build/tools/definitions/account.js +428 -0
  93. package/build/tools/definitions/analytics.d.ts +25 -0
  94. package/build/tools/definitions/analytics.js +66 -0
  95. package/build/tools/definitions/communication.d.ts +12 -0
  96. package/build/tools/definitions/communication.js +151 -0
  97. package/build/tools/definitions/fulfillment.d.ts +12 -0
  98. package/build/tools/definitions/fulfillment.js +326 -0
  99. package/build/tools/definitions/index.d.ts +25 -0
  100. package/build/tools/definitions/index.js +37 -0
  101. package/build/tools/definitions/inventory.d.ts +12 -0
  102. package/build/tools/definitions/inventory.js +429 -0
  103. package/build/tools/definitions/marketing.d.ts +12 -0
  104. package/build/tools/definitions/marketing.js +1095 -0
  105. package/build/tools/definitions/metadata.d.ts +12 -0
  106. package/build/tools/definitions/metadata.js +188 -0
  107. package/build/tools/definitions/other.d.ts +13 -0
  108. package/build/tools/definitions/other.js +309 -0
  109. package/build/tools/definitions/taxonomy.d.ts +25 -0
  110. package/build/tools/definitions/taxonomy.js +64 -0
  111. package/build/tools/definitions/token-management.d.ts +35 -0
  112. package/build/tools/definitions/token-management.js +103 -0
  113. package/build/tools/index.d.ts +11 -0
  114. package/build/tools/index.js +1003 -0
  115. package/build/tools/schemas.d.ts +14764 -0
  116. package/build/tools/schemas.js +667 -0
  117. package/build/tools/tool-definitions.d.ts +35 -0
  118. package/build/tools/tool-definitions.js +3534 -0
  119. package/build/types/application-settings/developerAnalyticsV1BetaOas3.d.ts +197 -0
  120. package/build/types/application-settings/developerAnalyticsV1BetaOas3.js +5 -0
  121. package/build/types/application-settings/developerClientRegistrationV1Oas3.d.ts +155 -0
  122. package/build/types/application-settings/developerClientRegistrationV1Oas3.js +5 -0
  123. package/build/types/application-settings/developerKeyManagementV1Oas3.d.ts +246 -0
  124. package/build/types/application-settings/developerKeyManagementV1Oas3.js +5 -0
  125. package/build/types/ebay-enums.d.ts +1204 -0
  126. package/build/types/ebay-enums.js +1330 -0
  127. package/build/types/ebay.d.ts +143 -0
  128. package/build/types/ebay.js +123 -0
  129. package/build/types/index.d.ts +6 -0
  130. package/build/types/index.js +10 -0
  131. package/build/types/sell-apps/account-management/sellAccountV1Oas3.d.ts +2579 -0
  132. package/build/types/sell-apps/account-management/sellAccountV1Oas3.js +5 -0
  133. package/build/types/sell-apps/analytics-and-report/sellAnalyticsV1Oas3.d.ts +446 -0
  134. package/build/types/sell-apps/analytics-and-report/sellAnalyticsV1Oas3.js +5 -0
  135. package/build/types/sell-apps/communication/commerceFeedbackV1BetaOas3.d.ts +705 -0
  136. package/build/types/sell-apps/communication/commerceFeedbackV1BetaOas3.js +5 -0
  137. package/build/types/sell-apps/communication/commerceMessageV1Oas3.d.ts +590 -0
  138. package/build/types/sell-apps/communication/commerceMessageV1Oas3.js +5 -0
  139. package/build/types/sell-apps/communication/commerceNotificationV1Oas3.d.ts +1276 -0
  140. package/build/types/sell-apps/communication/commerceNotificationV1Oas3.js +5 -0
  141. package/build/types/sell-apps/communication/sellNegotiationV1Oas3.d.ts +277 -0
  142. package/build/types/sell-apps/communication/sellNegotiationV1Oas3.js +5 -0
  143. package/build/types/sell-apps/listing-management/sellInventoryV1Oas3.d.ts +3133 -0
  144. package/build/types/sell-apps/listing-management/sellInventoryV1Oas3.js +5 -0
  145. package/build/types/sell-apps/listing-metadata/sellMetadataV1Oas3.d.ts +2289 -0
  146. package/build/types/sell-apps/listing-metadata/sellMetadataV1Oas3.js +5 -0
  147. package/build/types/sell-apps/markeitng-and-promotions/sellMarketingV1Oas3.d.ts +6650 -0
  148. package/build/types/sell-apps/markeitng-and-promotions/sellMarketingV1Oas3.js +5 -0
  149. package/build/types/sell-apps/markeitng-and-promotions/sellRecommendationV1Oas3.d.ts +172 -0
  150. package/build/types/sell-apps/markeitng-and-promotions/sellRecommendationV1Oas3.js +5 -0
  151. package/build/types/sell-apps/order-management/sellFulfillmentV1Oas3.d.ts +1869 -0
  152. package/build/types/sell-apps/order-management/sellFulfillmentV1Oas3.js +5 -0
  153. package/build/types/sell-apps/other-apis/commerceIdentityV1Oas3.d.ts +178 -0
  154. package/build/types/sell-apps/other-apis/commerceIdentityV1Oas3.js +5 -0
  155. package/build/types/sell-apps/other-apis/commerceTranslationV1BetaOas3.d.ts +128 -0
  156. package/build/types/sell-apps/other-apis/commerceTranslationV1BetaOas3.js +5 -0
  157. package/build/types/sell-apps/other-apis/commerceVeroV1Oas3.d.ts +417 -0
  158. package/build/types/sell-apps/other-apis/commerceVeroV1Oas3.js +5 -0
  159. package/build/types/sell-apps/other-apis/sellComplianceV1Oas3.d.ts +273 -0
  160. package/build/types/sell-apps/other-apis/sellComplianceV1Oas3.js +5 -0
  161. package/build/types/sell-apps/other-apis/sellEdeliveryInternationalShippingOas3.d.ts +2537 -0
  162. package/build/types/sell-apps/other-apis/sellEdeliveryInternationalShippingOas3.js +5 -0
  163. package/build/types/sell-apps/other-apis/sellMarketingV1Oas3.d.ts +6650 -0
  164. package/build/types/sell-apps/other-apis/sellMarketingV1Oas3.js +5 -0
  165. package/build/types/sell-apps/other-apis/sellRecommendationV1Oas3.d.ts +172 -0
  166. package/build/types/sell-apps/other-apis/sellRecommendationV1Oas3.js +5 -0
  167. package/build/utils/account-management/account.d.ts +1094 -0
  168. package/build/utils/account-management/account.js +831 -0
  169. package/build/utils/communication/feedback.d.ts +152 -0
  170. package/build/utils/communication/feedback.js +216 -0
  171. package/build/utils/communication/message.d.ts +174 -0
  172. package/build/utils/communication/message.js +242 -0
  173. package/build/utils/communication/negotiation.d.ts +123 -0
  174. package/build/utils/communication/negotiation.js +150 -0
  175. package/build/utils/communication/notification.d.ts +370 -0
  176. package/build/utils/communication/notification.js +369 -0
  177. package/build/utils/date-converter.d.ts +59 -0
  178. package/build/utils/date-converter.js +160 -0
  179. package/build/utils/llm-client-detector.d.ts +54 -0
  180. package/build/utils/llm-client-detector.js +318 -0
  181. package/build/utils/oauth-helper.d.ts +37 -0
  182. package/build/utils/oauth-helper.js +315 -0
  183. package/build/utils/order-management/dispute.d.ts +346 -0
  184. package/build/utils/order-management/dispute.js +369 -0
  185. package/build/utils/order-management/fulfillment.d.ts +200 -0
  186. package/build/utils/order-management/fulfillment.js +205 -0
  187. package/build/utils/other/compliance.d.ts +49 -0
  188. package/build/utils/other/compliance.js +76 -0
  189. package/build/utils/other/edelivery.d.ts +310 -0
  190. package/build/utils/other/edelivery.js +241 -0
  191. package/build/utils/other/identity.d.ts +13 -0
  192. package/build/utils/other/identity.js +13 -0
  193. package/build/utils/other/translation.d.ts +28 -0
  194. package/build/utils/other/translation.js +41 -0
  195. package/build/utils/other/vero.d.ts +61 -0
  196. package/build/utils/other/vero.js +90 -0
  197. package/build/utils/scope-helper.d.ts +49 -0
  198. package/build/utils/scope-helper.js +207 -0
  199. package/build/utils/security-checker.d.ts +46 -0
  200. package/build/utils/security-checker.js +248 -0
  201. package/build/utils/setup-validator.d.ts +25 -0
  202. package/build/utils/setup-validator.js +305 -0
  203. package/build/utils/token-utils.d.ts +40 -0
  204. package/build/utils/token-utils.js +40 -0
  205. package/package.json +115 -0
@@ -0,0 +1,571 @@
1
+ import { z } from 'zod';
2
+ import { zodToJsonSchema } from 'zod-to-json-schema';
3
+ /**
4
+ * Taxonomy/Metadata API Schemas
5
+ *
6
+ * This file contains Zod schemas for the Sell Metadata API (Taxonomy section).
7
+ * Schemas are organized by policy type and include category-related metadata.
8
+ */
9
+ // ============================================================================
10
+ // Common Schemas
11
+ // ============================================================================
12
+ const errorParameterSchema = z.object({
13
+ name: z.string().optional(),
14
+ value: z.string().optional(),
15
+ });
16
+ const errorSchema = z.object({
17
+ category: z.string().optional(),
18
+ domain: z.string().optional(),
19
+ errorId: z.number().int().optional(),
20
+ inputRefIds: z.array(z.string()).optional(),
21
+ longMessage: z.string().optional(),
22
+ message: z.string().optional(),
23
+ outputRefIds: z.array(z.string()).optional(),
24
+ parameters: z.array(errorParameterSchema).optional(),
25
+ subdomain: z.string().optional(),
26
+ });
27
+ const amountSchema = z.object({
28
+ currency: z.string().optional(),
29
+ value: z.string().optional(),
30
+ });
31
+ const timeDurationSchema = z.object({
32
+ unit: z.string().optional(),
33
+ value: z.number().int().optional(),
34
+ });
35
+ // ============================================================================
36
+ // Category Policy Schemas
37
+ // ============================================================================
38
+ const categoryPolicySchema = z.object({
39
+ autoPayEnabled: z.boolean().optional(),
40
+ b2bVatEnabled: z.boolean().optional(),
41
+ categoryId: z.string().optional(),
42
+ categoryTreeId: z.string().optional(),
43
+ eanSupport: z.string().optional(),
44
+ expired: z.boolean().optional(),
45
+ intangibleEnabled: z.boolean().optional(),
46
+ isbnSupport: z.string().optional(),
47
+ lsd: z.boolean().optional(),
48
+ minimumReservePrice: z.number().optional(),
49
+ orpa: z.boolean().optional(),
50
+ orra: z.boolean().optional(),
51
+ paymentMethods: z.array(z.string()).optional(),
52
+ reduceReserveAllowed: z.boolean().optional(),
53
+ upcSupport: z.string().optional(),
54
+ valueCategory: z.boolean().optional(),
55
+ virtual: z.boolean().optional(),
56
+ });
57
+ const categoryPolicyResponseSchema = z.object({
58
+ categoryPolicies: z.array(categoryPolicySchema).optional(),
59
+ warnings: z.array(errorSchema).optional(),
60
+ });
61
+ // ============================================================================
62
+ // Item Condition Policy Schemas
63
+ // ============================================================================
64
+ const itemConditionDescriptorValueConstraintSchema = z.object({
65
+ applicableToConditionDescriptorId: z.string().optional(),
66
+ applicableToConditionDescriptorValueIds: z.array(z.string()).optional(),
67
+ });
68
+ const itemConditionDescriptorValueSchema = z.object({
69
+ conditionDescriptorValueAdditionalHelpText: z.array(z.string()).optional(),
70
+ conditionDescriptorValueConstraints: z.array(itemConditionDescriptorValueConstraintSchema).optional(),
71
+ conditionDescriptorValueHelpText: z.string().optional(),
72
+ conditionDescriptorValueId: z.string().optional(),
73
+ conditionDescriptorValueName: z.string().optional(),
74
+ });
75
+ const itemConditionDescriptorConstraintSchema = z.object({
76
+ applicableToConditionDescriptorIds: z.array(z.string()).optional(),
77
+ cardinality: z.string().optional(),
78
+ defaultConditionDescriptorValueId: z.string().optional(),
79
+ maxLength: z.number().int().optional(),
80
+ mode: z.string().optional(),
81
+ usage: z.string().optional(),
82
+ });
83
+ const itemConditionDescriptorSchema = z.object({
84
+ conditionDescriptorConstraint: itemConditionDescriptorConstraintSchema.optional(),
85
+ conditionDescriptorHelpText: z.string().optional(),
86
+ conditionDescriptorId: z.string().optional(),
87
+ conditionDescriptorName: z.string().optional(),
88
+ conditionDescriptorValues: z.array(itemConditionDescriptorValueSchema).optional(),
89
+ });
90
+ const itemConditionSchema = z.object({
91
+ conditionDescription: z.string().optional(),
92
+ conditionDescriptors: z.array(itemConditionDescriptorSchema).optional(),
93
+ conditionHelpText: z.string().optional(),
94
+ conditionId: z.string().optional(),
95
+ usage: z.string().optional(),
96
+ });
97
+ const itemConditionPolicySchema = z.object({
98
+ categoryId: z.string().optional(),
99
+ categoryTreeId: z.string().optional(),
100
+ itemConditionRequired: z.boolean().optional(),
101
+ itemConditions: z.array(itemConditionSchema).optional(),
102
+ });
103
+ const itemConditionPolicyResponseSchema = z.object({
104
+ itemConditionPolicies: z.array(itemConditionPolicySchema).optional(),
105
+ warnings: z.array(errorSchema).optional(),
106
+ });
107
+ // ============================================================================
108
+ // Return Policy Schemas
109
+ // ============================================================================
110
+ const returnPolicyDetailsSchema = z.object({
111
+ policyDescriptionEnabled: z.boolean().optional(),
112
+ refundMethods: z.array(z.string()).optional(),
113
+ returnMethods: z.array(z.string()).optional(),
114
+ returnPeriods: z.array(timeDurationSchema).optional(),
115
+ returnsAcceptanceEnabled: z.boolean().optional(),
116
+ returnShippingCostPayers: z.array(z.string()).optional(),
117
+ });
118
+ const returnPolicySchema = z.object({
119
+ categoryId: z.string().optional(),
120
+ categoryTreeId: z.string().optional(),
121
+ domestic: returnPolicyDetailsSchema.optional(),
122
+ international: returnPolicyDetailsSchema.optional(),
123
+ required: z.boolean().optional(),
124
+ });
125
+ const returnPolicyResponseSchema = z.object({
126
+ returnPolicies: z.array(returnPolicySchema).optional(),
127
+ warnings: z.array(errorSchema).optional(),
128
+ });
129
+ // ============================================================================
130
+ // Listing Structure Policy Schemas
131
+ // ============================================================================
132
+ const listingStructurePolicySchema = z.object({
133
+ categoryId: z.string().optional(),
134
+ categoryTreeId: z.string().optional(),
135
+ variationsSupported: z.boolean().optional(),
136
+ });
137
+ const listingStructurePolicyResponseSchema = z.object({
138
+ listingStructurePolicies: z.array(listingStructurePolicySchema).optional(),
139
+ warnings: z.array(errorSchema).optional(),
140
+ });
141
+ // ============================================================================
142
+ // Listing Type Policy Schemas
143
+ // ============================================================================
144
+ const listingDurationSchema = z.object({
145
+ durationValues: z.array(z.string()).optional(),
146
+ listingType: z.string().optional(),
147
+ });
148
+ const listingTypePolicySchema = z.object({
149
+ categoryId: z.string().optional(),
150
+ categoryTreeId: z.string().optional(),
151
+ digitalGoodDeliveryEnabled: z.boolean().optional(),
152
+ listingDurations: z.array(listingDurationSchema).optional(),
153
+ pickupDropOffEnabled: z.boolean().optional(),
154
+ });
155
+ const listingTypePoliciesResponseSchema = z.object({
156
+ listingTypePolicies: z.array(listingTypePolicySchema).optional(),
157
+ warnings: z.array(errorSchema).optional(),
158
+ });
159
+ // ============================================================================
160
+ // Negotiated Price Policy Schemas
161
+ // ============================================================================
162
+ const negotiatedPricePolicySchema = z.object({
163
+ bestOfferAutoAcceptEnabled: z.boolean().optional(),
164
+ bestOfferAutoDeclineEnabled: z.boolean().optional(),
165
+ bestOfferCounterEnabled: z.boolean().optional(),
166
+ categoryId: z.string().optional(),
167
+ categoryTreeId: z.string().optional(),
168
+ });
169
+ const negotiatedPricePolicyResponseSchema = z.object({
170
+ negotiatedPricePolicies: z.array(negotiatedPricePolicySchema).optional(),
171
+ warnings: z.array(errorSchema).optional(),
172
+ });
173
+ // ============================================================================
174
+ // Shipping Policy Schemas
175
+ // ============================================================================
176
+ const shippingPolicySchema = z.object({
177
+ categoryId: z.string().optional(),
178
+ categoryTreeId: z.string().optional(),
179
+ globalShippingEnabled: z.boolean().optional(),
180
+ group1MaxFlatShippingCost: amountSchema.optional(),
181
+ group2MaxFlatShippingCost: amountSchema.optional(),
182
+ group3MaxFlatShippingCost: amountSchema.optional(),
183
+ handlingTimeEnabled: z.boolean().optional(),
184
+ maxFlatShippingCost: amountSchema.optional(),
185
+ shippingTermsRequired: z.boolean().optional(),
186
+ });
187
+ const shippingPoliciesResponseSchema = z.object({
188
+ shippingPolicies: z.array(shippingPolicySchema).optional(),
189
+ warnings: z.array(errorSchema).optional(),
190
+ });
191
+ // ============================================================================
192
+ // Automotive Parts Compatibility Policy Schemas
193
+ // ============================================================================
194
+ const automotivePartsCompatibilityPolicySchema = z.object({
195
+ categoryId: z.string().optional(),
196
+ categoryTreeId: z.string().optional(),
197
+ compatibilityBasedOn: z.string().optional(),
198
+ compatibleVehicleTypes: z.array(z.string()).optional(),
199
+ maxNumberOfCompatibleVehicles: z.number().int().optional(),
200
+ });
201
+ const automotivePartsCompatibilityPolicyResponseSchema = z.object({
202
+ automotivePartsCompatibilityPolicies: z.array(automotivePartsCompatibilityPolicySchema).optional(),
203
+ warnings: z.array(errorSchema).optional(),
204
+ });
205
+ // ============================================================================
206
+ // Classified Ad Policy Schemas
207
+ // ============================================================================
208
+ const classifiedAdPolicySchema = z.object({
209
+ adFormatEnabled: z.string().optional(),
210
+ categoryId: z.string().optional(),
211
+ categoryTreeId: z.string().optional(),
212
+ classifiedAdAutoAcceptEnabled: z.boolean().optional(),
213
+ classifiedAdAutoDeclineEnabled: z.boolean().optional(),
214
+ classifiedAdBestOfferEnabled: z.string().optional(),
215
+ classifiedAdCompanyNameEnabled: z.boolean().optional(),
216
+ classifiedAdContactByAddressEnabled: z.boolean().optional(),
217
+ classifiedAdContactByEmailEnabled: z.boolean().optional(),
218
+ classifiedAdContactByPhoneEnabled: z.boolean().optional(),
219
+ classifiedAdCounterOfferEnabled: z.boolean().optional(),
220
+ classifiedAdPaymentMethodEnabled: z.string().optional(),
221
+ classifiedAdPhoneCount: z.number().int().optional(),
222
+ classifiedAdShippingMethodEnabled: z.boolean().optional(),
223
+ classifiedAdStreetCount: z.number().int().optional(),
224
+ sellerContactDetailsEnabled: z.boolean().optional(),
225
+ });
226
+ const classifiedAdPolicyResponseSchema = z.object({
227
+ classifiedAdPolicies: z.array(classifiedAdPolicySchema).optional(),
228
+ warnings: z.array(errorSchema).optional(),
229
+ });
230
+ // ============================================================================
231
+ // Motors Listing Policy Schemas
232
+ // ============================================================================
233
+ const localListingDistanceSchema = z.object({
234
+ distances: z.array(z.number()).optional(),
235
+ distanceType: z.string().optional(),
236
+ });
237
+ const motorsListingPolicySchema = z.object({
238
+ categoryId: z.string().optional(),
239
+ categoryTreeId: z.string().optional(),
240
+ depositSupported: z.boolean().optional(),
241
+ ebayMotorsProAdFormatEnabled: z.string().optional(),
242
+ ebayMotorsProAutoAcceptEnabled: z.boolean().optional(),
243
+ ebayMotorsProAutoDeclineEnabled: z.boolean().optional(),
244
+ ebayMotorsProBestOfferEnabled: z.string().optional(),
245
+ ebayMotorsProCompanyNameEnabled: z.boolean().optional(),
246
+ ebayMotorsProContactByAddressEnabled: z.boolean().optional(),
247
+ ebayMotorsProContactByEmailEnabled: z.boolean().optional(),
248
+ ebayMotorsProContactByPhoneEnabled: z.boolean().optional(),
249
+ ebayMotorsProCounterOfferEnabled: z.boolean().optional(),
250
+ ebayMotorsProPaymentMethodCheckOutEnabled: z.string().optional(),
251
+ ebayMotorsProPhoneCount: z.number().int().optional(),
252
+ ebayMotorsProSellerContactDetailsEnabled: z.boolean().optional(),
253
+ ebayMotorsProShippingMethodEnabled: z.boolean().optional(),
254
+ ebayMotorsProStreetCount: z.number().int().optional(),
255
+ epidSupported: z.boolean().optional(),
256
+ kTypeSupported: z.boolean().optional(),
257
+ localListingDistances: z.array(localListingDistanceSchema).optional(),
258
+ localMarketAdFormatEnabled: z.string().optional(),
259
+ localMarketAutoAcceptEnabled: z.boolean().optional(),
260
+ localMarketAutoDeclineEnabled: z.boolean().optional(),
261
+ localMarketBestOfferEnabled: z.string().optional(),
262
+ localMarketCompanyNameEnabled: z.boolean().optional(),
263
+ localMarketContactByAddressEnabled: z.boolean().optional(),
264
+ localMarketContactByEmailEnabled: z.boolean().optional(),
265
+ localMarketContactByPhoneEnabled: z.boolean().optional(),
266
+ localMarketCounterOfferEnabled: z.boolean().optional(),
267
+ localMarketNonSubscription: z.boolean().optional(),
268
+ localMarketPaymentMethodCheckOutEnabled: z.string().optional(),
269
+ localMarketPhoneCount: z.number().int().optional(),
270
+ localMarketPremiumSubscription: z.boolean().optional(),
271
+ localMarketRegularSubscription: z.boolean().optional(),
272
+ localMarketSellerContactDetailsEnabled: z.boolean().optional(),
273
+ localMarketShippingMethodEnabled: z.boolean().optional(),
274
+ localMarketSpecialitySubscription: z.boolean().optional(),
275
+ localMarketStreetCount: z.number().int().optional(),
276
+ maxGranularFitmentCount: z.number().int().optional(),
277
+ maxItemCompatibility: z.number().int().optional(),
278
+ minItemCompatibility: z.number().int().optional(),
279
+ nonSubscription: z.string().optional(),
280
+ premiumSubscription: z.string().optional(),
281
+ regularSubscription: z.string().optional(),
282
+ sellerProvidedTitleSupported: z.boolean().optional(),
283
+ specialitySubscription: z.string().optional(),
284
+ vinSupported: z.boolean().optional(),
285
+ vrmSupported: z.boolean().optional(),
286
+ });
287
+ const motorsListingPoliciesResponseSchema = z.object({
288
+ motorsListingPolicies: z.array(motorsListingPolicySchema).optional(),
289
+ warnings: z.array(errorSchema).optional(),
290
+ });
291
+ // ============================================================================
292
+ // Currency Schemas
293
+ // ============================================================================
294
+ const currencySchema = z.object({
295
+ code: z.string().optional(),
296
+ description: z.string().optional(),
297
+ });
298
+ const getCurrenciesResponseSchema = z.object({
299
+ defaultCurrency: currencySchema.optional(),
300
+ marketplaceId: z.string().optional(),
301
+ });
302
+ // ============================================================================
303
+ // Extended Producer Responsibility Schemas
304
+ // ============================================================================
305
+ const extendedProducerResponsibilitySchema = z.object({
306
+ enabledForVariations: z.boolean().optional(),
307
+ name: z.string().optional(),
308
+ usage: z.string().optional(),
309
+ });
310
+ const extendedProducerResponsibilityPolicySchema = z.object({
311
+ categoryId: z.string().optional(),
312
+ categoryTreeId: z.string().optional(),
313
+ supportedAttributes: z.array(extendedProducerResponsibilitySchema).optional(),
314
+ });
315
+ const extendedProducerResponsibilityPolicyResponseSchema = z.object({
316
+ extendedProducerResponsibilities: z.array(extendedProducerResponsibilityPolicySchema).optional(),
317
+ warnings: z.array(errorSchema).optional(),
318
+ });
319
+ // ============================================================================
320
+ // Hazardous Materials Label Schemas
321
+ // ============================================================================
322
+ const signalWordSchema = z.object({
323
+ signalWordId: z.string().optional(),
324
+ signalWordDescription: z.string().optional(),
325
+ });
326
+ const hazardStatementSchema = z.object({
327
+ statementId: z.string().optional(),
328
+ statementDescription: z.string().optional(),
329
+ });
330
+ const pictogramSchema = z.object({
331
+ pictogramId: z.string().optional(),
332
+ pictogramDescription: z.string().optional(),
333
+ pictogramUrl: z.string().optional(),
334
+ });
335
+ const hazardousMaterialDetailsResponseSchema = z.object({
336
+ signalWords: z.array(signalWordSchema).optional(),
337
+ statements: z.array(hazardStatementSchema).optional(),
338
+ pictograms: z.array(pictogramSchema).optional(),
339
+ });
340
+ // ============================================================================
341
+ // Product Safety Label Schemas
342
+ // ============================================================================
343
+ const productSafetyLabelPictogramSchema = z.object({
344
+ pictogramDescription: z.string().optional(),
345
+ pictogramId: z.string().optional(),
346
+ pictogramUrl: z.string().optional(),
347
+ });
348
+ const productSafetyLabelStatementSchema = z.object({
349
+ statementDescription: z.string().optional(),
350
+ statementId: z.string().optional(),
351
+ });
352
+ const productSafetyLabelsResponseSchema = z.object({
353
+ pictograms: z.array(productSafetyLabelPictogramSchema).optional(),
354
+ statements: z.array(productSafetyLabelStatementSchema).optional(),
355
+ });
356
+ // ============================================================================
357
+ // Regulatory Policy Schemas
358
+ // ============================================================================
359
+ const regulatoryAttributeSchema = z.object({
360
+ name: z.string().optional(),
361
+ usage: z.string().optional(),
362
+ });
363
+ const regulatoryPolicySchema = z.object({
364
+ categoryId: z.string().optional(),
365
+ categoryTreeId: z.string().optional(),
366
+ supportedAttributes: z.array(regulatoryAttributeSchema).optional(),
367
+ });
368
+ const regulatoryPolicyResponseSchema = z.object({
369
+ regulatoryPolicies: z.array(regulatoryPolicySchema).optional(),
370
+ warnings: z.array(errorSchema).optional(),
371
+ });
372
+ // ============================================================================
373
+ // Site Visibility Policy Schemas
374
+ // ============================================================================
375
+ const siteVisibilityPolicySchema = z.object({
376
+ categoryId: z.string().optional(),
377
+ categoryTreeId: z.string().optional(),
378
+ crossBorderTradeAustraliaEnabled: z.boolean().optional(),
379
+ crossBorderTradeGBEnabled: z.boolean().optional(),
380
+ crossBorderTradeNorthAmericaEnabled: z.boolean().optional(),
381
+ });
382
+ const siteVisibilityPoliciesResponseSchema = z.object({
383
+ siteVisibilityPolicies: z.array(siteVisibilityPolicySchema).optional(),
384
+ warnings: z.array(errorSchema).optional(),
385
+ });
386
+ // ============================================================================
387
+ // Compatibility Schemas
388
+ // ============================================================================
389
+ const compatibilityDetailsSchema = z.object({
390
+ propertyName: z.string().optional(),
391
+ propertyValue: z.string().optional(),
392
+ });
393
+ const compatibilitySchema = z.object({
394
+ compatibilityDetails: z.array(compatibilityDetailsSchema).optional(),
395
+ });
396
+ const propertyFilterInnerSchema = z.object({
397
+ propertyName: z.string().optional(),
398
+ propertyValue: z.string().optional(),
399
+ unitOfMeasurement: z.string().optional(),
400
+ url: z.string().optional(),
401
+ });
402
+ const propertyNamesResponsePropertyNameMetadataSchema = z.object({
403
+ displaySequence: z.number().int().optional(),
404
+ });
405
+ const propertyNamesResponsePropertyNamesSchema = z.object({
406
+ propertyDisplayName: z.string().optional(),
407
+ propertyName: z.string().optional(),
408
+ propertyNameMetadata: propertyNamesResponsePropertyNameMetadataSchema.optional(),
409
+ });
410
+ const propertyNamesResponsePropertiesSchema = z.object({
411
+ dataset: z.string().optional(),
412
+ propertyNames: z.array(propertyNamesResponsePropertyNamesSchema).optional(),
413
+ });
414
+ const propertyNamesResponseSchema = z.object({
415
+ categoryId: z.string().optional(),
416
+ properties: z.array(propertyNamesResponsePropertiesSchema).optional(),
417
+ });
418
+ const propertyValuesResponseSchema = z.object({
419
+ metadataVersion: z.string().optional(),
420
+ propertyName: z.string().optional(),
421
+ propertyValues: z.array(z.string()).optional(),
422
+ });
423
+ const multiCompatibilityPropertyValuesResponseSchema = z.object({
424
+ compatibilities: z.array(compatibilitySchema).optional(),
425
+ metadataVersion: z.string().optional(),
426
+ });
427
+ const paginationSchema = z.object({
428
+ count: z.number().int().optional(),
429
+ limit: z.number().int().optional(),
430
+ offset: z.number().int().optional(),
431
+ total: z.number().int().optional(),
432
+ });
433
+ const paginationInputSchema = z.object({
434
+ limit: z.number().int().optional(),
435
+ offset: z.number().int().optional(),
436
+ });
437
+ const productIdentifierSchema = z.object({
438
+ ean: z.string().optional(),
439
+ epid: z.string().optional(),
440
+ isbn: z.string().optional(),
441
+ productId: z.string().optional(),
442
+ upc: z.string().optional(),
443
+ });
444
+ const propertyValuesSchema = z.object({
445
+ propertyName: z.string().optional(),
446
+ propertyValue: z.string().optional(),
447
+ });
448
+ const productResponseCompatibilityDetailsSchema = z.object({
449
+ noteDetails: z.array(propertyFilterInnerSchema).optional(),
450
+ productDetails: z.array(propertyValuesSchema).optional(),
451
+ });
452
+ const productResponseSchema = z.object({
453
+ compatibilityDetails: z.array(productResponseCompatibilityDetailsSchema).optional(),
454
+ pagination: paginationSchema.optional(),
455
+ });
456
+ const specificationResponseSchema = z.object({
457
+ compatibilityDetails: z.array(compatibilitySchema).optional(),
458
+ pagination: paginationSchema.optional(),
459
+ });
460
+ // ============================================================================
461
+ // Input Schemas
462
+ // ============================================================================
463
+ const propertyNamesRequestSchema = z.object({
464
+ categoryId: z.string().optional(),
465
+ dataset: z.array(z.string()).optional(),
466
+ });
467
+ const propertyValuesRequestSchema = z.object({
468
+ categoryId: z.string().optional(),
469
+ propertyFilters: z.array(propertyFilterInnerSchema).optional(),
470
+ propertyName: z.string().optional(),
471
+ sortOrder: z.string().optional(),
472
+ });
473
+ const multiCompatibilityPropertyValuesRequestSchema = z.object({
474
+ categoryId: z.string().optional(),
475
+ propertyFilters: z.array(propertyFilterInnerSchema).optional(),
476
+ propertyNames: z.array(z.string()).optional(),
477
+ });
478
+ const disabledProductFilterSchema = z.object({
479
+ excludeForEbayReviews: z.boolean().optional(),
480
+ excludeForEbaySelling: z.boolean().optional(),
481
+ });
482
+ const sortOrderPropertiesSchema = z.object({
483
+ order: z.string().optional(),
484
+ propertyName: z.string().optional(),
485
+ });
486
+ const sortOrderInnerSchema = z.object({
487
+ sortOrder: sortOrderPropertiesSchema.optional(),
488
+ sortPriority: z.string().optional(),
489
+ });
490
+ const productRequestSchema = z.object({
491
+ applicationPropertyFilters: z.array(propertyFilterInnerSchema).optional(),
492
+ dataset: z.array(z.string()).optional(),
493
+ datasetPropertyName: z.array(z.string()).optional(),
494
+ disabledProductFilter: disabledProductFilterSchema.optional(),
495
+ paginationInput: paginationInputSchema.optional(),
496
+ productIdentifier: productIdentifierSchema.optional(),
497
+ sortOrders: z.array(sortOrderInnerSchema).optional(),
498
+ });
499
+ const specificationRequestSchema = z.object({
500
+ categoryId: z.string().optional(),
501
+ compatibilityPropertyFilters: z.array(propertyFilterInnerSchema).optional(),
502
+ dataset: z.string().optional(),
503
+ datasetPropertyName: z.array(z.string()).optional(),
504
+ exactMatch: z.boolean().optional(),
505
+ paginationInput: paginationInputSchema.optional(),
506
+ sortOrders: z.array(sortOrderInnerSchema).optional(),
507
+ specifications: z.array(propertyFilterInnerSchema).optional(),
508
+ });
509
+ // ============================================================================
510
+ // JSON Schema Conversion Functions
511
+ // ============================================================================
512
+ /**
513
+ * Convert Zod schemas to JSON Schema format for MCP tools
514
+ */
515
+ export function getTaxonomyJsonSchemas() {
516
+ return {
517
+ // Category Policies
518
+ getCategoryPoliciesOutput: zodToJsonSchema(categoryPolicyResponseSchema, 'getCategoryPoliciesOutput'),
519
+ // Item Condition Policies
520
+ getItemConditionPoliciesOutput: zodToJsonSchema(itemConditionPolicyResponseSchema, 'getItemConditionPoliciesOutput'),
521
+ // Return Policies
522
+ getReturnPoliciesOutput: zodToJsonSchema(returnPolicyResponseSchema, 'getReturnPoliciesOutput'),
523
+ // Listing Structure Policies
524
+ getListingStructurePoliciesOutput: zodToJsonSchema(listingStructurePolicyResponseSchema, 'getListingStructurePoliciesOutput'),
525
+ // Listing Type Policies
526
+ getListingTypePoliciesOutput: zodToJsonSchema(listingTypePoliciesResponseSchema, 'getListingTypePoliciesOutput'),
527
+ // Negotiated Price Policies
528
+ getNegotiatedPricePoliciesOutput: zodToJsonSchema(negotiatedPricePolicyResponseSchema, 'getNegotiatedPricePoliciesOutput'),
529
+ // Shipping Policies
530
+ getShippingPoliciesOutput: zodToJsonSchema(shippingPoliciesResponseSchema, 'getShippingPoliciesOutput'),
531
+ // Automotive Parts Compatibility Policies
532
+ getAutomotivePartsCompatibilityPoliciesOutput: zodToJsonSchema(automotivePartsCompatibilityPolicyResponseSchema, 'getAutomotivePartsCompatibilityPoliciesOutput'),
533
+ // Classified Ad Policies
534
+ getClassifiedAdPoliciesOutput: zodToJsonSchema(classifiedAdPolicyResponseSchema, 'getClassifiedAdPoliciesOutput'),
535
+ // Motors Listing Policies
536
+ getMotorsListingPoliciesOutput: zodToJsonSchema(motorsListingPoliciesResponseSchema, 'getMotorsListingPoliciesOutput'),
537
+ // Currencies
538
+ getCurrenciesOutput: zodToJsonSchema(getCurrenciesResponseSchema, 'getCurrenciesOutput'),
539
+ // Extended Producer Responsibility
540
+ getExtendedProducerResponsibilityPoliciesOutput: zodToJsonSchema(extendedProducerResponsibilityPolicyResponseSchema, 'getExtendedProducerResponsibilityPoliciesOutput'),
541
+ // Hazardous Materials Labels
542
+ getHazardousMaterialsLabelsOutput: zodToJsonSchema(hazardousMaterialDetailsResponseSchema, 'getHazardousMaterialsLabelsOutput'),
543
+ // Product Safety Labels
544
+ getProductSafetyLabelsOutput: zodToJsonSchema(productSafetyLabelsResponseSchema, 'getProductSafetyLabelsOutput'),
545
+ // Regulatory Policies
546
+ getRegulatoryPoliciesOutput: zodToJsonSchema(regulatoryPolicyResponseSchema, 'getRegulatoryPoliciesOutput'),
547
+ // Site Visibility Policies
548
+ getSiteVisibilityPoliciesOutput: zodToJsonSchema(siteVisibilityPoliciesResponseSchema, 'getSiteVisibilityPoliciesOutput'),
549
+ // Compatibility Methods
550
+ getCompatibilityPropertyNamesInput: zodToJsonSchema(propertyNamesRequestSchema, 'getCompatibilityPropertyNamesInput'),
551
+ getCompatibilityPropertyNamesOutput: zodToJsonSchema(propertyNamesResponseSchema, 'getCompatibilityPropertyNamesOutput'),
552
+ getCompatibilityPropertyValuesInput: zodToJsonSchema(propertyValuesRequestSchema, 'getCompatibilityPropertyValuesInput'),
553
+ getCompatibilityPropertyValuesOutput: zodToJsonSchema(propertyValuesResponseSchema, 'getCompatibilityPropertyValuesOutput'),
554
+ getMultiCompatibilityPropertyValuesInput: zodToJsonSchema(multiCompatibilityPropertyValuesRequestSchema, 'getMultiCompatibilityPropertyValuesInput'),
555
+ getMultiCompatibilityPropertyValuesOutput: zodToJsonSchema(multiCompatibilityPropertyValuesResponseSchema, 'getMultiCompatibilityPropertyValuesOutput'),
556
+ getProductCompatibilitiesInput: zodToJsonSchema(productRequestSchema, 'getProductCompatibilitiesInput'),
557
+ getProductCompatibilitiesOutput: zodToJsonSchema(productResponseSchema, 'getProductCompatibilitiesOutput'),
558
+ getCompatibilitiesBySpecificationInput: zodToJsonSchema(specificationRequestSchema, 'getCompatibilitiesBySpecificationInput'),
559
+ getCompatibilitiesBySpecificationOutput: zodToJsonSchema(specificationResponseSchema, 'getCompatibilitiesBySpecificationOutput'),
560
+ // Common Types
561
+ amount: zodToJsonSchema(amountSchema, 'amount'),
562
+ error: zodToJsonSchema(errorSchema, 'error'),
563
+ errorParameter: zodToJsonSchema(errorParameterSchema, 'errorParameter'),
564
+ timeDuration: zodToJsonSchema(timeDurationSchema, 'timeDuration'),
565
+ pagination: zodToJsonSchema(paginationSchema, 'pagination'),
566
+ compatibility: zodToJsonSchema(compatibilitySchema, 'compatibility'),
567
+ compatibilityDetails: zodToJsonSchema(compatibilityDetailsSchema, 'compatibilityDetails'),
568
+ propertyFilterInner: zodToJsonSchema(propertyFilterInnerSchema, 'propertyFilterInner'),
569
+ productIdentifier: zodToJsonSchema(productIdentifierSchema, 'productIdentifier'),
570
+ };
571
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Auto-Setup Script for eBay API MCP Server
3
+ *
4
+ * This script automatically:
5
+ * 1. Detects installed MCP clients (Claude Desktop, Gemini, ChatGPT)
6
+ * 2. Generates MCP client configurations from .env
7
+ * 3. Validates environment tokens configuration
8
+ * 4. Validates the setup
9
+ *
10
+ * Usage: npm run auto-setup (or runs automatically after npm install)
11
+ */
12
+ export {};