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,3534 @@
1
+ import { MarketplaceId } from '../types/ebay-enums.js';
2
+ import { z } from 'zod';
3
+ import { bulkInventoryItemRequestSchema, bulkMigrateRequestSchema, bulkOfferRequestSchema, bulkPriceQuantityRequestSchema, bulkPublishRequestSchema, bulkSalesTaxRequestSchema, compatibilityDataSchema, compatibilitySpecificationSchema, customPolicySchema, feedbackDataSchema, fulfillmentPolicySchema, inventoryItemGroupSchema, inventoryItemSchema, listingFeesRequestSchema, locationSchema, notificationConfigSchema, notificationDestinationSchema, offerSchema, offerToBuyersSchema, paymentPolicySchema, productCompatibilitySchema, programRequestSchema, returnPolicySchema, salesTaxBaseSchema, shippingFulfillmentSchema, shippingQuoteRequestSchema, veroReportDataSchema, } from './schemas.js';
4
+ export const chatGptTools = [
5
+ {
6
+ name: 'search',
7
+ description: 'Search for eBay inventory items',
8
+ inputSchema: {
9
+ query: z.string().describe('Search query'),
10
+ limit: z.number().optional().describe('Maximum number of results'),
11
+ },
12
+ title: 'Search',
13
+ outputSchema: {
14
+ type: 'object',
15
+ properties: {
16
+ success: { type: 'boolean' },
17
+ data: { type: 'object' }
18
+ }
19
+ },
20
+ annotations: {
21
+ title: 'Search',
22
+ readOnlyHint: true
23
+ },
24
+ _meta: {
25
+ category: 'chat',
26
+ version: '1.0.0'
27
+ }
28
+ },
29
+ {
30
+ name: 'fetch',
31
+ description: 'Fetch a specific eBay inventory item by SKU',
32
+ inputSchema: {
33
+ id: z.string().describe('Item SKU'),
34
+ },
35
+ title: 'Fetch',
36
+ outputSchema: {
37
+ type: 'object',
38
+ properties: {
39
+ success: { type: 'boolean' },
40
+ data: { type: 'object' }
41
+ }
42
+ },
43
+ annotations: {
44
+ title: 'Fetch',
45
+ readOnlyHint: true
46
+ },
47
+ _meta: {
48
+ category: 'chat',
49
+ version: '1.0.0'
50
+ }
51
+ },
52
+ {
53
+ name: 'ebay_get_oauth_url',
54
+ description: 'Generate the eBay OAuth authorization URL for user consent. The user should open this URL in a browser to grant permissions to the application. This supports the OAuth 2.0 Authorization Code grant flow. The redirect URI can be provided as a parameter or will be read from EBAY_REDIRECT_URI environment variable.\n\nIMPORTANT: eBay has different OAuth scopes available for production vs sandbox environments:\n- Sandbox includes additional Buy API scopes (e.g., buy.order.readonly, buy.guest.order, buy.shopping.cart) and extended Identity scopes\n- Production includes sell.edelivery, commerce.message (explicit), and commerce.shipping scopes not available in sandbox\n- If you provide custom scopes, they will be validated against the current environment (set via EBAY_ENVIRONMENT). Any scopes not valid for the environment will generate warnings.',
55
+ inputSchema: {
56
+ redirectUri: z
57
+ .string()
58
+ .optional()
59
+ .describe('Optional redirect URI registered with your eBay application (RuName). If not provided, will use EBAY_REDIRECT_URI from .env file.'),
60
+ scopes: z
61
+ .array(z.string())
62
+ .optional()
63
+ .describe('Optional array of OAuth scopes. If not provided, uses environment-specific default scopes (production or sandbox based on EBAY_ENVIRONMENT). Custom scopes will be validated against the environment.'),
64
+ state: z.string().optional().describe('Optional state parameter for CSRF protection'),
65
+ },
66
+ title: 'Get OAuth URL',
67
+ outputSchema: {
68
+ type: 'object',
69
+ properties: {
70
+ success: { type: 'boolean' },
71
+ data: { type: 'object' }
72
+ }
73
+ },
74
+ annotations: {
75
+ title: 'Get OAuth URL',
76
+ readOnlyHint: true
77
+ },
78
+ _meta: {
79
+ category: 'chat',
80
+ version: '1.0.0'
81
+ }
82
+ },
83
+ {
84
+ name: 'ebay_set_user_tokens',
85
+ description: 'Set the user access token and refresh token for authenticated API requests. These tokens should be obtained through the OAuth authorization code flow. Tokens will be persisted to disk and automatically refreshed when needed. User tokens provide higher rate limits (10,000-50,000 requests/day) compared to client credentials (1,000 requests/day).',
86
+ inputSchema: {
87
+ accessToken: z.string().describe('The user access token obtained from OAuth flow'),
88
+ refreshToken: z.string().describe('The refresh token obtained from OAuth flow'),
89
+ },
90
+ title: 'Set User Tokens',
91
+ outputSchema: {
92
+ type: 'object',
93
+ properties: {
94
+ success: { type: 'boolean' },
95
+ data: { type: 'object' }
96
+ }
97
+ },
98
+ annotations: {
99
+ title: 'Set User Tokens',
100
+ idempotentHint: true
101
+ },
102
+ _meta: {
103
+ category: 'chat',
104
+ version: '1.0.0'
105
+ }
106
+ },
107
+ {
108
+ name: 'ebay_get_token_status',
109
+ description: 'Check the current OAuth token status. Returns information about whether user tokens or client credentials are being used, and whether tokens are valid.',
110
+ inputSchema: {},
111
+ title: 'Get Token Status',
112
+ outputSchema: {
113
+ type: 'object',
114
+ properties: {
115
+ success: { type: 'boolean' },
116
+ data: { type: 'object' }
117
+ }
118
+ },
119
+ annotations: {
120
+ title: 'Get Token Status',
121
+ readOnlyHint: true
122
+ },
123
+ _meta: {
124
+ category: 'chat',
125
+ version: '1.0.0'
126
+ }
127
+ },
128
+ {
129
+ name: 'ebay_clear_tokens',
130
+ description: 'Clear all stored OAuth tokens (both user tokens and client credentials). This will require re-authentication for subsequent API calls.',
131
+ inputSchema: {},
132
+ title: 'Clear Tokens',
133
+ outputSchema: {
134
+ type: 'object',
135
+ properties: {
136
+ success: { type: 'boolean' },
137
+ data: { type: 'object' }
138
+ }
139
+ },
140
+ annotations: {
141
+ title: 'Clear Tokens',
142
+ destructiveHint: true
143
+ },
144
+ _meta: {
145
+ category: 'chat',
146
+ version: '1.0.0'
147
+ }
148
+ },
149
+ {
150
+ name: 'ebay_convert_date_to_timestamp',
151
+ description: 'Convert a date string or number to Unix timestamp (milliseconds). Supports ISO 8601 dates, Unix timestamps (seconds or milliseconds), and relative time (e.g., "in 2 hours", "in 7200 seconds"). Useful when setting token expiry times from user input.',
152
+ inputSchema: {
153
+ dateInput: z
154
+ .union([z.string(), z.number()])
155
+ .describe('Date to convert. Supports ISO 8601 strings (e.g., "2025-01-15T10:30:00Z"), Unix timestamps (seconds or milliseconds), or relative time (e.g., "in 2 hours")'),
156
+ },
157
+ title: 'Convert Date to Timestamp',
158
+ outputSchema: {
159
+ type: 'object',
160
+ properties: {
161
+ success: { type: 'boolean' },
162
+ data: { type: 'object' }
163
+ }
164
+ },
165
+ annotations: {
166
+ title: 'Convert Date to Timestamp',
167
+ readOnlyHint: true
168
+ },
169
+ _meta: {
170
+ category: 'chat',
171
+ version: '1.0.0'
172
+ }
173
+ },
174
+ {
175
+ name: 'ebay_validate_token_expiry',
176
+ description: 'Validate token expiry times and get recommendations. Checks if access/refresh tokens are expired or expiring soon, and provides actionable recommendations (e.g., refresh access token, re-authorize user).',
177
+ inputSchema: {
178
+ accessTokenExpiry: z
179
+ .union([z.string(), z.number()])
180
+ .describe('Access token expiry time. Can be ISO date string, Unix timestamp (seconds or milliseconds), or relative time'),
181
+ refreshTokenExpiry: z
182
+ .union([z.string(), z.number()])
183
+ .describe('Refresh token expiry time. Can be ISO date string, Unix timestamp (seconds or milliseconds), or relative time'),
184
+ },
185
+ title: 'Validate Token Expiry',
186
+ outputSchema: {
187
+ type: 'object',
188
+ properties: {
189
+ success: { type: 'boolean' },
190
+ data: { type: 'object' }
191
+ }
192
+ },
193
+ annotations: {
194
+ title: 'Validate Token Expiry',
195
+ readOnlyHint: true
196
+ },
197
+ _meta: {
198
+ category: 'chat',
199
+ version: '1.0.0'
200
+ }
201
+ },
202
+ {
203
+ name: 'ebay_set_user_tokens_with_expiry',
204
+ description: "Set user access and refresh tokens with custom expiry times. This is an enhanced version of ebay_set_user_tokens that accepts expiry times and can automatically refresh the access token if it's expired but the refresh token is valid. Useful when user provides tokens that may already be partially expired.",
205
+ inputSchema: {
206
+ accessToken: z.string().min(1).describe('eBay user access token'),
207
+ refreshToken: z.string().min(1).describe('eBay user refresh token'),
208
+ accessTokenExpiry: z
209
+ .union([z.string(), z.number()])
210
+ .optional()
211
+ .describe('Optional: Access token expiry time. If not provided, defaults to 2 hours from now. Can be ISO date string, Unix timestamp, or relative time (e.g., "in 7200 seconds")'),
212
+ refreshTokenExpiry: z
213
+ .union([z.string(), z.number()])
214
+ .optional()
215
+ .describe('Optional: Refresh token expiry time. If not provided, defaults to 18 months from now. Can be ISO date string, Unix timestamp, or relative time'),
216
+ autoRefresh: z
217
+ .boolean()
218
+ .optional()
219
+ .default(true)
220
+ .describe('If true and access token is expired but refresh token is valid, automatically refresh the access token. Default: true'),
221
+ },
222
+ title: 'Set User Tokens with Expiry',
223
+ outputSchema: {
224
+ type: 'object',
225
+ properties: {
226
+ success: { type: 'boolean' },
227
+ data: { type: 'object' }
228
+ }
229
+ },
230
+ annotations: {
231
+ title: 'Set User Tokens with Expiry',
232
+ idempotentHint: true
233
+ },
234
+ _meta: {
235
+ category: 'chat',
236
+ version: '1.0.0'
237
+ }
238
+ },
239
+ ];
240
+ export const accountTools = [
241
+ {
242
+ name: 'ebay_get_custom_policies',
243
+ description: 'Retrieve custom policies defined for the seller account',
244
+ inputSchema: {
245
+ policyTypes: z
246
+ .string()
247
+ .optional()
248
+ .describe('Comma-delimited list of policy types to retrieve'),
249
+ },
250
+ title: 'Get Custom Policies',
251
+ outputSchema: {
252
+ type: 'object',
253
+ properties: {
254
+ success: { type: 'boolean' },
255
+ data: { type: 'object' }
256
+ }
257
+ },
258
+ annotations: {
259
+ title: 'Get Custom Policies',
260
+ readOnlyHint: true
261
+ },
262
+ _meta: {
263
+ category: 'account',
264
+ version: '1.0.0'
265
+ }
266
+ },
267
+ {
268
+ name: 'ebay_get_fulfillment_policies',
269
+ description: 'Get fulfillment policies for the seller.\n\nRequired OAuth Scope: sell.account.readonly or sell.account\nMinimum Scope: https://api.ebay.com/oauth/api_scope/sell.account.readonly',
270
+ inputSchema: {
271
+ marketplaceId: z.nativeEnum(MarketplaceId).optional().describe('eBay marketplace ID'),
272
+ },
273
+ title: 'Get Fulfillment Policies',
274
+ outputSchema: {
275
+ type: 'object',
276
+ properties: {
277
+ success: { type: 'boolean' },
278
+ data: { type: 'object' }
279
+ }
280
+ },
281
+ annotations: {
282
+ title: 'Get Fulfillment Policies',
283
+ readOnlyHint: true
284
+ },
285
+ _meta: {
286
+ category: 'account',
287
+ version: '1.0.0'
288
+ }
289
+ },
290
+ {
291
+ name: 'ebay_get_payment_policies',
292
+ description: 'Get payment policies for the seller',
293
+ inputSchema: {
294
+ marketplaceId: z.nativeEnum(MarketplaceId).optional().describe('eBay marketplace ID'),
295
+ },
296
+ title: 'Get Payment Policies',
297
+ outputSchema: {
298
+ type: 'object',
299
+ properties: {
300
+ success: { type: 'boolean' },
301
+ data: { type: 'object' }
302
+ }
303
+ },
304
+ annotations: {
305
+ title: 'Get Payment Policies',
306
+ readOnlyHint: true
307
+ },
308
+ _meta: {
309
+ category: 'account',
310
+ version: '1.0.0'
311
+ }
312
+ },
313
+ {
314
+ name: 'ebay_get_return_policies',
315
+ description: 'Get return policies for the seller',
316
+ inputSchema: {
317
+ marketplaceId: z.nativeEnum(MarketplaceId).optional().describe('eBay marketplace ID'),
318
+ },
319
+ title: 'Get Return Policies',
320
+ outputSchema: {
321
+ type: 'object',
322
+ properties: {
323
+ success: { type: 'boolean' },
324
+ data: { type: 'object' }
325
+ }
326
+ },
327
+ annotations: {
328
+ title: 'Get Return Policies',
329
+ readOnlyHint: true
330
+ },
331
+ _meta: {
332
+ category: 'account',
333
+ version: '1.0.0'
334
+ }
335
+ },
336
+ // Fulfillment Policy CRUD
337
+ {
338
+ name: 'ebay_create_fulfillment_policy',
339
+ description: 'Create a new fulfillment policy.\n\nRequired OAuth Scope: sell.account\nMinimum Scope: https://api.ebay.com/oauth/api_scope/sell.account',
340
+ inputSchema: {
341
+ policy: fulfillmentPolicySchema.describe('Fulfillment policy details'),
342
+ },
343
+ title: 'Create Fulfillment Policy',
344
+ outputSchema: {
345
+ type: 'object',
346
+ properties: {
347
+ success: { type: 'boolean' },
348
+ data: { type: 'object' }
349
+ }
350
+ },
351
+ annotations: {
352
+ title: 'Create Fulfillment Policy',
353
+ idempotentHint: true
354
+ },
355
+ _meta: {
356
+ category: 'account',
357
+ version: '1.0.0'
358
+ }
359
+ },
360
+ {
361
+ name: 'ebay_get_fulfillment_policy',
362
+ description: 'Get a specific fulfillment policy by ID',
363
+ inputSchema: {
364
+ fulfillmentPolicyId: z.string().describe('The fulfillment policy ID'),
365
+ },
366
+ title: 'Get Fulfillment Policy',
367
+ outputSchema: {
368
+ type: 'object',
369
+ properties: {
370
+ success: { type: 'boolean' },
371
+ data: { type: 'object' }
372
+ }
373
+ },
374
+ annotations: {
375
+ title: 'Get Fulfillment Policy',
376
+ readOnlyHint: true
377
+ },
378
+ _meta: {
379
+ category: 'account',
380
+ version: '1.0.0'
381
+ }
382
+ },
383
+ {
384
+ name: 'ebay_get_fulfillment_policy_by_name',
385
+ description: 'Get a fulfillment policy by name',
386
+ inputSchema: {
387
+ marketplaceId: z.nativeEnum(MarketplaceId).describe('eBay marketplace ID'),
388
+ name: z.string().describe('Policy name'),
389
+ },
390
+ title: 'Get Fulfillment Policy by Name',
391
+ outputSchema: {
392
+ type: 'object',
393
+ properties: {
394
+ success: { type: 'boolean' },
395
+ data: { type: 'object' }
396
+ }
397
+ },
398
+ annotations: {
399
+ title: 'Get Fulfillment Policy by Name',
400
+ readOnlyHint: true
401
+ },
402
+ _meta: {
403
+ category: 'account',
404
+ version: '1.0.0'
405
+ }
406
+ },
407
+ {
408
+ name: 'ebay_update_fulfillment_policy',
409
+ description: 'Update an existing fulfillment policy',
410
+ inputSchema: {
411
+ fulfillmentPolicyId: z.string().describe('The fulfillment policy ID'),
412
+ policy: fulfillmentPolicySchema.describe('Updated fulfillment policy details'),
413
+ },
414
+ title: 'Update Fulfillment Policy',
415
+ outputSchema: {
416
+ type: 'object',
417
+ properties: {
418
+ success: { type: 'boolean' },
419
+ data: { type: 'object' }
420
+ }
421
+ },
422
+ annotations: {
423
+ title: 'Update Fulfillment Policy',
424
+ idempotentHint: true
425
+ },
426
+ _meta: {
427
+ category: 'account',
428
+ version: '1.0.0'
429
+ }
430
+ },
431
+ {
432
+ name: 'ebay_delete_fulfillment_policy',
433
+ description: 'Delete a fulfillment policy',
434
+ inputSchema: {
435
+ fulfillmentPolicyId: z.string().describe('The fulfillment policy ID'),
436
+ },
437
+ title: 'Delete Fulfillment Policy',
438
+ outputSchema: {
439
+ type: 'object',
440
+ properties: {
441
+ success: { type: 'boolean' },
442
+ data: { type: 'object' }
443
+ }
444
+ },
445
+ annotations: {
446
+ title: 'Delete Fulfillment Policy',
447
+ destructiveHint: true
448
+ },
449
+ _meta: {
450
+ category: 'account',
451
+ version: '1.0.0'
452
+ }
453
+ },
454
+ // Payment Policy CRUD
455
+ {
456
+ name: 'ebay_create_payment_policy',
457
+ description: 'Create a new payment policy',
458
+ inputSchema: {
459
+ policy: paymentPolicySchema.describe('Payment policy details'),
460
+ },
461
+ title: 'Create Payment Policy',
462
+ outputSchema: {
463
+ type: 'object',
464
+ properties: {
465
+ success: { type: 'boolean' },
466
+ data: { type: 'object' }
467
+ }
468
+ },
469
+ annotations: {
470
+ title: 'Create Payment Policy',
471
+ idempotentHint: true
472
+ },
473
+ _meta: {
474
+ category: 'account',
475
+ version: '1.0.0'
476
+ }
477
+ },
478
+ {
479
+ name: 'ebay_get_payment_policy',
480
+ description: 'Get a specific payment policy by ID',
481
+ inputSchema: {
482
+ paymentPolicyId: z.string().describe('The payment policy ID'),
483
+ },
484
+ title: 'Get Payment Policy',
485
+ outputSchema: {
486
+ type: 'object',
487
+ properties: {
488
+ success: { type: 'boolean' },
489
+ data: { type: 'object' }
490
+ }
491
+ },
492
+ annotations: {
493
+ title: 'Get Payment Policy',
494
+ readOnlyHint: true
495
+ },
496
+ _meta: {
497
+ category: 'account',
498
+ version: '1.0.0'
499
+ }
500
+ },
501
+ {
502
+ name: 'ebay_get_payment_policy_by_name',
503
+ description: 'Get a payment policy by name',
504
+ inputSchema: {
505
+ marketplaceId: z.nativeEnum(MarketplaceId).describe('eBay marketplace ID'),
506
+ name: z.string().describe('Policy name'),
507
+ },
508
+ title: 'Get Payment Policy by Name',
509
+ outputSchema: {
510
+ type: 'object',
511
+ properties: {
512
+ success: { type: 'boolean' },
513
+ data: { type: 'object' }
514
+ }
515
+ },
516
+ annotations: {
517
+ title: 'Get Payment Policy by Name',
518
+ readOnlyHint: true
519
+ },
520
+ _meta: {
521
+ category: 'account',
522
+ version: '1.0.0'
523
+ }
524
+ },
525
+ {
526
+ name: 'ebay_update_payment_policy',
527
+ description: 'Update an existing payment policy',
528
+ inputSchema: {
529
+ paymentPolicyId: z.string().describe('The payment policy ID'),
530
+ policy: paymentPolicySchema.describe('Updated payment policy details'),
531
+ },
532
+ title: 'Update Payment Policy',
533
+ outputSchema: {
534
+ type: 'object',
535
+ properties: {
536
+ success: { type: 'boolean' },
537
+ data: { type: 'object' }
538
+ }
539
+ },
540
+ annotations: {
541
+ title: 'Update Payment Policy',
542
+ idempotentHint: true
543
+ },
544
+ _meta: {
545
+ category: 'account',
546
+ version: '1.0.0'
547
+ }
548
+ },
549
+ {
550
+ name: 'ebay_delete_payment_policy',
551
+ description: 'Delete a payment policy',
552
+ inputSchema: {
553
+ paymentPolicyId: z.string().describe('The payment policy ID'),
554
+ },
555
+ title: 'Delete Payment Policy',
556
+ outputSchema: {
557
+ type: 'object',
558
+ properties: {
559
+ success: { type: 'boolean' },
560
+ data: { type: 'object' }
561
+ }
562
+ },
563
+ annotations: {
564
+ title: 'Delete Payment Policy',
565
+ destructiveHint: true
566
+ },
567
+ _meta: {
568
+ category: 'account',
569
+ version: '1.0.0'
570
+ }
571
+ },
572
+ // Return Policy CRUD
573
+ {
574
+ name: 'ebay_create_return_policy',
575
+ description: 'Create a new return policy',
576
+ inputSchema: {
577
+ policy: returnPolicySchema.describe('Return policy details'),
578
+ },
579
+ title: 'Create Return Policy',
580
+ outputSchema: {
581
+ type: 'object',
582
+ properties: {
583
+ success: { type: 'boolean' },
584
+ data: { type: 'object' }
585
+ }
586
+ },
587
+ annotations: {
588
+ title: 'Create Return Policy',
589
+ idempotentHint: true
590
+ },
591
+ _meta: {
592
+ category: 'account',
593
+ version: '1.0.0'
594
+ }
595
+ },
596
+ {
597
+ name: 'ebay_get_return_policy',
598
+ description: 'Get a specific return policy by ID',
599
+ inputSchema: {
600
+ returnPolicyId: z.string().describe('The return policy ID'),
601
+ },
602
+ title: 'Get Return Policy',
603
+ outputSchema: {
604
+ type: 'object',
605
+ properties: {
606
+ success: { type: 'boolean' },
607
+ data: { type: 'object' }
608
+ }
609
+ },
610
+ annotations: {
611
+ title: 'Get Return Policy',
612
+ readOnlyHint: true
613
+ },
614
+ _meta: {
615
+ category: 'account',
616
+ version: '1.0.0'
617
+ }
618
+ },
619
+ {
620
+ name: 'ebay_get_return_policy_by_name',
621
+ description: 'Get a return policy by name',
622
+ inputSchema: {
623
+ marketplaceId: z.nativeEnum(MarketplaceId).describe('eBay marketplace ID'),
624
+ name: z.string().describe('Policy name'),
625
+ },
626
+ title: 'Get Return Policy by Name',
627
+ outputSchema: {
628
+ type: 'object',
629
+ properties: {
630
+ success: { type: 'boolean' },
631
+ data: { type: 'object' }
632
+ }
633
+ },
634
+ annotations: {
635
+ title: 'Get Return Policy by Name',
636
+ readOnlyHint: true
637
+ },
638
+ _meta: {
639
+ category: 'account',
640
+ version: '1.0.0'
641
+ }
642
+ },
643
+ {
644
+ name: 'ebay_update_return_policy',
645
+ description: 'Update an existing return policy',
646
+ inputSchema: {
647
+ returnPolicyId: z.string().describe('The return policy ID'),
648
+ policy: returnPolicySchema.describe('Updated return policy details'),
649
+ },
650
+ title: 'Update Return Policy',
651
+ outputSchema: {
652
+ type: 'object',
653
+ properties: {
654
+ success: { type: 'boolean' },
655
+ data: { type: 'object' }
656
+ }
657
+ },
658
+ annotations: {
659
+ title: 'Update Return Policy',
660
+ idempotentHint: true
661
+ },
662
+ _meta: {
663
+ category: 'account',
664
+ version: '1.0.0'
665
+ }
666
+ },
667
+ {
668
+ name: 'ebay_delete_return_policy',
669
+ description: 'Delete a return policy',
670
+ inputSchema: {
671
+ returnPolicyId: z.string().describe('The return policy ID'),
672
+ },
673
+ title: 'Delete Return Policy',
674
+ outputSchema: {
675
+ type: 'object',
676
+ properties: {
677
+ success: { type: 'boolean' },
678
+ data: { type: 'object' }
679
+ }
680
+ },
681
+ annotations: {
682
+ title: 'Delete Return Policy',
683
+ destructiveHint: true
684
+ },
685
+ _meta: {
686
+ category: 'account',
687
+ version: '1.0.0'
688
+ }
689
+ },
690
+ // Custom Policy CRUD
691
+ {
692
+ name: 'ebay_create_custom_policy',
693
+ description: 'Create a new custom policy',
694
+ inputSchema: {
695
+ policy: customPolicySchema.describe('Custom policy details'),
696
+ },
697
+ title: 'Create Custom Policy',
698
+ outputSchema: {
699
+ type: 'object',
700
+ properties: {
701
+ success: { type: 'boolean' },
702
+ data: { type: 'object' }
703
+ }
704
+ },
705
+ annotations: {
706
+ title: 'Create Custom Policy',
707
+ idempotentHint: true
708
+ },
709
+ _meta: {
710
+ category: 'account',
711
+ version: '1.0.0'
712
+ }
713
+ },
714
+ {
715
+ name: 'ebay_get_custom_policy',
716
+ description: 'Get a specific custom policy by ID',
717
+ inputSchema: {
718
+ customPolicyId: z.string().describe('The custom policy ID'),
719
+ },
720
+ title: 'Get Custom Policy',
721
+ outputSchema: {
722
+ type: 'object',
723
+ properties: {
724
+ success: { type: 'boolean' },
725
+ data: { type: 'object' }
726
+ }
727
+ },
728
+ annotations: {
729
+ title: 'Get Custom Policy',
730
+ readOnlyHint: true
731
+ },
732
+ _meta: {
733
+ category: 'account',
734
+ version: '1.0.0'
735
+ }
736
+ },
737
+ {
738
+ name: 'ebay_update_custom_policy',
739
+ description: 'Update an existing custom policy',
740
+ inputSchema: {
741
+ customPolicyId: z.string().describe('The custom policy ID'),
742
+ policy: customPolicySchema.describe('Updated custom policy details'),
743
+ },
744
+ title: 'Update Custom Policy',
745
+ outputSchema: {
746
+ type: 'object',
747
+ properties: {
748
+ success: { type: 'boolean' },
749
+ data: { type: 'object' }
750
+ }
751
+ },
752
+ annotations: {
753
+ title: 'Update Custom Policy',
754
+ idempotentHint: true
755
+ },
756
+ _meta: {
757
+ category: 'account',
758
+ version: '1.0.0'
759
+ }
760
+ },
761
+ {
762
+ name: 'ebay_delete_custom_policy',
763
+ description: 'Delete a custom policy',
764
+ inputSchema: {
765
+ customPolicyId: z.string().describe('The custom policy ID'),
766
+ },
767
+ title: 'Delete Custom Policy',
768
+ outputSchema: {
769
+ type: 'object',
770
+ properties: {
771
+ success: { type: 'boolean' },
772
+ data: { type: 'object' }
773
+ }
774
+ },
775
+ annotations: {
776
+ title: 'Delete Custom Policy',
777
+ destructiveHint: true
778
+ },
779
+ _meta: {
780
+ category: 'account',
781
+ version: '1.0.0'
782
+ }
783
+ },
784
+ // KYC, Payments, Programs, Sales Tax, Subscription
785
+ {
786
+ name: 'ebay_get_kyc',
787
+ description: 'Get seller KYC (Know Your Customer) status',
788
+ inputSchema: {},
789
+ title: 'Get KYC',
790
+ outputSchema: {
791
+ type: 'object',
792
+ properties: {
793
+ success: { type: 'boolean' },
794
+ data: { type: 'object' }
795
+ }
796
+ },
797
+ annotations: {
798
+ title: 'Get KYC',
799
+ readOnlyHint: true
800
+ },
801
+ _meta: {
802
+ category: 'account',
803
+ version: '1.0.0'
804
+ }
805
+ },
806
+ {
807
+ name: 'ebay_opt_in_to_payments_program',
808
+ description: 'Opt-in to a payments program',
809
+ inputSchema: {
810
+ marketplaceId: z.nativeEnum(MarketplaceId).describe('eBay marketplace ID'),
811
+ paymentsProgramType: z.string().describe('Payments program type'),
812
+ },
813
+ title: 'Opt In to Payments Program',
814
+ outputSchema: {
815
+ type: 'object',
816
+ properties: {
817
+ success: { type: 'boolean' },
818
+ data: { type: 'object' }
819
+ }
820
+ },
821
+ annotations: {
822
+ title: 'Opt In to Payments Program',
823
+ idempotentHint: true
824
+ },
825
+ _meta: {
826
+ category: 'account',
827
+ version: '1.0.0'
828
+ }
829
+ },
830
+ {
831
+ name: 'ebay_get_payments_program_status',
832
+ description: 'Get payments program status',
833
+ inputSchema: {
834
+ marketplaceId: z.nativeEnum(MarketplaceId).describe('eBay marketplace ID'),
835
+ paymentsProgramType: z.string().describe('Payments program type'),
836
+ },
837
+ title: 'Get Payments Program Status',
838
+ outputSchema: {
839
+ type: 'object',
840
+ properties: {
841
+ success: { type: 'boolean' },
842
+ data: { type: 'object' }
843
+ }
844
+ },
845
+ annotations: {
846
+ title: 'Get Payments Program Status',
847
+ readOnlyHint: true
848
+ },
849
+ _meta: {
850
+ category: 'account',
851
+ version: '1.0.0'
852
+ }
853
+ },
854
+ {
855
+ name: 'ebay_get_rate_tables',
856
+ description: 'Get seller rate tables',
857
+ inputSchema: {},
858
+ title: 'Get Rate Tables',
859
+ outputSchema: {
860
+ type: 'object',
861
+ properties: {
862
+ success: { type: 'boolean' },
863
+ data: { type: 'object' }
864
+ }
865
+ },
866
+ annotations: {
867
+ title: 'Get Rate Tables',
868
+ readOnlyHint: true
869
+ },
870
+ _meta: {
871
+ category: 'account',
872
+ version: '1.0.0'
873
+ }
874
+ },
875
+ {
876
+ name: 'ebay_create_or_replace_sales_tax',
877
+ description: 'Create or replace sales tax table for a jurisdiction',
878
+ inputSchema: {
879
+ countryCode: z.string().describe('Two-letter ISO 3166 country code'),
880
+ jurisdictionId: z.string().describe('Tax jurisdiction ID'),
881
+ salesTaxBase: salesTaxBaseSchema.describe('Sales tax details'),
882
+ },
883
+ title: 'Create or Replace Sales Tax',
884
+ outputSchema: {
885
+ type: 'object',
886
+ properties: {
887
+ success: { type: 'boolean' },
888
+ data: { type: 'object' }
889
+ }
890
+ },
891
+ annotations: {
892
+ title: 'Create or Replace Sales Tax',
893
+ idempotentHint: true
894
+ },
895
+ _meta: {
896
+ category: 'account',
897
+ version: '1.0.0'
898
+ }
899
+ },
900
+ {
901
+ name: 'ebay_bulk_create_or_replace_sales_tax',
902
+ description: 'Bulk create or replace sales tax tables',
903
+ inputSchema: {
904
+ requests: bulkSalesTaxRequestSchema.describe('Array of sales tax requests'),
905
+ },
906
+ title: 'Bulk Create or Replace Sales Tax',
907
+ outputSchema: {
908
+ type: 'object',
909
+ properties: {
910
+ success: { type: 'boolean' },
911
+ data: { type: 'object' }
912
+ }
913
+ },
914
+ annotations: {
915
+ title: 'Bulk Create or Replace Sales Tax',
916
+ idempotentHint: true
917
+ },
918
+ _meta: {
919
+ category: 'account',
920
+ version: '1.0.0'
921
+ }
922
+ },
923
+ {
924
+ name: 'ebay_delete_sales_tax',
925
+ description: 'Delete sales tax table for a jurisdiction',
926
+ inputSchema: {
927
+ countryCode: z.string().describe('Two-letter ISO 3166 country code'),
928
+ jurisdictionId: z.string().describe('Tax jurisdiction ID'),
929
+ },
930
+ title: 'Delete Sales Tax',
931
+ outputSchema: {
932
+ type: 'object',
933
+ properties: {
934
+ success: { type: 'boolean' },
935
+ data: { type: 'object' }
936
+ }
937
+ },
938
+ annotations: {
939
+ title: 'Delete Sales Tax',
940
+ destructiveHint: true
941
+ },
942
+ _meta: {
943
+ category: 'account',
944
+ version: '1.0.0'
945
+ }
946
+ },
947
+ {
948
+ name: 'ebay_get_sales_tax',
949
+ description: 'Get sales tax table for a jurisdiction',
950
+ inputSchema: {
951
+ countryCode: z.string().describe('Two-letter ISO 3166 country code'),
952
+ jurisdictionId: z.string().describe('Tax jurisdiction ID'),
953
+ },
954
+ title: 'Get Sales Tax',
955
+ outputSchema: {
956
+ type: 'object',
957
+ properties: {
958
+ success: { type: 'boolean' },
959
+ data: { type: 'object' }
960
+ }
961
+ },
962
+ annotations: {
963
+ title: 'Get Sales Tax',
964
+ readOnlyHint: true
965
+ },
966
+ _meta: {
967
+ category: 'account',
968
+ version: '1.0.0'
969
+ }
970
+ },
971
+ {
972
+ name: 'ebay_get_sales_taxes',
973
+ description: 'Get all sales tax tables',
974
+ inputSchema: {
975
+ countryCode: z.string().optional().describe('Optional country code to filter by'),
976
+ },
977
+ title: 'Get Sales Taxes',
978
+ outputSchema: {
979
+ type: 'object',
980
+ properties: {
981
+ success: { type: 'boolean' },
982
+ data: { type: 'object' }
983
+ }
984
+ },
985
+ annotations: {
986
+ title: 'Get Sales Taxes',
987
+ readOnlyHint: true
988
+ },
989
+ _meta: {
990
+ category: 'account',
991
+ version: '1.0.0'
992
+ }
993
+ },
994
+ {
995
+ name: 'ebay_get_subscription',
996
+ description: 'Get seller subscription information',
997
+ inputSchema: {
998
+ limitType: z.string().optional().describe('Optional limit type filter'),
999
+ },
1000
+ title: 'Get Subscription',
1001
+ outputSchema: {
1002
+ type: 'object',
1003
+ properties: {
1004
+ success: { type: 'boolean' },
1005
+ data: { type: 'object' }
1006
+ }
1007
+ },
1008
+ annotations: {
1009
+ title: 'Get Subscription',
1010
+ readOnlyHint: true
1011
+ },
1012
+ _meta: {
1013
+ category: 'account',
1014
+ version: '1.0.0'
1015
+ }
1016
+ },
1017
+ {
1018
+ name: 'ebay_opt_in_to_program',
1019
+ description: 'Opt-in to a seller program',
1020
+ inputSchema: {
1021
+ request: programRequestSchema.describe('Program opt-in request'),
1022
+ },
1023
+ title: 'Opt In to Program',
1024
+ outputSchema: {
1025
+ type: 'object',
1026
+ properties: {
1027
+ success: { type: 'boolean' },
1028
+ data: { type: 'object' }
1029
+ }
1030
+ },
1031
+ annotations: {
1032
+ title: 'Opt In to Program',
1033
+ idempotentHint: true
1034
+ },
1035
+ _meta: {
1036
+ category: 'account',
1037
+ version: '1.0.0'
1038
+ }
1039
+ },
1040
+ {
1041
+ name: 'ebay_opt_out_of_program',
1042
+ description: 'Opt-out of a seller program',
1043
+ inputSchema: {
1044
+ request: programRequestSchema.describe('Program opt-out request'),
1045
+ },
1046
+ title: 'Opt Out of Program',
1047
+ outputSchema: {
1048
+ type: 'object',
1049
+ properties: {
1050
+ success: { type: 'boolean' },
1051
+ data: { type: 'object' }
1052
+ }
1053
+ },
1054
+ annotations: {
1055
+ title: 'Opt Out of Program',
1056
+ idempotentHint: true
1057
+ },
1058
+ _meta: {
1059
+ category: 'account',
1060
+ version: '1.0.0'
1061
+ }
1062
+ },
1063
+ {
1064
+ name: 'ebay_get_opted_in_programs',
1065
+ description: 'Get seller programs the account is opted into',
1066
+ inputSchema: {},
1067
+ title: 'Get Opted In Programs',
1068
+ outputSchema: {
1069
+ type: 'object',
1070
+ properties: {
1071
+ success: { type: 'boolean' },
1072
+ data: { type: 'object' }
1073
+ }
1074
+ },
1075
+ annotations: {
1076
+ title: 'Get Opted In Programs',
1077
+ readOnlyHint: true
1078
+ },
1079
+ _meta: {
1080
+ category: 'account',
1081
+ version: '1.0.0'
1082
+ }
1083
+ },
1084
+ ];
1085
+ export const inventoryTools = [
1086
+ {
1087
+ name: 'ebay_get_inventory_items',
1088
+ description: 'Retrieve all inventory items for the seller.\n\nRequired OAuth Scope: sell.inventory.readonly or sell.inventory\nMinimum Scope: https://api.ebay.com/oauth/api_scope/sell.inventory.readonly',
1089
+ inputSchema: {
1090
+ limit: z.number().optional().describe('Number of items to return (max 100)'),
1091
+ offset: z.number().optional().describe('Number of items to skip'),
1092
+ },
1093
+ title: 'Get Inventory Items',
1094
+ outputSchema: {
1095
+ type: 'object',
1096
+ properties: {
1097
+ success: { type: 'boolean' },
1098
+ data: { type: 'object' }
1099
+ }
1100
+ },
1101
+ annotations: {
1102
+ title: 'Get Inventory Items',
1103
+ readOnlyHint: true
1104
+ },
1105
+ _meta: {
1106
+ category: 'inventory',
1107
+ version: '1.0.0'
1108
+ }
1109
+ },
1110
+ {
1111
+ name: 'ebay_get_inventory_item',
1112
+ description: 'Get a specific inventory item by SKU.\n\nRequired OAuth Scope: sell.inventory.readonly or sell.inventory\nMinimum Scope: https://api.ebay.com/oauth/api_scope/sell.inventory.readonly',
1113
+ inputSchema: {
1114
+ sku: z.string().describe('The seller-defined SKU'),
1115
+ },
1116
+ title: 'Get Inventory Item',
1117
+ outputSchema: {
1118
+ type: 'object',
1119
+ properties: {
1120
+ success: { type: 'boolean' },
1121
+ data: { type: 'object' }
1122
+ }
1123
+ },
1124
+ annotations: {
1125
+ title: 'Get Inventory Item',
1126
+ readOnlyHint: true
1127
+ },
1128
+ _meta: {
1129
+ category: 'inventory',
1130
+ version: '1.0.0'
1131
+ }
1132
+ },
1133
+ {
1134
+ name: 'ebay_create_inventory_item',
1135
+ description: 'Create or replace an inventory item.\n\nRequired OAuth Scope: sell.inventory\nMinimum Scope: https://api.ebay.com/oauth/api_scope/sell.inventory',
1136
+ inputSchema: {
1137
+ sku: z.string().describe('The seller-defined SKU'),
1138
+ inventoryItem: inventoryItemSchema.describe('Inventory item details'),
1139
+ },
1140
+ title: 'Create Inventory Item',
1141
+ outputSchema: {
1142
+ type: 'object',
1143
+ properties: {
1144
+ success: { type: 'boolean' },
1145
+ data: { type: 'object' }
1146
+ }
1147
+ },
1148
+ annotations: {
1149
+ title: 'Create Inventory Item',
1150
+ idempotentHint: true
1151
+ },
1152
+ _meta: {
1153
+ category: 'inventory',
1154
+ version: '1.0.0'
1155
+ }
1156
+ },
1157
+ {
1158
+ name: 'ebay_get_offers',
1159
+ description: 'Get all offers for the seller',
1160
+ inputSchema: {
1161
+ sku: z.string().optional().describe('Filter by SKU'),
1162
+ marketplaceId: z.nativeEnum(MarketplaceId).optional().describe('Filter by marketplace ID'),
1163
+ limit: z.number().optional().describe('Number of offers to return'),
1164
+ },
1165
+ title: 'Get Offers',
1166
+ outputSchema: {
1167
+ type: 'object',
1168
+ properties: {
1169
+ success: { type: 'boolean' },
1170
+ data: { type: 'object' }
1171
+ }
1172
+ },
1173
+ annotations: {
1174
+ title: 'Get Offers',
1175
+ readOnlyHint: true
1176
+ },
1177
+ _meta: {
1178
+ category: 'inventory',
1179
+ version: '1.0.0'
1180
+ }
1181
+ },
1182
+ {
1183
+ name: 'ebay_create_offer',
1184
+ description: 'Create a new offer for an inventory item',
1185
+ inputSchema: {
1186
+ offer: offerSchema.describe('Offer details including SKU, marketplace, pricing, and policies'),
1187
+ },
1188
+ title: 'Create Offer',
1189
+ outputSchema: {
1190
+ type: 'object',
1191
+ properties: {
1192
+ success: { type: 'boolean' },
1193
+ data: { type: 'object' }
1194
+ }
1195
+ },
1196
+ annotations: {
1197
+ title: 'Create Offer',
1198
+ idempotentHint: true
1199
+ },
1200
+ _meta: {
1201
+ category: 'inventory',
1202
+ version: '1.0.0'
1203
+ }
1204
+ },
1205
+ {
1206
+ name: 'ebay_publish_offer',
1207
+ description: 'Publish an offer to create a listing',
1208
+ inputSchema: {
1209
+ offerId: z.string().describe('The offer ID to publish'),
1210
+ },
1211
+ title: 'Publish Offer',
1212
+ outputSchema: {
1213
+ type: 'object',
1214
+ properties: {
1215
+ success: { type: 'boolean' },
1216
+ data: { type: 'object' }
1217
+ }
1218
+ },
1219
+ annotations: {
1220
+ title: 'Publish Offer',
1221
+ idempotentHint: true
1222
+ },
1223
+ _meta: {
1224
+ category: 'inventory',
1225
+ version: '1.0.0'
1226
+ }
1227
+ },
1228
+ {
1229
+ name: 'ebay_bulk_create_or_replace_inventory_item',
1230
+ description: 'Bulk create or replace multiple inventory items',
1231
+ inputSchema: {
1232
+ requests: bulkInventoryItemRequestSchema.describe('Bulk inventory item requests'),
1233
+ },
1234
+ title: 'Bulk Create or Replace Inventory Item',
1235
+ outputSchema: {
1236
+ type: 'object',
1237
+ properties: {
1238
+ success: { type: 'boolean' },
1239
+ data: { type: 'object' }
1240
+ }
1241
+ },
1242
+ annotations: {
1243
+ title: 'Bulk Create or Replace Inventory Item',
1244
+ idempotentHint: true
1245
+ },
1246
+ _meta: {
1247
+ category: 'inventory',
1248
+ version: '1.0.0'
1249
+ }
1250
+ },
1251
+ {
1252
+ name: 'ebay_bulk_get_inventory_item',
1253
+ description: 'Bulk get multiple inventory items',
1254
+ inputSchema: {
1255
+ requests: z
1256
+ .object({
1257
+ requests: z.array(z
1258
+ .object({
1259
+ sku: z.string(),
1260
+ })
1261
+ .passthrough()),
1262
+ })
1263
+ .passthrough()
1264
+ .describe('Bulk inventory item get requests with SKU list'),
1265
+ },
1266
+ title: 'Bulk Get Inventory Item',
1267
+ outputSchema: {
1268
+ type: 'object',
1269
+ properties: {
1270
+ success: { type: 'boolean' },
1271
+ data: { type: 'object' }
1272
+ }
1273
+ },
1274
+ annotations: {
1275
+ title: 'Bulk Get Inventory Item',
1276
+ readOnlyHint: true
1277
+ },
1278
+ _meta: {
1279
+ category: 'inventory',
1280
+ version: '1.0.0'
1281
+ }
1282
+ },
1283
+ {
1284
+ name: 'ebay_bulk_update_price_quantity',
1285
+ description: 'Bulk update price and quantity for multiple offers',
1286
+ inputSchema: {
1287
+ requests: bulkPriceQuantityRequestSchema.describe('Bulk price and quantity update requests'),
1288
+ },
1289
+ title: 'Bulk Update Price Quantity',
1290
+ outputSchema: {
1291
+ type: 'object',
1292
+ properties: {
1293
+ success: { type: 'boolean' },
1294
+ data: { type: 'object' }
1295
+ }
1296
+ },
1297
+ annotations: {
1298
+ title: 'Bulk Update Price Quantity',
1299
+ idempotentHint: true
1300
+ },
1301
+ _meta: {
1302
+ category: 'inventory',
1303
+ version: '1.0.0'
1304
+ }
1305
+ },
1306
+ {
1307
+ name: 'ebay_get_product_compatibility',
1308
+ description: 'Get product compatibility information for an inventory item',
1309
+ inputSchema: {
1310
+ sku: z.string().describe('The seller-defined SKU'),
1311
+ },
1312
+ title: 'Get Product Compatibility',
1313
+ outputSchema: {
1314
+ type: 'object',
1315
+ properties: {
1316
+ success: { type: 'boolean' },
1317
+ data: { type: 'object' }
1318
+ }
1319
+ },
1320
+ annotations: {
1321
+ title: 'Get Product Compatibility',
1322
+ readOnlyHint: true
1323
+ },
1324
+ _meta: {
1325
+ category: 'inventory',
1326
+ version: '1.0.0'
1327
+ }
1328
+ },
1329
+ {
1330
+ name: 'ebay_create_or_replace_product_compatibility',
1331
+ description: 'Create or replace product compatibility for an inventory item',
1332
+ inputSchema: {
1333
+ sku: z.string().describe('The seller-defined SKU'),
1334
+ compatibility: productCompatibilitySchema.describe('Product compatibility details'),
1335
+ },
1336
+ title: 'Create or Replace Product Compatibility',
1337
+ outputSchema: {
1338
+ type: 'object',
1339
+ properties: {
1340
+ success: { type: 'boolean' },
1341
+ data: { type: 'object' }
1342
+ }
1343
+ },
1344
+ annotations: {
1345
+ title: 'Create or Replace Product Compatibility',
1346
+ idempotentHint: true
1347
+ },
1348
+ _meta: {
1349
+ category: 'inventory',
1350
+ version: '1.0.0'
1351
+ }
1352
+ },
1353
+ {
1354
+ name: 'ebay_delete_product_compatibility',
1355
+ description: 'Delete product compatibility for an inventory item',
1356
+ inputSchema: {
1357
+ sku: z.string().describe('The seller-defined SKU'),
1358
+ },
1359
+ title: 'Delete Product Compatibility',
1360
+ outputSchema: {
1361
+ type: 'object',
1362
+ properties: {
1363
+ success: { type: 'boolean' },
1364
+ data: { type: 'object' }
1365
+ }
1366
+ },
1367
+ annotations: {
1368
+ title: 'Delete Product Compatibility',
1369
+ destructiveHint: true
1370
+ },
1371
+ _meta: {
1372
+ category: 'inventory',
1373
+ version: '1.0.0'
1374
+ }
1375
+ },
1376
+ {
1377
+ name: 'ebay_get_inventory_item_group',
1378
+ description: 'Get an inventory item group (variation group)',
1379
+ inputSchema: {
1380
+ inventoryItemGroupKey: z.string().describe('The inventory item group key'),
1381
+ },
1382
+ title: 'Get Inventory Item Group',
1383
+ outputSchema: {
1384
+ type: 'object',
1385
+ properties: {
1386
+ success: { type: 'boolean' },
1387
+ data: { type: 'object' }
1388
+ }
1389
+ },
1390
+ annotations: {
1391
+ title: 'Get Inventory Item Group',
1392
+ readOnlyHint: true
1393
+ },
1394
+ _meta: {
1395
+ category: 'inventory',
1396
+ version: '1.0.0'
1397
+ }
1398
+ },
1399
+ {
1400
+ name: 'ebay_create_or_replace_inventory_item_group',
1401
+ description: 'Create or replace an inventory item group',
1402
+ inputSchema: {
1403
+ inventoryItemGroupKey: z.string().describe('The inventory item group key'),
1404
+ inventoryItemGroup: inventoryItemGroupSchema.describe('Inventory item group details'),
1405
+ },
1406
+ title: 'Create or Replace Inventory Item Group',
1407
+ outputSchema: {
1408
+ type: 'object',
1409
+ properties: {
1410
+ success: { type: 'boolean' },
1411
+ data: { type: 'object' }
1412
+ }
1413
+ },
1414
+ annotations: {
1415
+ title: 'Create or Replace Inventory Item Group',
1416
+ idempotentHint: true
1417
+ },
1418
+ _meta: {
1419
+ category: 'inventory',
1420
+ version: '1.0.0'
1421
+ }
1422
+ },
1423
+ {
1424
+ name: 'ebay_delete_inventory_item_group',
1425
+ description: 'Delete an inventory item group',
1426
+ inputSchema: {
1427
+ inventoryItemGroupKey: z.string().describe('The inventory item group key'),
1428
+ },
1429
+ title: 'Delete Inventory Item Group',
1430
+ outputSchema: {
1431
+ type: 'object',
1432
+ properties: {
1433
+ success: { type: 'boolean' },
1434
+ data: { type: 'object' }
1435
+ }
1436
+ },
1437
+ annotations: {
1438
+ title: 'Delete Inventory Item Group',
1439
+ destructiveHint: true
1440
+ },
1441
+ _meta: {
1442
+ category: 'inventory',
1443
+ version: '1.0.0'
1444
+ }
1445
+ },
1446
+ {
1447
+ name: 'ebay_get_inventory_locations',
1448
+ description: 'Get all inventory locations',
1449
+ inputSchema: {
1450
+ limit: z.number().optional().describe('Number of locations to return'),
1451
+ offset: z.number().optional().describe('Number of locations to skip'),
1452
+ },
1453
+ title: 'Get Inventory Locations',
1454
+ outputSchema: {
1455
+ type: 'object',
1456
+ properties: {
1457
+ success: { type: 'boolean' },
1458
+ data: { type: 'object' }
1459
+ }
1460
+ },
1461
+ annotations: {
1462
+ title: 'Get Inventory Locations',
1463
+ readOnlyHint: true
1464
+ },
1465
+ _meta: {
1466
+ category: 'inventory',
1467
+ version: '1.0.0'
1468
+ }
1469
+ },
1470
+ {
1471
+ name: 'ebay_get_inventory_location',
1472
+ description: 'Get a specific inventory location',
1473
+ inputSchema: {
1474
+ merchantLocationKey: z.string().describe('The merchant location key'),
1475
+ },
1476
+ title: 'Get Inventory Location',
1477
+ outputSchema: {
1478
+ type: 'object',
1479
+ properties: {
1480
+ success: { type: 'boolean' },
1481
+ data: { type: 'object' }
1482
+ }
1483
+ },
1484
+ annotations: {
1485
+ title: 'Get Inventory Location',
1486
+ readOnlyHint: true
1487
+ },
1488
+ _meta: {
1489
+ category: 'inventory',
1490
+ version: '1.0.0'
1491
+ }
1492
+ },
1493
+ {
1494
+ name: 'ebay_create_or_replace_inventory_location',
1495
+ description: 'Create or replace an inventory location',
1496
+ inputSchema: {
1497
+ merchantLocationKey: z.string().describe('The merchant location key'),
1498
+ location: locationSchema.describe('Location details'),
1499
+ },
1500
+ title: 'Create Or Replace Inventory Location',
1501
+ outputSchema: {
1502
+ type: 'object',
1503
+ properties: {
1504
+ success: { type: 'boolean' },
1505
+ data: { type: 'object' }
1506
+ }
1507
+ },
1508
+ annotations: {
1509
+ title: 'Create Or Replace Inventory Location',
1510
+ idempotentHint: true
1511
+ },
1512
+ _meta: {
1513
+ category: 'inventory',
1514
+ version: '1.0.0'
1515
+ }
1516
+ },
1517
+ {
1518
+ name: 'ebay_delete_inventory_location',
1519
+ description: 'Delete an inventory location',
1520
+ inputSchema: {
1521
+ merchantLocationKey: z.string().describe('The merchant location key'),
1522
+ },
1523
+ title: 'Delete Inventory Location',
1524
+ outputSchema: {
1525
+ type: 'object',
1526
+ properties: {
1527
+ success: { type: 'boolean' },
1528
+ data: { type: 'object' }
1529
+ }
1530
+ },
1531
+ annotations: {
1532
+ title: 'Delete Inventory Location',
1533
+ destructiveHint: true
1534
+ },
1535
+ _meta: {
1536
+ category: 'inventory',
1537
+ version: '1.0.0'
1538
+ }
1539
+ },
1540
+ {
1541
+ name: 'ebay_disable_inventory_location',
1542
+ description: 'Disable an inventory location',
1543
+ inputSchema: {
1544
+ merchantLocationKey: z.string().describe('The merchant location key'),
1545
+ },
1546
+ title: 'Disable Inventory Location',
1547
+ outputSchema: {
1548
+ type: 'object',
1549
+ properties: {
1550
+ success: { type: 'boolean' },
1551
+ data: { type: 'object' }
1552
+ }
1553
+ },
1554
+ annotations: {
1555
+ title: 'Disable Inventory Location',
1556
+ idempotentHint: true
1557
+ },
1558
+ _meta: {
1559
+ category: 'inventory',
1560
+ version: '1.0.0'
1561
+ }
1562
+ },
1563
+ {
1564
+ name: 'ebay_enable_inventory_location',
1565
+ description: 'Enable an inventory location',
1566
+ inputSchema: {
1567
+ merchantLocationKey: z.string().describe('The merchant location key'),
1568
+ },
1569
+ title: 'Enable Inventory Location',
1570
+ outputSchema: {
1571
+ type: 'object',
1572
+ properties: {
1573
+ success: { type: 'boolean' },
1574
+ data: { type: 'object' }
1575
+ }
1576
+ },
1577
+ annotations: {
1578
+ title: 'Enable Inventory Location',
1579
+ idempotentHint: true
1580
+ },
1581
+ _meta: {
1582
+ category: 'inventory',
1583
+ version: '1.0.0'
1584
+ }
1585
+ },
1586
+ {
1587
+ name: 'ebay_update_location_details',
1588
+ description: 'Update location details for an inventory location',
1589
+ inputSchema: {
1590
+ merchantLocationKey: z.string().describe('The merchant location key'),
1591
+ locationDetails: locationSchema.describe('Location detail updates'),
1592
+ },
1593
+ title: 'Update Location Details',
1594
+ outputSchema: {
1595
+ type: 'object',
1596
+ properties: {
1597
+ success: { type: 'boolean' },
1598
+ data: { type: 'object' }
1599
+ }
1600
+ },
1601
+ annotations: {
1602
+ title: 'Update Location Details',
1603
+ idempotentHint: true
1604
+ },
1605
+ _meta: {
1606
+ category: 'inventory',
1607
+ version: '1.0.0'
1608
+ }
1609
+ },
1610
+ {
1611
+ name: 'ebay_get_offer',
1612
+ description: 'Get a specific offer by ID',
1613
+ inputSchema: {
1614
+ offerId: z.string().describe('The offer ID'),
1615
+ },
1616
+ title: 'Get Offer',
1617
+ outputSchema: {
1618
+ type: 'object',
1619
+ properties: {
1620
+ success: { type: 'boolean' },
1621
+ data: { type: 'object' }
1622
+ }
1623
+ },
1624
+ annotations: {
1625
+ title: 'Get Offer',
1626
+ readOnlyHint: true
1627
+ },
1628
+ _meta: {
1629
+ category: 'inventory',
1630
+ version: '1.0.0'
1631
+ }
1632
+ },
1633
+ {
1634
+ name: 'ebay_update_offer',
1635
+ description: 'Update an existing offer',
1636
+ inputSchema: {
1637
+ offerId: z.string().describe('The offer ID'),
1638
+ offer: offerSchema.describe('Updated offer details'),
1639
+ },
1640
+ title: 'Update Offer',
1641
+ outputSchema: {
1642
+ type: 'object',
1643
+ properties: {
1644
+ success: { type: 'boolean' },
1645
+ data: { type: 'object' }
1646
+ }
1647
+ },
1648
+ annotations: {
1649
+ title: 'Update Offer',
1650
+ idempotentHint: true
1651
+ },
1652
+ _meta: {
1653
+ category: 'inventory',
1654
+ version: '1.0.0'
1655
+ }
1656
+ },
1657
+ {
1658
+ name: 'ebay_delete_offer',
1659
+ description: 'Delete an offer',
1660
+ inputSchema: {
1661
+ offerId: z.string().describe('The offer ID to delete'),
1662
+ },
1663
+ title: 'Delete Offer',
1664
+ outputSchema: {
1665
+ type: 'object',
1666
+ properties: {
1667
+ success: { type: 'boolean' },
1668
+ data: { type: 'object' }
1669
+ }
1670
+ },
1671
+ annotations: {
1672
+ title: 'Delete Offer',
1673
+ destructiveHint: true
1674
+ },
1675
+ _meta: {
1676
+ category: 'inventory',
1677
+ version: '1.0.0'
1678
+ }
1679
+ },
1680
+ {
1681
+ name: 'ebay_withdraw_offer',
1682
+ description: 'Withdraw a published offer',
1683
+ inputSchema: {
1684
+ offerId: z.string().describe('The offer ID to withdraw'),
1685
+ },
1686
+ title: 'Withdraw Offer',
1687
+ outputSchema: {
1688
+ type: 'object',
1689
+ properties: {
1690
+ success: { type: 'boolean' },
1691
+ data: { type: 'object' }
1692
+ }
1693
+ },
1694
+ annotations: {
1695
+ title: 'Withdraw Offer',
1696
+ destructiveHint: true
1697
+ },
1698
+ _meta: {
1699
+ category: 'inventory',
1700
+ version: '1.0.0'
1701
+ }
1702
+ },
1703
+ {
1704
+ name: 'ebay_bulk_create_offer',
1705
+ description: 'Bulk create multiple offers',
1706
+ inputSchema: {
1707
+ requests: bulkOfferRequestSchema.describe('Bulk offer creation requests'),
1708
+ },
1709
+ title: 'Bulk Create Offer',
1710
+ outputSchema: {
1711
+ type: 'object',
1712
+ properties: {
1713
+ success: { type: 'boolean' },
1714
+ data: { type: 'object' }
1715
+ }
1716
+ },
1717
+ annotations: {
1718
+ title: 'Bulk Create Offer',
1719
+ idempotentHint: true
1720
+ },
1721
+ _meta: {
1722
+ category: 'inventory',
1723
+ version: '1.0.0'
1724
+ }
1725
+ },
1726
+ {
1727
+ name: 'ebay_bulk_publish_offer',
1728
+ description: 'Bulk publish multiple offers',
1729
+ inputSchema: {
1730
+ requests: bulkPublishRequestSchema.describe('Bulk offer publish requests'),
1731
+ },
1732
+ title: 'Bulk Publish Offer',
1733
+ outputSchema: {
1734
+ type: 'object',
1735
+ properties: {
1736
+ success: { type: 'boolean' },
1737
+ data: { type: 'object' }
1738
+ }
1739
+ },
1740
+ annotations: {
1741
+ title: 'Bulk Publish Offer',
1742
+ idempotentHint: true
1743
+ },
1744
+ _meta: {
1745
+ category: 'inventory',
1746
+ version: '1.0.0'
1747
+ }
1748
+ },
1749
+ {
1750
+ name: 'ebay_get_listing_fees',
1751
+ description: 'Get listing fees for offers before publishing',
1752
+ inputSchema: {
1753
+ offers: listingFeesRequestSchema.describe('Offers to calculate listing fees for'),
1754
+ },
1755
+ title: 'Get Listing Fees',
1756
+ outputSchema: {
1757
+ type: 'object',
1758
+ properties: {
1759
+ success: { type: 'boolean' },
1760
+ data: { type: 'object' }
1761
+ }
1762
+ },
1763
+ annotations: {
1764
+ title: 'Get Listing Fees',
1765
+ readOnlyHint: true
1766
+ },
1767
+ _meta: {
1768
+ category: 'inventory',
1769
+ version: '1.0.0'
1770
+ }
1771
+ },
1772
+ {
1773
+ name: 'ebay_bulk_migrate_listing',
1774
+ description: 'Bulk migrate listings to the inventory model',
1775
+ inputSchema: {
1776
+ requests: bulkMigrateRequestSchema.describe('Bulk listing migration requests'),
1777
+ },
1778
+ title: 'Bulk Migrate Listing',
1779
+ outputSchema: {
1780
+ type: 'object',
1781
+ properties: {
1782
+ success: { type: 'boolean' },
1783
+ data: { type: 'object' }
1784
+ }
1785
+ },
1786
+ annotations: {
1787
+ title: 'Bulk Migrate Listing',
1788
+ idempotentHint: true
1789
+ },
1790
+ _meta: {
1791
+ category: 'inventory',
1792
+ version: '1.0.0'
1793
+ }
1794
+ },
1795
+ ];
1796
+ export const fulfillmentTools = [
1797
+ {
1798
+ name: 'ebay_get_orders',
1799
+ description: 'Retrieve orders for the seller.\n\nRequired OAuth Scope: sell.fulfillment.readonly or sell.fulfillment\nMinimum Scope: https://api.ebay.com/oauth/api_scope/sell.fulfillment.readonly',
1800
+ inputSchema: {
1801
+ filter: z
1802
+ .string()
1803
+ .optional()
1804
+ .describe('Filter criteria (e.g., orderfulfillmentstatus:{NOT_STARTED})'),
1805
+ limit: z.number().optional().describe('Number of orders to return'),
1806
+ offset: z.number().optional().describe('Number of orders to skip'),
1807
+ },
1808
+ title: 'Get Orders',
1809
+ outputSchema: {
1810
+ type: 'object',
1811
+ properties: {
1812
+ success: { type: 'boolean' },
1813
+ data: { type: 'object' }
1814
+ }
1815
+ },
1816
+ annotations: {
1817
+ title: 'Get Orders',
1818
+ readOnlyHint: true
1819
+ },
1820
+ _meta: {
1821
+ category: 'fulfillment',
1822
+ version: '1.0.0'
1823
+ }
1824
+ },
1825
+ {
1826
+ name: 'ebay_get_order',
1827
+ description: 'Get details of a specific order.\n\nRequired OAuth Scope: sell.fulfillment.readonly or sell.fulfillment\nMinimum Scope: https://api.ebay.com/oauth/api_scope/sell.fulfillment.readonly',
1828
+ inputSchema: {
1829
+ orderId: z.string().describe('The unique order ID'),
1830
+ },
1831
+ title: 'Get Order',
1832
+ outputSchema: {
1833
+ type: 'object',
1834
+ properties: {
1835
+ success: { type: 'boolean' },
1836
+ data: { type: 'object' }
1837
+ }
1838
+ },
1839
+ annotations: {
1840
+ title: 'Get Order',
1841
+ readOnlyHint: true
1842
+ },
1843
+ _meta: {
1844
+ category: 'fulfillment',
1845
+ version: '1.0.0'
1846
+ }
1847
+ },
1848
+ {
1849
+ name: 'ebay_create_shipping_fulfillment',
1850
+ description: 'Create a shipping fulfillment for an order.\n\nRequired OAuth Scope: sell.fulfillment\nMinimum Scope: https://api.ebay.com/oauth/api_scope/sell.fulfillment',
1851
+ inputSchema: {
1852
+ orderId: z.string().describe('The order ID'),
1853
+ fulfillment: shippingFulfillmentSchema.describe('Shipping fulfillment details including tracking number'),
1854
+ },
1855
+ title: 'Create Shipping Fulfillment',
1856
+ outputSchema: {
1857
+ type: 'object',
1858
+ properties: {
1859
+ success: { type: 'boolean' },
1860
+ data: { type: 'object' }
1861
+ }
1862
+ },
1863
+ annotations: {
1864
+ title: 'Create Shipping Fulfillment',
1865
+ idempotentHint: true
1866
+ },
1867
+ _meta: {
1868
+ category: 'fulfillment',
1869
+ version: '1.0.0'
1870
+ }
1871
+ },
1872
+ {
1873
+ name: 'ebay_issue_refund',
1874
+ description: 'Issue a full or partial refund for an eBay order. Use this to refund buyers for orders, including specifying the refund amount and reason.\n\nRequired OAuth Scope: sell.fulfillment\nMinimum Scope: https://api.ebay.com/oauth/api_scope/sell.fulfillment',
1875
+ inputSchema: {
1876
+ orderId: z.string().describe('The unique eBay order ID to refund'),
1877
+ refundData: z
1878
+ .object({
1879
+ reasonForRefund: z
1880
+ .string()
1881
+ .describe('REQUIRED. Reason code: BUYER_CANCEL, OUT_OF_STOCK, FOUND_CHEAPER_PRICE, INCORRECT_PRICE, ITEM_DAMAGED, ITEM_DEFECTIVE, LOST_IN_TRANSIT, MUTUALLY_AGREED, SELLER_CANCEL'),
1882
+ comment: z
1883
+ .string()
1884
+ .optional()
1885
+ .describe('Optional comment to buyer about the refund (max 100 characters)'),
1886
+ refundItems: z
1887
+ .array(z.object({
1888
+ lineItemId: z
1889
+ .string()
1890
+ .describe('The unique identifier of the order line item to refund'),
1891
+ refundAmount: z
1892
+ .object({
1893
+ value: z.string().describe('The monetary amount (e.g., "25.99")'),
1894
+ currency: z
1895
+ .string()
1896
+ .describe('Three-letter ISO 4217 currency code (e.g., "USD")'),
1897
+ })
1898
+ .optional()
1899
+ .describe('The amount to refund for this line item'),
1900
+ legacyReference: z
1901
+ .object({
1902
+ legacyItemId: z.string().optional(),
1903
+ legacyTransactionId: z.string().optional(),
1904
+ })
1905
+ .optional()
1906
+ .describe('Optional legacy item ID/transaction ID pair for identifying the line item'),
1907
+ }))
1908
+ .optional()
1909
+ .describe('Array of individual line items to refund. Use this for partial refunds of specific items. Each item requires lineItemId and refundAmount.'),
1910
+ orderLevelRefundAmount: z
1911
+ .object({
1912
+ value: z.string().describe('The monetary amount (e.g., "99.99")'),
1913
+ currency: z.string().describe('Three-letter ISO 4217 currency code (e.g., "USD")'),
1914
+ })
1915
+ .optional()
1916
+ .describe('Use this to refund the entire order amount. Alternative to refundItems. Include value and currency.'),
1917
+ })
1918
+ .describe('Refund details including amount, reason, and optional comment. Must include reasonForRefund (required), and either refundItems (for line item refunds) OR orderLevelRefundAmount (for full order refunds).'),
1919
+ },
1920
+ title: 'Issue Refund',
1921
+ outputSchema: {
1922
+ type: 'object',
1923
+ properties: {
1924
+ success: { type: 'boolean' },
1925
+ data: { type: 'object' }
1926
+ }
1927
+ },
1928
+ annotations: {
1929
+ title: 'Issue Refund',
1930
+ idempotentHint: true
1931
+ },
1932
+ _meta: {
1933
+ category: 'fulfillment',
1934
+ version: '1.0.0'
1935
+ }
1936
+ },
1937
+ ];
1938
+ export const marketingTools = [
1939
+ {
1940
+ name: 'ebay_get_campaigns',
1941
+ description: 'Get marketing campaigns for the seller',
1942
+ inputSchema: {
1943
+ campaignStatus: z
1944
+ .string()
1945
+ .optional()
1946
+ .describe('Filter by campaign status (RUNNING, PAUSED, ENDED)'),
1947
+ marketplaceId: z.nativeEnum(MarketplaceId).optional().describe('Filter by marketplace ID'),
1948
+ limit: z.number().optional().describe('Number of campaigns to return'),
1949
+ },
1950
+ title: 'Get Campaigns',
1951
+ outputSchema: {
1952
+ type: 'object',
1953
+ properties: {
1954
+ success: { type: 'boolean' },
1955
+ data: { type: 'object' }
1956
+ }
1957
+ },
1958
+ annotations: {
1959
+ title: 'Get Campaigns',
1960
+ readOnlyHint: true
1961
+ },
1962
+ _meta: {
1963
+ category: 'marketing',
1964
+ version: '1.0.0'
1965
+ }
1966
+ },
1967
+ {
1968
+ name: 'ebay_get_campaign',
1969
+ description: 'Get details of a specific marketing campaign by ID',
1970
+ inputSchema: {
1971
+ campaignId: z.string().describe('The unique campaign ID'),
1972
+ },
1973
+ title: 'Get Campaign',
1974
+ outputSchema: {
1975
+ type: 'object',
1976
+ properties: {
1977
+ success: { type: 'boolean' },
1978
+ data: { type: 'object' }
1979
+ }
1980
+ },
1981
+ annotations: {
1982
+ title: 'Get Campaign',
1983
+ readOnlyHint: true
1984
+ },
1985
+ _meta: {
1986
+ category: 'marketing',
1987
+ version: '1.0.0'
1988
+ }
1989
+ },
1990
+ {
1991
+ name: 'ebay_pause_campaign',
1992
+ description: 'Pause a running marketing campaign. Use this to temporarily stop a campaign without ending it.',
1993
+ inputSchema: {
1994
+ campaignId: z.string().describe('The unique campaign ID to pause'),
1995
+ },
1996
+ title: 'Pause Campaign',
1997
+ outputSchema: {
1998
+ type: 'object',
1999
+ properties: {
2000
+ success: { type: 'boolean' },
2001
+ data: { type: 'object' }
2002
+ }
2003
+ },
2004
+ annotations: {
2005
+ title: 'Pause Campaign',
2006
+ idempotentHint: true
2007
+ },
2008
+ _meta: {
2009
+ category: 'marketing',
2010
+ version: '1.0.0'
2011
+ }
2012
+ },
2013
+ {
2014
+ name: 'ebay_resume_campaign',
2015
+ description: 'Resume a paused marketing campaign. Use this to restart a campaign that was previously paused.',
2016
+ inputSchema: {
2017
+ campaignId: z.string().describe('The unique campaign ID to resume'),
2018
+ },
2019
+ title: 'Resume Campaign',
2020
+ outputSchema: {
2021
+ type: 'object',
2022
+ properties: {
2023
+ success: { type: 'boolean' },
2024
+ data: { type: 'object' }
2025
+ }
2026
+ },
2027
+ annotations: {
2028
+ title: 'Resume Campaign',
2029
+ idempotentHint: true
2030
+ },
2031
+ _meta: {
2032
+ category: 'marketing',
2033
+ version: '1.0.0'
2034
+ }
2035
+ },
2036
+ {
2037
+ name: 'ebay_end_campaign',
2038
+ description: 'Permanently end a marketing campaign. Note: Ended campaigns cannot be restarted.',
2039
+ inputSchema: {
2040
+ campaignId: z.string().describe('The unique campaign ID to end'),
2041
+ },
2042
+ title: 'End Campaign',
2043
+ outputSchema: {
2044
+ type: 'object',
2045
+ properties: {
2046
+ success: { type: 'boolean' },
2047
+ data: { type: 'object' }
2048
+ }
2049
+ },
2050
+ annotations: {
2051
+ title: 'End Campaign',
2052
+ idempotentHint: true
2053
+ },
2054
+ _meta: {
2055
+ category: 'marketing',
2056
+ version: '1.0.0'
2057
+ }
2058
+ },
2059
+ {
2060
+ name: 'ebay_update_campaign_identification',
2061
+ description: "Update a campaign's name or other identification details. Note: eBay does not support directly updating campaign budget or duration - you must clone the campaign with new settings.",
2062
+ inputSchema: {
2063
+ campaignId: z.string().describe('The unique campaign ID'),
2064
+ updateData: z
2065
+ .object({
2066
+ campaignName: z.string().optional().describe('New campaign name'),
2067
+ })
2068
+ .describe('Campaign identification data to update (e.g., campaign name)'),
2069
+ },
2070
+ title: 'Update Campaign Identification',
2071
+ outputSchema: {
2072
+ type: 'object',
2073
+ properties: {
2074
+ success: { type: 'boolean' },
2075
+ data: { type: 'object' }
2076
+ }
2077
+ },
2078
+ annotations: {
2079
+ title: 'Update Campaign Identification',
2080
+ idempotentHint: true
2081
+ },
2082
+ _meta: {
2083
+ category: 'marketing',
2084
+ version: '1.0.0'
2085
+ }
2086
+ },
2087
+ {
2088
+ name: 'ebay_clone_campaign',
2089
+ description: 'Clone an existing campaign with new settings. Use this to create a campaign with modified budget or duration, as eBay does not support direct budget/duration updates.',
2090
+ inputSchema: {
2091
+ campaignId: z.string().describe('The campaign ID to clone'),
2092
+ cloneData: z
2093
+ .object({
2094
+ campaignName: z.string().optional().describe('Name for the new cloned campaign'),
2095
+ fundingStrategy: z
2096
+ .object({
2097
+ fundingModel: z
2098
+ .string()
2099
+ .optional()
2100
+ .describe('The funding model for the campaign. Valid values: "COST_PER_SALE" (CPS) or "COST_PER_CLICK" (CPC)'),
2101
+ bidPercentage: z
2102
+ .string()
2103
+ .optional()
2104
+ .describe('The bid percentage for CPS campaigns (e.g., "10.5" for 10.5%). Required for COST_PER_SALE funding model.'),
2105
+ })
2106
+ .optional()
2107
+ .describe('Budget settings for the campaign. Includes fundingModel (COST_PER_SALE or COST_PER_CLICK) and bidPercentage.'),
2108
+ startDate: z
2109
+ .string()
2110
+ .optional()
2111
+ .describe('Campaign start date in UTC format (yyyy-MM-ddThh:mm:ssZ, e.g., "2025-01-15T00:00:00Z")'),
2112
+ endDate: z
2113
+ .string()
2114
+ .optional()
2115
+ .describe('Campaign end date in UTC format (yyyy-MM-ddThh:mm:ssZ, e.g., "2025-12-31T23:59:59Z")'),
2116
+ })
2117
+ .describe('New campaign settings including name, budget, start/end dates'),
2118
+ },
2119
+ title: 'Clone Campaign',
2120
+ outputSchema: {
2121
+ type: 'object',
2122
+ properties: {
2123
+ success: { type: 'boolean' },
2124
+ data: { type: 'object' }
2125
+ }
2126
+ },
2127
+ annotations: {
2128
+ title: 'Clone Campaign',
2129
+ idempotentHint: true
2130
+ },
2131
+ _meta: {
2132
+ category: 'marketing',
2133
+ version: '1.0.0'
2134
+ }
2135
+ },
2136
+ {
2137
+ name: 'ebay_get_promotions',
2138
+ description: 'Get promotions for the seller',
2139
+ inputSchema: {
2140
+ marketplaceId: z.nativeEnum(MarketplaceId).optional().describe('Filter by marketplace ID'),
2141
+ limit: z.number().optional().describe('Number of promotions to return'),
2142
+ },
2143
+ title: 'Get Promotions',
2144
+ outputSchema: {
2145
+ type: 'object',
2146
+ properties: {
2147
+ success: { type: 'boolean' },
2148
+ data: { type: 'object' }
2149
+ }
2150
+ },
2151
+ annotations: {
2152
+ title: 'Get Promotions',
2153
+ readOnlyHint: true
2154
+ },
2155
+ _meta: {
2156
+ category: 'marketing',
2157
+ version: '1.0.0'
2158
+ }
2159
+ },
2160
+ {
2161
+ name: 'ebay_find_listing_recommendations',
2162
+ description: 'Find listing recommendations for items',
2163
+ inputSchema: {
2164
+ listingIds: z
2165
+ .array(z.string())
2166
+ .optional()
2167
+ .describe('Array of listing IDs to get recommendations for'),
2168
+ filter: z.string().optional().describe('Filter criteria'),
2169
+ limit: z.number().optional().describe('Number of recommendations to return'),
2170
+ offset: z.number().optional().describe('Number to skip'),
2171
+ marketplaceId: z.string().optional().describe('Marketplace ID'),
2172
+ },
2173
+ title: 'Find Listing Recommendations',
2174
+ outputSchema: {
2175
+ type: 'object',
2176
+ properties: {
2177
+ success: { type: 'boolean' },
2178
+ data: { type: 'object' }
2179
+ }
2180
+ },
2181
+ annotations: {
2182
+ title: 'Find Listing Recommendations',
2183
+ readOnlyHint: true
2184
+ },
2185
+ _meta: {
2186
+ category: 'marketing',
2187
+ version: '1.0.0'
2188
+ }
2189
+ },
2190
+ ];
2191
+ export const analyticsTools = [
2192
+ {
2193
+ name: 'ebay_get_traffic_report',
2194
+ description: 'Get traffic report for listings',
2195
+ inputSchema: {
2196
+ dimension: z.string().describe('Dimension for the report (e.g., LISTING, DAY)'),
2197
+ filter: z.string().describe('Filter criteria'),
2198
+ metric: z.string().describe('Metrics to retrieve (e.g., CLICK_THROUGH_RATE, IMPRESSION)'),
2199
+ sort: z.string().optional().describe('Sort order'),
2200
+ },
2201
+ title: 'Get Traffic Report',
2202
+ outputSchema: {
2203
+ type: 'object',
2204
+ properties: {
2205
+ success: { type: 'boolean' },
2206
+ data: { type: 'object' }
2207
+ }
2208
+ },
2209
+ annotations: {
2210
+ title: 'Get Traffic Report',
2211
+ readOnlyHint: true
2212
+ },
2213
+ _meta: {
2214
+ category: 'analytics',
2215
+ version: '1.0.0'
2216
+ }
2217
+ },
2218
+ {
2219
+ name: 'ebay_find_seller_standards_profiles',
2220
+ description: 'Find all seller standards profiles',
2221
+ inputSchema: {},
2222
+ title: 'Find Seller Standards Profiles',
2223
+ outputSchema: {
2224
+ type: 'object',
2225
+ properties: {
2226
+ success: { type: 'boolean' },
2227
+ data: { type: 'object' }
2228
+ }
2229
+ },
2230
+ annotations: {
2231
+ title: 'Find Seller Standards Profiles',
2232
+ readOnlyHint: true
2233
+ },
2234
+ _meta: {
2235
+ category: 'analytics',
2236
+ version: '1.0.0'
2237
+ }
2238
+ },
2239
+ {
2240
+ name: 'ebay_get_seller_standards_profile',
2241
+ description: 'Get a specific seller standards profile',
2242
+ inputSchema: {
2243
+ program: z.string().describe('The program (e.g., CUSTOMER_SERVICE)'),
2244
+ cycle: z.string().describe('The cycle (e.g., CURRENT)'),
2245
+ },
2246
+ title: 'Get Seller Standards Profile',
2247
+ outputSchema: {
2248
+ type: 'object',
2249
+ properties: {
2250
+ success: { type: 'boolean' },
2251
+ data: { type: 'object' }
2252
+ }
2253
+ },
2254
+ annotations: {
2255
+ title: 'Get Seller Standards Profile',
2256
+ readOnlyHint: true
2257
+ },
2258
+ _meta: {
2259
+ category: 'analytics',
2260
+ version: '1.0.0'
2261
+ }
2262
+ },
2263
+ {
2264
+ name: 'ebay_get_customer_service_metric',
2265
+ description: 'Get customer service metrics',
2266
+ inputSchema: {
2267
+ customerServiceMetricType: z.string().describe('Type of metric'),
2268
+ evaluationType: z.string().describe('Evaluation type'),
2269
+ evaluationMarketplaceId: z.string().describe('Marketplace ID for evaluation'),
2270
+ },
2271
+ title: 'Get Customer Service Metric',
2272
+ outputSchema: {
2273
+ type: 'object',
2274
+ properties: {
2275
+ success: { type: 'boolean' },
2276
+ data: { type: 'object' }
2277
+ }
2278
+ },
2279
+ annotations: {
2280
+ title: 'Get Customer Service Metric',
2281
+ readOnlyHint: true
2282
+ },
2283
+ _meta: {
2284
+ category: 'analytics',
2285
+ version: '1.0.0'
2286
+ }
2287
+ },
2288
+ ];
2289
+ export const metadataTools = [
2290
+ {
2291
+ name: 'ebay_get_automotive_parts_compatibility_policies',
2292
+ description: 'Get automotive parts compatibility policies for a marketplace',
2293
+ inputSchema: {
2294
+ marketplaceId: z.nativeEnum(MarketplaceId).describe('Marketplace ID'),
2295
+ filter: z.string().optional().describe('Filter criteria'),
2296
+ },
2297
+ title: 'Get Automotive Parts Compatibility Policies',
2298
+ outputSchema: {
2299
+ type: 'object',
2300
+ properties: {
2301
+ success: { type: 'boolean' },
2302
+ data: { type: 'object' }
2303
+ }
2304
+ },
2305
+ annotations: {
2306
+ title: 'Get Automotive Parts Compatibility Policies',
2307
+ readOnlyHint: true
2308
+ },
2309
+ _meta: {
2310
+ category: 'metadata',
2311
+ version: '1.0.0'
2312
+ }
2313
+ },
2314
+ {
2315
+ name: 'ebay_get_category_policies',
2316
+ description: 'Get category policies for a marketplace',
2317
+ inputSchema: {
2318
+ marketplaceId: z.nativeEnum(MarketplaceId).describe('Marketplace ID'),
2319
+ filter: z.string().optional().describe('Filter criteria'),
2320
+ },
2321
+ title: 'Get Category Policies',
2322
+ outputSchema: {
2323
+ type: 'object',
2324
+ properties: {
2325
+ success: { type: 'boolean' },
2326
+ data: { type: 'object' }
2327
+ }
2328
+ },
2329
+ annotations: {
2330
+ title: 'Get Category Policies',
2331
+ readOnlyHint: true
2332
+ },
2333
+ _meta: {
2334
+ category: 'metadata',
2335
+ version: '1.0.0'
2336
+ }
2337
+ },
2338
+ {
2339
+ name: 'ebay_get_extended_producer_responsibility_policies',
2340
+ description: 'Get extended producer responsibility policies for a marketplace',
2341
+ inputSchema: {
2342
+ marketplaceId: z.nativeEnum(MarketplaceId).describe('Marketplace ID'),
2343
+ filter: z.string().optional().describe('Filter criteria'),
2344
+ },
2345
+ title: 'Get Extended Producer Responsibility Policies',
2346
+ outputSchema: {
2347
+ type: 'object',
2348
+ properties: {
2349
+ success: { type: 'boolean' },
2350
+ data: { type: 'object' }
2351
+ }
2352
+ },
2353
+ annotations: {
2354
+ title: 'Get Extended Producer Responsibility Policies',
2355
+ readOnlyHint: true
2356
+ },
2357
+ _meta: {
2358
+ category: 'metadata',
2359
+ version: '1.0.0'
2360
+ }
2361
+ },
2362
+ {
2363
+ name: 'ebay_get_hazardous_materials_labels',
2364
+ description: 'Get hazardous materials labels for a marketplace',
2365
+ inputSchema: {
2366
+ marketplaceId: z.nativeEnum(MarketplaceId).describe('Marketplace ID'),
2367
+ },
2368
+ title: 'Get Hazardous Materials Labels',
2369
+ outputSchema: {
2370
+ type: 'object',
2371
+ properties: {
2372
+ success: { type: 'boolean' },
2373
+ data: { type: 'object' }
2374
+ }
2375
+ },
2376
+ annotations: {
2377
+ title: 'Get Hazardous Materials Labels',
2378
+ readOnlyHint: true
2379
+ },
2380
+ _meta: {
2381
+ category: 'metadata',
2382
+ version: '1.0.0'
2383
+ }
2384
+ },
2385
+ {
2386
+ name: 'ebay_get_item_condition_policies',
2387
+ description: 'Get item condition policies for a marketplace',
2388
+ inputSchema: {
2389
+ marketplaceId: z.nativeEnum(MarketplaceId).describe('Marketplace ID'),
2390
+ filter: z.string().optional().describe('Filter criteria'),
2391
+ },
2392
+ title: 'Get Item Condition Policies',
2393
+ outputSchema: {
2394
+ type: 'object',
2395
+ properties: {
2396
+ success: { type: 'boolean' },
2397
+ data: { type: 'object' }
2398
+ }
2399
+ },
2400
+ annotations: {
2401
+ title: 'Get Item Condition Policies',
2402
+ readOnlyHint: true
2403
+ },
2404
+ _meta: {
2405
+ category: 'metadata',
2406
+ version: '1.0.0'
2407
+ }
2408
+ },
2409
+ {
2410
+ name: 'ebay_get_listing_structure_policies',
2411
+ description: 'Get listing structure policies for a marketplace',
2412
+ inputSchema: {
2413
+ marketplaceId: z.nativeEnum(MarketplaceId).describe('Marketplace ID'),
2414
+ filter: z.string().optional().describe('Filter criteria'),
2415
+ },
2416
+ title: 'Get Listing Structure Policies',
2417
+ outputSchema: {
2418
+ type: 'object',
2419
+ properties: {
2420
+ success: { type: 'boolean' },
2421
+ data: { type: 'object' }
2422
+ }
2423
+ },
2424
+ annotations: {
2425
+ title: 'Get Listing Structure Policies',
2426
+ readOnlyHint: true
2427
+ },
2428
+ _meta: {
2429
+ category: 'metadata',
2430
+ version: '1.0.0'
2431
+ }
2432
+ },
2433
+ {
2434
+ name: 'ebay_get_negotiated_price_policies',
2435
+ description: 'Get negotiated price policies for a marketplace',
2436
+ inputSchema: {
2437
+ marketplaceId: z.nativeEnum(MarketplaceId).describe('Marketplace ID'),
2438
+ filter: z.string().optional().describe('Filter criteria'),
2439
+ },
2440
+ title: 'Get Negotiated Price Policies',
2441
+ outputSchema: {
2442
+ type: 'object',
2443
+ properties: {
2444
+ success: { type: 'boolean' },
2445
+ data: { type: 'object' }
2446
+ }
2447
+ },
2448
+ annotations: {
2449
+ title: 'Get Negotiated Price Policies',
2450
+ readOnlyHint: true
2451
+ },
2452
+ _meta: {
2453
+ category: 'metadata',
2454
+ version: '1.0.0'
2455
+ }
2456
+ },
2457
+ {
2458
+ name: 'ebay_get_product_safety_labels',
2459
+ description: 'Get product safety labels for a marketplace',
2460
+ inputSchema: {
2461
+ marketplaceId: z.nativeEnum(MarketplaceId).describe('Marketplace ID'),
2462
+ },
2463
+ title: 'Get Product Safety Labels',
2464
+ outputSchema: {
2465
+ type: 'object',
2466
+ properties: {
2467
+ success: { type: 'boolean' },
2468
+ data: { type: 'object' }
2469
+ }
2470
+ },
2471
+ annotations: {
2472
+ title: 'Get Product Safety Labels',
2473
+ readOnlyHint: true
2474
+ },
2475
+ _meta: {
2476
+ category: 'metadata',
2477
+ version: '1.0.0'
2478
+ }
2479
+ },
2480
+ {
2481
+ name: 'ebay_get_regulatory_policies',
2482
+ description: 'Get regulatory policies for a marketplace',
2483
+ inputSchema: {
2484
+ marketplaceId: z.nativeEnum(MarketplaceId).describe('Marketplace ID'),
2485
+ filter: z.string().optional().describe('Filter criteria'),
2486
+ },
2487
+ title: 'Get Regulatory Policies',
2488
+ outputSchema: {
2489
+ type: 'object',
2490
+ properties: {
2491
+ success: { type: 'boolean' },
2492
+ data: { type: 'object' }
2493
+ }
2494
+ },
2495
+ annotations: {
2496
+ title: 'Get Regulatory Policies',
2497
+ readOnlyHint: true
2498
+ },
2499
+ _meta: {
2500
+ category: 'metadata',
2501
+ version: '1.0.0'
2502
+ }
2503
+ },
2504
+ {
2505
+ name: 'ebay_get_shipping_cost_type_policies',
2506
+ description: 'Get shipping cost type policies for a marketplace',
2507
+ inputSchema: {
2508
+ marketplaceId: z.nativeEnum(MarketplaceId).describe('Marketplace ID'),
2509
+ filter: z.string().optional().describe('Filter criteria'),
2510
+ },
2511
+ title: 'Get Shipping Cost Type Policies',
2512
+ outputSchema: {
2513
+ type: 'object',
2514
+ properties: {
2515
+ success: { type: 'boolean' },
2516
+ data: { type: 'object' }
2517
+ }
2518
+ },
2519
+ annotations: {
2520
+ title: 'Get Shipping Cost Type Policies',
2521
+ readOnlyHint: true
2522
+ },
2523
+ _meta: {
2524
+ category: 'metadata',
2525
+ version: '1.0.0'
2526
+ }
2527
+ },
2528
+ {
2529
+ name: 'ebay_get_classified_ad_policies',
2530
+ description: 'Get classified ad policies for a marketplace',
2531
+ inputSchema: {
2532
+ marketplaceId: z.nativeEnum(MarketplaceId).describe('Marketplace ID'),
2533
+ filter: z.string().optional().describe('Filter criteria'),
2534
+ },
2535
+ title: 'Get Classified Ad Policies',
2536
+ outputSchema: {
2537
+ type: 'object',
2538
+ properties: {
2539
+ success: { type: 'boolean' },
2540
+ data: { type: 'object' }
2541
+ }
2542
+ },
2543
+ annotations: {
2544
+ title: 'Get Classified Ad Policies',
2545
+ readOnlyHint: true
2546
+ },
2547
+ _meta: {
2548
+ category: 'metadata',
2549
+ version: '1.0.0'
2550
+ }
2551
+ },
2552
+ {
2553
+ name: 'ebay_get_currencies',
2554
+ description: 'Get currencies for a marketplace',
2555
+ inputSchema: {
2556
+ marketplaceId: z.nativeEnum(MarketplaceId).describe('Marketplace ID'),
2557
+ },
2558
+ title: 'Get Currencies',
2559
+ outputSchema: {
2560
+ type: 'object',
2561
+ properties: {
2562
+ success: { type: 'boolean' },
2563
+ data: { type: 'object' }
2564
+ }
2565
+ },
2566
+ annotations: {
2567
+ title: 'Get Currencies',
2568
+ readOnlyHint: true
2569
+ },
2570
+ _meta: {
2571
+ category: 'metadata',
2572
+ version: '1.0.0'
2573
+ }
2574
+ },
2575
+ {
2576
+ name: 'ebay_get_listing_type_policies',
2577
+ description: 'Get listing type policies for a marketplace',
2578
+ inputSchema: {
2579
+ marketplaceId: z.nativeEnum(MarketplaceId).describe('Marketplace ID'),
2580
+ filter: z.string().optional().describe('Filter criteria'),
2581
+ },
2582
+ title: 'Get Listing Type Policies',
2583
+ outputSchema: {
2584
+ type: 'object',
2585
+ properties: {
2586
+ success: { type: 'boolean' },
2587
+ data: { type: 'object' }
2588
+ }
2589
+ },
2590
+ annotations: {
2591
+ title: 'Get Listing Type Policies',
2592
+ readOnlyHint: true
2593
+ },
2594
+ _meta: {
2595
+ category: 'metadata',
2596
+ version: '1.0.0'
2597
+ }
2598
+ },
2599
+ {
2600
+ name: 'ebay_get_motors_listing_policies',
2601
+ description: 'Get motors listing policies for a marketplace',
2602
+ inputSchema: {
2603
+ marketplaceId: z.nativeEnum(MarketplaceId).describe('Marketplace ID'),
2604
+ filter: z.string().optional().describe('Filter criteria'),
2605
+ },
2606
+ title: 'Get Motors Listing Policies',
2607
+ outputSchema: {
2608
+ type: 'object',
2609
+ properties: {
2610
+ success: { type: 'boolean' },
2611
+ data: { type: 'object' }
2612
+ }
2613
+ },
2614
+ annotations: {
2615
+ title: 'Get Motors Listing Policies',
2616
+ readOnlyHint: true
2617
+ },
2618
+ _meta: {
2619
+ category: 'metadata',
2620
+ version: '1.0.0'
2621
+ }
2622
+ },
2623
+ {
2624
+ name: 'ebay_get_shipping_policies',
2625
+ description: 'Get shipping policies for a marketplace',
2626
+ inputSchema: {
2627
+ marketplaceId: z.nativeEnum(MarketplaceId).describe('Marketplace ID'),
2628
+ filter: z.string().optional().describe('Filter criteria'),
2629
+ },
2630
+ title: 'Get Shipping Policies',
2631
+ outputSchema: {
2632
+ type: 'object',
2633
+ properties: {
2634
+ success: { type: 'boolean' },
2635
+ data: { type: 'object' }
2636
+ }
2637
+ },
2638
+ annotations: {
2639
+ title: 'Get Shipping Policies',
2640
+ readOnlyHint: true
2641
+ },
2642
+ _meta: {
2643
+ category: 'metadata',
2644
+ version: '1.0.0'
2645
+ }
2646
+ },
2647
+ {
2648
+ name: 'ebay_get_site_visibility_policies',
2649
+ description: 'Get site visibility policies for a marketplace',
2650
+ inputSchema: {
2651
+ marketplaceId: z.nativeEnum(MarketplaceId).describe('Marketplace ID'),
2652
+ filter: z.string().optional().describe('Filter criteria'),
2653
+ },
2654
+ title: 'Get Site Visibility Policies',
2655
+ outputSchema: {
2656
+ type: 'object',
2657
+ properties: {
2658
+ success: { type: 'boolean' },
2659
+ data: { type: 'object' }
2660
+ }
2661
+ },
2662
+ annotations: {
2663
+ title: 'Get Site Visibility Policies',
2664
+ readOnlyHint: true
2665
+ },
2666
+ _meta: {
2667
+ category: 'metadata',
2668
+ version: '1.0.0'
2669
+ }
2670
+ },
2671
+ {
2672
+ name: 'ebay_get_compatibilities_by_specification',
2673
+ description: 'Get compatibilities by specification',
2674
+ inputSchema: {
2675
+ specification: compatibilitySpecificationSchema.describe('Compatibility specification object'),
2676
+ },
2677
+ title: 'Get Compatibilities By Specification',
2678
+ outputSchema: {
2679
+ type: 'object',
2680
+ properties: {
2681
+ success: { type: 'boolean' },
2682
+ data: { type: 'object' }
2683
+ }
2684
+ },
2685
+ annotations: {
2686
+ title: 'Get Compatibilities By Specification',
2687
+ readOnlyHint: true
2688
+ },
2689
+ _meta: {
2690
+ category: 'metadata',
2691
+ version: '1.0.0'
2692
+ }
2693
+ },
2694
+ {
2695
+ name: 'ebay_get_compatibility_property_names',
2696
+ description: 'Get compatibility property names',
2697
+ inputSchema: {
2698
+ data: compatibilityDataSchema.describe('Request data for getting compatibility property names'),
2699
+ },
2700
+ title: 'Get Compatibility Property Names',
2701
+ outputSchema: {
2702
+ type: 'object',
2703
+ properties: {
2704
+ success: { type: 'boolean' },
2705
+ data: { type: 'object' }
2706
+ }
2707
+ },
2708
+ annotations: {
2709
+ title: 'Get Compatibility Property Names',
2710
+ readOnlyHint: true
2711
+ },
2712
+ _meta: {
2713
+ category: 'metadata',
2714
+ version: '1.0.0'
2715
+ }
2716
+ },
2717
+ {
2718
+ name: 'ebay_get_compatibility_property_values',
2719
+ description: 'Get compatibility property values',
2720
+ inputSchema: {
2721
+ data: compatibilityDataSchema.describe('Request data for getting compatibility property values'),
2722
+ },
2723
+ title: 'Get Compatibility Property Values',
2724
+ outputSchema: {
2725
+ type: 'object',
2726
+ properties: {
2727
+ success: { type: 'boolean' },
2728
+ data: { type: 'object' }
2729
+ }
2730
+ },
2731
+ annotations: {
2732
+ title: 'Get Compatibility Property Values',
2733
+ readOnlyHint: true
2734
+ },
2735
+ _meta: {
2736
+ category: 'metadata',
2737
+ version: '1.0.0'
2738
+ }
2739
+ },
2740
+ {
2741
+ name: 'ebay_get_multi_compatibility_property_values',
2742
+ description: 'Get multiple compatibility property values',
2743
+ inputSchema: {
2744
+ data: compatibilityDataSchema.describe('Request data for getting multi compatibility property values'),
2745
+ },
2746
+ title: 'Get Multi Compatibility Property Values',
2747
+ outputSchema: {
2748
+ type: 'object',
2749
+ properties: {
2750
+ success: { type: 'boolean' },
2751
+ data: { type: 'object' }
2752
+ }
2753
+ },
2754
+ annotations: {
2755
+ title: 'Get Multi Compatibility Property Values',
2756
+ readOnlyHint: true
2757
+ },
2758
+ _meta: {
2759
+ category: 'metadata',
2760
+ version: '1.0.0'
2761
+ }
2762
+ },
2763
+ {
2764
+ name: 'ebay_get_product_compatibilities',
2765
+ description: 'Get product compatibilities',
2766
+ inputSchema: {
2767
+ data: compatibilityDataSchema.describe('Request data for getting product compatibilities'),
2768
+ },
2769
+ title: 'Get Product Compatibilities',
2770
+ outputSchema: {
2771
+ type: 'object',
2772
+ properties: {
2773
+ success: { type: 'boolean' },
2774
+ data: { type: 'object' }
2775
+ }
2776
+ },
2777
+ annotations: {
2778
+ title: 'Get Product Compatibilities',
2779
+ readOnlyHint: true
2780
+ },
2781
+ _meta: {
2782
+ category: 'metadata',
2783
+ version: '1.0.0'
2784
+ }
2785
+ },
2786
+ {
2787
+ name: 'ebay_get_sales_tax_jurisdictions',
2788
+ description: 'Get sales tax jurisdictions for a country',
2789
+ inputSchema: {
2790
+ countryCode: z.string().describe('Country code (e.g., US)'),
2791
+ },
2792
+ title: 'Get Sales Tax Jurisdictions',
2793
+ outputSchema: {
2794
+ type: 'object',
2795
+ properties: {
2796
+ success: { type: 'boolean' },
2797
+ data: { type: 'object' }
2798
+ }
2799
+ },
2800
+ annotations: {
2801
+ title: 'Get Sales Tax Jurisdictions',
2802
+ readOnlyHint: true
2803
+ },
2804
+ _meta: {
2805
+ category: 'metadata',
2806
+ version: '1.0.0'
2807
+ }
2808
+ },
2809
+ ];
2810
+ export const taxonomyTools = [
2811
+ {
2812
+ name: 'ebay_get_default_category_tree_id',
2813
+ description: 'Get the default category tree ID for a marketplace',
2814
+ inputSchema: {
2815
+ marketplaceId: z.string().describe('Marketplace ID (e.g., EBAY_US)'),
2816
+ },
2817
+ title: 'Get Default Category Tree Id',
2818
+ outputSchema: {
2819
+ type: 'object',
2820
+ properties: {
2821
+ success: { type: 'boolean' },
2822
+ data: { type: 'object' }
2823
+ }
2824
+ },
2825
+ annotations: {
2826
+ title: 'Get Default Category Tree Id',
2827
+ readOnlyHint: true
2828
+ },
2829
+ _meta: {
2830
+ category: 'taxonomy',
2831
+ version: '1.0.0'
2832
+ }
2833
+ },
2834
+ {
2835
+ name: 'ebay_get_category_tree',
2836
+ description: 'Get category tree by ID',
2837
+ inputSchema: {
2838
+ categoryTreeId: z.string().describe('Category tree ID'),
2839
+ },
2840
+ title: 'Get Category Tree',
2841
+ outputSchema: {
2842
+ type: 'object',
2843
+ properties: {
2844
+ success: { type: 'boolean' },
2845
+ data: { type: 'object' }
2846
+ }
2847
+ },
2848
+ annotations: {
2849
+ title: 'Get Category Tree',
2850
+ readOnlyHint: true
2851
+ },
2852
+ _meta: {
2853
+ category: 'taxonomy',
2854
+ version: '1.0.0'
2855
+ }
2856
+ },
2857
+ {
2858
+ name: 'ebay_get_category_suggestions',
2859
+ description: 'Get category suggestions based on query',
2860
+ inputSchema: {
2861
+ categoryTreeId: z.string().describe('Category tree ID'),
2862
+ query: z.string().describe('Search query for category suggestions'),
2863
+ },
2864
+ title: 'Get Category Suggestions',
2865
+ outputSchema: {
2866
+ type: 'object',
2867
+ properties: {
2868
+ success: { type: 'boolean' },
2869
+ data: { type: 'object' }
2870
+ }
2871
+ },
2872
+ annotations: {
2873
+ title: 'Get Category Suggestions',
2874
+ readOnlyHint: true
2875
+ },
2876
+ _meta: {
2877
+ category: 'taxonomy',
2878
+ version: '1.0.0'
2879
+ }
2880
+ },
2881
+ {
2882
+ name: 'ebay_get_item_aspects_for_category',
2883
+ description: 'Get item aspects for a specific category',
2884
+ inputSchema: {
2885
+ categoryTreeId: z.string().describe('Category tree ID'),
2886
+ categoryId: z.string().describe('Category ID'),
2887
+ },
2888
+ title: 'Get Item Aspects For Category',
2889
+ outputSchema: {
2890
+ type: 'object',
2891
+ properties: {
2892
+ success: { type: 'boolean' },
2893
+ data: { type: 'object' }
2894
+ }
2895
+ },
2896
+ annotations: {
2897
+ title: 'Get Item Aspects For Category',
2898
+ readOnlyHint: true
2899
+ },
2900
+ _meta: {
2901
+ category: 'taxonomy',
2902
+ version: '1.0.0'
2903
+ }
2904
+ },
2905
+ ];
2906
+ export const communicationTools = [
2907
+ {
2908
+ name: 'ebay_get_offers_to_buyers',
2909
+ description: 'Get offers to buyers (Best Offers) for the seller',
2910
+ inputSchema: {
2911
+ filter: z.string().optional().describe('Filter criteria for offers'),
2912
+ limit: z.number().optional().describe('Number of offers to return'),
2913
+ offset: z.number().optional().describe('Number of offers to skip'),
2914
+ },
2915
+ title: 'Get Offers To Buyers',
2916
+ outputSchema: {
2917
+ type: 'object',
2918
+ properties: {
2919
+ success: { type: 'boolean' },
2920
+ data: { type: 'object' }
2921
+ }
2922
+ },
2923
+ annotations: {
2924
+ title: 'Get Offers To Buyers',
2925
+ readOnlyHint: true
2926
+ },
2927
+ _meta: {
2928
+ category: 'communication',
2929
+ version: '1.0.0'
2930
+ }
2931
+ },
2932
+ {
2933
+ name: 'ebay_send_offer_to_interested_buyers',
2934
+ description: 'Send offer to interested buyers',
2935
+ inputSchema: {
2936
+ offerId: z.string().describe('The offer ID'),
2937
+ offerData: offerToBuyersSchema.describe('Offer details to send to buyers'),
2938
+ },
2939
+ title: 'Send Offer To Interested Buyers',
2940
+ outputSchema: {
2941
+ type: 'object',
2942
+ properties: {
2943
+ success: { type: 'boolean' },
2944
+ data: { type: 'object' }
2945
+ }
2946
+ },
2947
+ annotations: {
2948
+ title: 'Send Offer To Interested Buyers',
2949
+ idempotentHint: true
2950
+ },
2951
+ _meta: {
2952
+ category: 'communication',
2953
+ version: '1.0.0'
2954
+ }
2955
+ },
2956
+ {
2957
+ name: 'ebay_search_messages',
2958
+ description: 'Search for buyer-seller messages',
2959
+ inputSchema: {
2960
+ filter: z.string().optional().describe('Filter criteria for messages'),
2961
+ limit: z.number().optional().describe('Number of messages to return'),
2962
+ offset: z.number().optional().describe('Number of messages to skip'),
2963
+ },
2964
+ title: 'Search Messages',
2965
+ outputSchema: {
2966
+ type: 'object',
2967
+ properties: {
2968
+ success: { type: 'boolean' },
2969
+ data: { type: 'object' }
2970
+ }
2971
+ },
2972
+ annotations: {
2973
+ title: 'Search Messages',
2974
+ idempotentHint: true
2975
+ },
2976
+ _meta: {
2977
+ category: 'communication',
2978
+ version: '1.0.0'
2979
+ }
2980
+ },
2981
+ {
2982
+ name: 'ebay_get_message',
2983
+ description: 'Get a specific message by ID',
2984
+ inputSchema: {
2985
+ messageId: z.string().describe('The message ID'),
2986
+ },
2987
+ title: 'Get Message',
2988
+ outputSchema: {
2989
+ type: 'object',
2990
+ properties: {
2991
+ success: { type: 'boolean' },
2992
+ data: { type: 'object' }
2993
+ }
2994
+ },
2995
+ annotations: {
2996
+ title: 'Get Message',
2997
+ readOnlyHint: true
2998
+ },
2999
+ _meta: {
3000
+ category: 'communication',
3001
+ version: '1.0.0'
3002
+ }
3003
+ },
3004
+ {
3005
+ name: 'ebay_send_message',
3006
+ description: 'Send a direct message to a buyer regarding a specific transaction or inquiry. Use this to communicate about orders, answer questions, resolve issues, or provide updates.',
3007
+ inputSchema: {
3008
+ messageData: z
3009
+ .object({
3010
+ conversationId: z
3011
+ .string()
3012
+ .optional()
3013
+ .describe('Optional conversation ID to reply to an existing thread. Use getConversations to retrieve conversation IDs. Required if replying to existing conversation.'),
3014
+ messageText: z
3015
+ .string()
3016
+ .describe('REQUIRED. The text of the message to send (max 2000 characters).'),
3017
+ otherPartyUsername: z
3018
+ .string()
3019
+ .optional()
3020
+ .describe('eBay username of the other party (buyer or seller). Required when starting a new conversation.'),
3021
+ emailCopyToSender: z
3022
+ .boolean()
3023
+ .optional()
3024
+ .describe('If true, a copy of the message will be emailed to the sender.'),
3025
+ reference: z
3026
+ .object({
3027
+ referenceId: z
3028
+ .string()
3029
+ .optional()
3030
+ .describe('The ID of the listing or order to reference (e.g., item ID or order ID)'),
3031
+ referenceType: z
3032
+ .string()
3033
+ .optional()
3034
+ .describe('Type of reference. Valid values: "LISTING" (for item listings) or "ORDER" (for orders)'),
3035
+ })
3036
+ .optional()
3037
+ .describe('Optional reference to associate message with a listing or order.'),
3038
+ messageMedia: z
3039
+ .array(z.object({
3040
+ mediaUrl: z.string().optional().describe('URL of the media to attach'),
3041
+ mediaType: z
3042
+ .string()
3043
+ .optional()
3044
+ .describe('MIME type of the media (e.g., "image/jpeg")'),
3045
+ }))
3046
+ .optional()
3047
+ .describe('Optional array of media attachments (max 5 per message)'),
3048
+ })
3049
+ .describe('Message details including recipient and content. Must include messageText (required), and either conversationId (for replies) OR otherPartyUsername (for new messages).'),
3050
+ },
3051
+ title: 'Send Message',
3052
+ outputSchema: {
3053
+ type: 'object',
3054
+ properties: {
3055
+ success: { type: 'boolean' },
3056
+ data: { type: 'object' }
3057
+ }
3058
+ },
3059
+ annotations: {
3060
+ title: 'Send Message',
3061
+ idempotentHint: true
3062
+ },
3063
+ _meta: {
3064
+ category: 'communication',
3065
+ version: '1.0.0'
3066
+ }
3067
+ },
3068
+ {
3069
+ name: 'ebay_reply_to_message',
3070
+ description: 'Reply to a buyer message in an existing conversation thread',
3071
+ inputSchema: {
3072
+ messageId: z.string().describe('The conversation/message ID to reply to'),
3073
+ messageContent: z.string().describe('The reply message content'),
3074
+ },
3075
+ title: 'Reply To Message',
3076
+ outputSchema: {
3077
+ type: 'object',
3078
+ properties: {
3079
+ success: { type: 'boolean' },
3080
+ data: { type: 'object' }
3081
+ }
3082
+ },
3083
+ annotations: {
3084
+ title: 'Reply To Message',
3085
+ idempotentHint: true
3086
+ },
3087
+ _meta: {
3088
+ category: 'communication',
3089
+ version: '1.0.0'
3090
+ }
3091
+ },
3092
+ {
3093
+ name: 'ebay_get_notification_config',
3094
+ description: 'Get notification configuration',
3095
+ inputSchema: {},
3096
+ title: 'Get Notification Config',
3097
+ outputSchema: {
3098
+ type: 'object',
3099
+ properties: {
3100
+ success: { type: 'boolean' },
3101
+ data: { type: 'object' }
3102
+ }
3103
+ },
3104
+ annotations: {
3105
+ title: 'Get Notification Config',
3106
+ readOnlyHint: true
3107
+ },
3108
+ _meta: {
3109
+ category: 'communication',
3110
+ version: '1.0.0'
3111
+ }
3112
+ },
3113
+ {
3114
+ name: 'ebay_update_notification_config',
3115
+ description: 'Update notification configuration',
3116
+ inputSchema: {
3117
+ config: notificationConfigSchema.describe('Notification configuration settings'),
3118
+ },
3119
+ title: 'Update Notification Config',
3120
+ outputSchema: {
3121
+ type: 'object',
3122
+ properties: {
3123
+ success: { type: 'boolean' },
3124
+ data: { type: 'object' }
3125
+ }
3126
+ },
3127
+ annotations: {
3128
+ title: 'Update Notification Config',
3129
+ idempotentHint: true
3130
+ },
3131
+ _meta: {
3132
+ category: 'communication',
3133
+ version: '1.0.0'
3134
+ }
3135
+ },
3136
+ {
3137
+ name: 'ebay_create_notification_destination',
3138
+ description: 'Create a notification destination',
3139
+ inputSchema: {
3140
+ destination: notificationDestinationSchema.describe('Destination configuration'),
3141
+ },
3142
+ title: 'Create Notification Destination',
3143
+ outputSchema: {
3144
+ type: 'object',
3145
+ properties: {
3146
+ success: { type: 'boolean' },
3147
+ data: { type: 'object' }
3148
+ }
3149
+ },
3150
+ annotations: {
3151
+ title: 'Create Notification Destination',
3152
+ idempotentHint: true
3153
+ },
3154
+ _meta: {
3155
+ category: 'communication',
3156
+ version: '1.0.0'
3157
+ }
3158
+ },
3159
+ {
3160
+ name: 'ebay_get_feedback',
3161
+ description: 'Get feedback for a transaction',
3162
+ inputSchema: {
3163
+ transactionId: z.string().describe('The transaction ID'),
3164
+ },
3165
+ title: 'Get Feedback',
3166
+ outputSchema: {
3167
+ type: 'object',
3168
+ properties: {
3169
+ success: { type: 'boolean' },
3170
+ data: { type: 'object' }
3171
+ }
3172
+ },
3173
+ annotations: {
3174
+ title: 'Get Feedback',
3175
+ readOnlyHint: true
3176
+ },
3177
+ _meta: {
3178
+ category: 'communication',
3179
+ version: '1.0.0'
3180
+ }
3181
+ },
3182
+ {
3183
+ name: 'ebay_leave_feedback_for_buyer',
3184
+ description: 'Leave feedback for a buyer',
3185
+ inputSchema: {
3186
+ feedbackData: feedbackDataSchema.describe('Feedback details including rating and comment'),
3187
+ },
3188
+ title: 'Leave Feedback For Buyer',
3189
+ outputSchema: {
3190
+ type: 'object',
3191
+ properties: {
3192
+ success: { type: 'boolean' },
3193
+ data: { type: 'object' }
3194
+ }
3195
+ },
3196
+ annotations: {
3197
+ title: 'Leave Feedback For Buyer',
3198
+ idempotentHint: true
3199
+ },
3200
+ _meta: {
3201
+ category: 'communication',
3202
+ version: '1.0.0'
3203
+ }
3204
+ },
3205
+ {
3206
+ name: 'ebay_get_feedback_summary',
3207
+ description: 'Get feedback summary for the seller',
3208
+ inputSchema: {},
3209
+ title: 'Get Feedback Summary',
3210
+ outputSchema: {
3211
+ type: 'object',
3212
+ properties: {
3213
+ success: { type: 'boolean' },
3214
+ data: { type: 'object' }
3215
+ }
3216
+ },
3217
+ annotations: {
3218
+ title: 'Get Feedback Summary',
3219
+ readOnlyHint: true
3220
+ },
3221
+ _meta: {
3222
+ category: 'communication',
3223
+ version: '1.0.0'
3224
+ }
3225
+ },
3226
+ ];
3227
+ export const otherApiTools = [
3228
+ {
3229
+ name: 'ebay_get_user',
3230
+ description: 'Get user identity information',
3231
+ inputSchema: {},
3232
+ title: 'Get User',
3233
+ outputSchema: {
3234
+ type: 'object',
3235
+ properties: {
3236
+ success: { type: 'boolean' },
3237
+ data: { type: 'object' }
3238
+ }
3239
+ },
3240
+ annotations: {
3241
+ title: 'Get User',
3242
+ readOnlyHint: true
3243
+ },
3244
+ _meta: {
3245
+ category: 'other',
3246
+ version: '1.0.0'
3247
+ }
3248
+ },
3249
+ {
3250
+ name: 'ebay_get_listing_violations',
3251
+ description: 'Get listing violations for the seller',
3252
+ inputSchema: {
3253
+ complianceType: z.string().optional().describe('Type of compliance violation'),
3254
+ offset: z.number().optional().describe('Number of violations to skip'),
3255
+ limit: z.number().optional().describe('Number of violations to return'),
3256
+ },
3257
+ title: 'Get Listing Violations',
3258
+ outputSchema: {
3259
+ type: 'object',
3260
+ properties: {
3261
+ success: { type: 'boolean' },
3262
+ data: { type: 'object' }
3263
+ }
3264
+ },
3265
+ annotations: {
3266
+ title: 'Get Listing Violations',
3267
+ readOnlyHint: true
3268
+ },
3269
+ _meta: {
3270
+ category: 'other',
3271
+ version: '1.0.0'
3272
+ }
3273
+ },
3274
+ {
3275
+ name: 'ebay_get_listing_violations_summary',
3276
+ description: 'Get summary of listing violations',
3277
+ inputSchema: {
3278
+ complianceType: z.string().optional().describe('Type of compliance violation'),
3279
+ },
3280
+ title: 'Get Listing Violations Summary',
3281
+ outputSchema: {
3282
+ type: 'object',
3283
+ properties: {
3284
+ success: { type: 'boolean' },
3285
+ data: { type: 'object' }
3286
+ }
3287
+ },
3288
+ annotations: {
3289
+ title: 'Get Listing Violations Summary',
3290
+ readOnlyHint: true
3291
+ },
3292
+ _meta: {
3293
+ category: 'other',
3294
+ version: '1.0.0'
3295
+ }
3296
+ },
3297
+ {
3298
+ name: 'ebay_suppress_violation',
3299
+ description: 'Suppress a listing violation',
3300
+ inputSchema: {
3301
+ listingViolationId: z.string().describe('The violation ID to suppress'),
3302
+ },
3303
+ title: 'Suppress Violation',
3304
+ outputSchema: {
3305
+ type: 'object',
3306
+ properties: {
3307
+ success: { type: 'boolean' },
3308
+ data: { type: 'object' }
3309
+ }
3310
+ },
3311
+ annotations: {
3312
+ title: 'Suppress Violation',
3313
+ destructiveHint: true
3314
+ },
3315
+ _meta: {
3316
+ category: 'other',
3317
+ version: '1.0.0'
3318
+ }
3319
+ },
3320
+ {
3321
+ name: 'ebay_create_vero_report',
3322
+ description: 'Create a VERO report to report intellectual property infringement. This endpoint is part of the Verified Rights Owner (VeRO) Program and allows rights owners to report listings that infringe on their intellectual property.',
3323
+ inputSchema: {
3324
+ reportData: veroReportDataSchema.describe('VERO report data containing item details and intellectual property violation information'),
3325
+ },
3326
+ title: 'Create Vero Report',
3327
+ outputSchema: {
3328
+ type: 'object',
3329
+ properties: {
3330
+ success: { type: 'boolean' },
3331
+ data: { type: 'object' }
3332
+ }
3333
+ },
3334
+ annotations: {
3335
+ title: 'Create Vero Report',
3336
+ idempotentHint: true
3337
+ },
3338
+ _meta: {
3339
+ category: 'other',
3340
+ version: '1.0.0'
3341
+ }
3342
+ },
3343
+ {
3344
+ name: 'ebay_get_vero_report',
3345
+ description: 'Get a specific VERO report by ID',
3346
+ inputSchema: {
3347
+ veroReportId: z.string().min(1).describe('The unique identifier of the VERO report'),
3348
+ },
3349
+ title: 'Get Vero Report',
3350
+ outputSchema: {
3351
+ type: 'object',
3352
+ properties: {
3353
+ success: { type: 'boolean' },
3354
+ data: { type: 'object' }
3355
+ }
3356
+ },
3357
+ annotations: {
3358
+ title: 'Get Vero Report',
3359
+ readOnlyHint: true
3360
+ },
3361
+ _meta: {
3362
+ category: 'other',
3363
+ version: '1.0.0'
3364
+ }
3365
+ },
3366
+ {
3367
+ name: 'ebay_get_vero_report_items',
3368
+ description: 'Get VERO report items (listings reported for intellectual property infringement). Supports filtering, pagination via limit and offset parameters.',
3369
+ inputSchema: {
3370
+ filter: z.string().optional().describe('Filter criteria for the query (e.g., date range)'),
3371
+ limit: z.number().optional().describe('Maximum number of items to return'),
3372
+ offset: z.number().optional().describe('Number of items to skip for pagination'),
3373
+ },
3374
+ title: 'Get Vero Report Items',
3375
+ outputSchema: {
3376
+ type: 'object',
3377
+ properties: {
3378
+ success: { type: 'boolean' },
3379
+ data: { type: 'object' }
3380
+ }
3381
+ },
3382
+ annotations: {
3383
+ title: 'Get Vero Report Items',
3384
+ readOnlyHint: true
3385
+ },
3386
+ _meta: {
3387
+ category: 'other',
3388
+ version: '1.0.0'
3389
+ }
3390
+ },
3391
+ {
3392
+ name: 'ebay_get_vero_reason_code',
3393
+ description: 'Get a specific VERO reason code by ID. Reason codes categorize the types of intellectual property violations.',
3394
+ inputSchema: {
3395
+ veroReasonCodeId: z.string().min(1).describe('The unique identifier of the VERO reason code'),
3396
+ },
3397
+ title: 'Get Vero Reason Code',
3398
+ outputSchema: {
3399
+ type: 'object',
3400
+ properties: {
3401
+ success: { type: 'boolean' },
3402
+ data: { type: 'object' }
3403
+ }
3404
+ },
3405
+ annotations: {
3406
+ title: 'Get Vero Reason Code',
3407
+ readOnlyHint: true
3408
+ },
3409
+ _meta: {
3410
+ category: 'other',
3411
+ version: '1.0.0'
3412
+ }
3413
+ },
3414
+ {
3415
+ name: 'ebay_get_vero_reason_codes',
3416
+ description: 'Get all available VERO reason codes. These codes are used when creating VERO reports to specify the type of intellectual property violation.',
3417
+ inputSchema: {},
3418
+ title: 'Get Vero Reason Codes',
3419
+ outputSchema: {
3420
+ type: 'object',
3421
+ properties: {
3422
+ success: { type: 'boolean' },
3423
+ data: { type: 'object' }
3424
+ }
3425
+ },
3426
+ annotations: {
3427
+ title: 'Get Vero Reason Codes',
3428
+ readOnlyHint: true
3429
+ },
3430
+ _meta: {
3431
+ category: 'other',
3432
+ version: '1.0.0'
3433
+ }
3434
+ },
3435
+ {
3436
+ name: 'ebay_translate',
3437
+ description: 'Translate listing text',
3438
+ inputSchema: {
3439
+ from: z.string().describe('Source language code'),
3440
+ to: z.string().describe('Target language code'),
3441
+ translationContext: z
3442
+ .string()
3443
+ .describe('Translation context (e.g., ITEM_TITLE, ITEM_DESCRIPTION)'),
3444
+ text: z.array(z.string()).describe('Array of text to translate'),
3445
+ },
3446
+ title: 'Translate',
3447
+ outputSchema: {
3448
+ type: 'object',
3449
+ properties: {
3450
+ success: { type: 'boolean' },
3451
+ data: { type: 'object' }
3452
+ }
3453
+ },
3454
+ annotations: {
3455
+ title: 'Translate',
3456
+ idempotentHint: true
3457
+ },
3458
+ _meta: {
3459
+ category: 'other',
3460
+ version: '1.0.0'
3461
+ }
3462
+ },
3463
+ {
3464
+ name: 'ebay_create_shipping_quote',
3465
+ description: 'Create a shipping quote for international shipping',
3466
+ inputSchema: {
3467
+ shippingQuoteRequest: shippingQuoteRequestSchema.describe('Shipping quote request details'),
3468
+ },
3469
+ title: 'Create Shipping Quote',
3470
+ outputSchema: {
3471
+ type: 'object',
3472
+ properties: {
3473
+ success: { type: 'boolean' },
3474
+ data: { type: 'object' }
3475
+ }
3476
+ },
3477
+ annotations: {
3478
+ title: 'Create Shipping Quote',
3479
+ idempotentHint: true
3480
+ },
3481
+ _meta: {
3482
+ category: 'other',
3483
+ version: '1.0.0'
3484
+ }
3485
+ },
3486
+ {
3487
+ name: 'ebay_get_shipping_quote',
3488
+ description: 'Get a shipping quote by ID',
3489
+ inputSchema: {
3490
+ shippingQuoteId: z.string().describe('The shipping quote ID'),
3491
+ },
3492
+ title: 'Get Shipping Quote',
3493
+ outputSchema: {
3494
+ type: 'object',
3495
+ properties: {
3496
+ success: { type: 'boolean' },
3497
+ data: { type: 'object' }
3498
+ }
3499
+ },
3500
+ annotations: {
3501
+ title: 'Get Shipping Quote',
3502
+ readOnlyHint: true
3503
+ },
3504
+ _meta: {
3505
+ category: 'other',
3506
+ version: '1.0.0'
3507
+ }
3508
+ },
3509
+ ];
3510
+ export const claudeTools = [
3511
+ {
3512
+ name: 'SearchClaudeCodeDocs',
3513
+ description: 'Search across the Claude Code Docs knowledge base to find relevant information, code examples, API references, and guides. Use this tool when you need to answer questions about Claude Code Docs, find specific documentation, understand how features work, or locate implementation details. The search returns contextual content with titles and direct links to the documentation pages.',
3514
+ inputSchema: {
3515
+ query: z.string().describe('A query to search the content with.'),
3516
+ },
3517
+ title: 'Searchclaudecodedocs',
3518
+ outputSchema: {
3519
+ type: 'object',
3520
+ properties: {
3521
+ success: { type: 'boolean' },
3522
+ data: { type: 'object' }
3523
+ }
3524
+ },
3525
+ annotations: {
3526
+ title: 'Searchclaudecodedocs',
3527
+ readOnlyHint: true
3528
+ },
3529
+ _meta: {
3530
+ category: 'claude',
3531
+ version: '1.0.0'
3532
+ }
3533
+ },
3534
+ ];