ebay-mcp-remote-edition 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +755 -0
- package/build/api/account-management/account.js +301 -0
- package/build/api/analytics-and-report/analytics.js +102 -0
- package/build/api/client-trading.js +96 -0
- package/build/api/client.js +173 -0
- package/build/api/communication/feedback.js +119 -0
- package/build/api/communication/message.js +131 -0
- package/build/api/communication/negotiation.js +97 -0
- package/build/api/communication/notification.js +373 -0
- package/build/api/developer/developer.js +81 -0
- package/build/api/index.js +109 -0
- package/build/api/listing-management/inventory.js +640 -0
- package/build/api/listing-metadata/metadata.js +485 -0
- package/build/api/listing-metadata/taxonomy.js +58 -0
- package/build/api/marketing-and-promotions/marketing.js +768 -0
- package/build/api/marketing-and-promotions/recommendation.js +32 -0
- package/build/api/order-management/dispute.js +69 -0
- package/build/api/order-management/fulfillment.js +89 -0
- package/build/api/other/compliance.js +47 -0
- package/build/api/other/edelivery.js +219 -0
- package/build/api/other/identity.js +24 -0
- package/build/api/other/translation.js +22 -0
- package/build/api/other/vero.js +48 -0
- package/build/api/trading/trading.js +78 -0
- package/build/auth/kv-store.js +40 -0
- package/build/auth/multi-user-store.js +120 -0
- package/build/auth/oauth-metadata.js +59 -0
- package/build/auth/oauth-middleware.js +99 -0
- package/build/auth/oauth-types.js +4 -0
- package/build/auth/oauth.js +235 -0
- package/build/auth/scope-utils.js +304 -0
- package/build/auth/token-store.js +46 -0
- package/build/auth/token-verifier.js +172 -0
- package/build/config/environment.js +297 -0
- package/build/index.d.ts +1 -0
- package/build/index.js +129 -0
- package/build/schemas/account-management/account.js +375 -0
- package/build/schemas/analytics/analytics.js +191 -0
- package/build/schemas/communication/messages.js +345 -0
- package/build/schemas/fulfillment/orders.js +338 -0
- package/build/schemas/index.js +68 -0
- package/build/schemas/inventory-management/inventory.js +471 -0
- package/build/schemas/marketing/marketing.js +1103 -0
- package/build/schemas/metadata/metadata.js +618 -0
- package/build/schemas/other/other-apis.js +390 -0
- package/build/schemas/taxonomy/taxonomy.js +575 -0
- package/build/scripts/auto-setup.js +364 -0
- package/build/scripts/dev-sync.js +512 -0
- package/build/scripts/diagnostics.js +301 -0
- package/build/scripts/download-specs.js +116 -0
- package/build/scripts/interactive-setup.js +757 -0
- package/build/scripts/setup.js +1515 -0
- package/build/scripts/update-api-status-doc.js +44 -0
- package/build/server-http.d.ts +1 -0
- package/build/server-http.js +581 -0
- package/build/tools/definitions/account-with-schemas.js +170 -0
- package/build/tools/definitions/account.js +428 -0
- package/build/tools/definitions/analytics.js +66 -0
- package/build/tools/definitions/communication.js +394 -0
- package/build/tools/definitions/developer.js +195 -0
- package/build/tools/definitions/fulfillment.js +326 -0
- package/build/tools/definitions/index.js +41 -0
- package/build/tools/definitions/inventory.js +464 -0
- package/build/tools/definitions/marketing.js +1486 -0
- package/build/tools/definitions/metadata.js +188 -0
- package/build/tools/definitions/other.js +309 -0
- package/build/tools/definitions/taxonomy.js +64 -0
- package/build/tools/definitions/token-management.js +148 -0
- package/build/tools/definitions/trading.js +71 -0
- package/build/tools/index.js +1200 -0
- package/build/tools/schemas.js +667 -0
- package/build/tools/tool-definitions.js +3534 -0
- package/build/types/application-settings/developerAnalyticsV1BetaOas3.js +5 -0
- package/build/types/application-settings/developerClientRegistrationV1Oas3.js +5 -0
- package/build/types/application-settings/developerKeyManagementV1Oas3.js +5 -0
- package/build/types/ebay-enums.js +1330 -0
- package/build/types/ebay.js +123 -0
- package/build/types/index.js +10 -0
- package/build/types/sell-apps/account-management/sellAccountV1Oas3.js +5 -0
- package/build/types/sell-apps/analytics-and-report/sellAnalyticsV1Oas3.js +5 -0
- package/build/types/sell-apps/communication/commerceFeedbackV1BetaOas3.js +5 -0
- package/build/types/sell-apps/communication/commerceMessageV1Oas3.js +5 -0
- package/build/types/sell-apps/communication/commerceNotificationV1Oas3.js +5 -0
- package/build/types/sell-apps/communication/sellNegotiationV1Oas3.js +5 -0
- package/build/types/sell-apps/listing-management/sellInventoryV1Oas3.js +5 -0
- package/build/types/sell-apps/listing-metadata/sellMetadataV1Oas3.js +5 -0
- package/build/types/sell-apps/markeitng-and-promotions/sellMarketingV1Oas3.js +5 -0
- package/build/types/sell-apps/markeitng-and-promotions/sellRecommendationV1Oas3.js +5 -0
- package/build/types/sell-apps/order-management/sellFulfillmentV1Oas3.js +5 -0
- package/build/types/sell-apps/other-apis/commerceIdentityV1Oas3.js +5 -0
- package/build/types/sell-apps/other-apis/commerceTranslationV1BetaOas3.js +5 -0
- package/build/types/sell-apps/other-apis/commerceVeroV1Oas3.js +5 -0
- package/build/types/sell-apps/other-apis/sellComplianceV1Oas3.js +5 -0
- package/build/types/sell-apps/other-apis/sellEdeliveryInternationalShippingOas3.js +5 -0
- package/build/types/sell-apps/other-apis/sellMarketingV1Oas3.js +5 -0
- package/build/types/sell-apps/other-apis/sellRecommendationV1Oas3.js +5 -0
- package/build/utils/account-management/account.js +831 -0
- package/build/utils/api-status-feed.js +83 -0
- package/build/utils/communication/feedback.js +216 -0
- package/build/utils/communication/message.js +242 -0
- package/build/utils/communication/negotiation.js +150 -0
- package/build/utils/communication/notification.js +369 -0
- package/build/utils/date-converter.js +160 -0
- package/build/utils/llm-client-detector.js +758 -0
- package/build/utils/logger.js +198 -0
- package/build/utils/oauth-helper.js +315 -0
- package/build/utils/order-management/dispute.js +369 -0
- package/build/utils/order-management/fulfillment.js +205 -0
- package/build/utils/other/compliance.js +76 -0
- package/build/utils/other/edelivery.js +241 -0
- package/build/utils/other/identity.js +13 -0
- package/build/utils/other/translation.js +41 -0
- package/build/utils/other/vero.js +90 -0
- package/build/utils/scope-helper.js +207 -0
- package/build/utils/security-checker.js +248 -0
- package/build/utils/setup-validator.js +305 -0
- package/build/utils/token-utils.js +40 -0
- package/build/utils/version.js +56 -0
- package/docs/auth/production_scopes.json +111 -0
- package/docs/auth/sandbox_scopes.json +142 -0
- package/package.json +122 -0
- package/public/icons/1024x1024.png +0 -0
- package/public/icons/128x128.png +0 -0
- package/public/icons/16x16.png +0 -0
- package/public/icons/256x256.png +0 -0
- package/public/icons/32x32.png +0 -0
- package/public/icons/48x48.png +0 -0
- package/public/icons/512x512.png +0 -0
|
@@ -0,0 +1,394 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { feedbackDataSchema, notificationConfigSchema, notificationDestinationSchema, offerToBuyersSchema, } from '../schemas.js';
|
|
3
|
+
export const communicationTools = [
|
|
4
|
+
// Negotiation API
|
|
5
|
+
{
|
|
6
|
+
name: 'ebay_get_offers_to_buyers',
|
|
7
|
+
description: 'Get offers to buyers (Best Offers) for the seller',
|
|
8
|
+
inputSchema: {
|
|
9
|
+
filter: z.string().optional().describe('Filter criteria for offers'),
|
|
10
|
+
limit: z.number().optional().describe('Number of offers to return'),
|
|
11
|
+
offset: z.number().optional().describe('Number of offers to skip'),
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
name: 'ebay_send_offer_to_interested_buyers',
|
|
16
|
+
description: 'Send offer to interested buyers',
|
|
17
|
+
inputSchema: {
|
|
18
|
+
offerId: z.string().describe('The offer ID'),
|
|
19
|
+
offerData: offerToBuyersSchema.describe('Offer details to send to buyers'),
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
// Message API
|
|
23
|
+
{
|
|
24
|
+
name: 'ebay_search_messages',
|
|
25
|
+
description: 'Search for buyer-seller messages',
|
|
26
|
+
inputSchema: {
|
|
27
|
+
filter: z.string().optional().describe('Filter criteria for messages'),
|
|
28
|
+
limit: z.number().optional().describe('Number of messages to return'),
|
|
29
|
+
offset: z.number().optional().describe('Number of messages to skip'),
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: 'ebay_get_message',
|
|
34
|
+
description: 'Get a specific message by ID',
|
|
35
|
+
inputSchema: {
|
|
36
|
+
messageId: z.string().describe('The message ID'),
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: 'ebay_send_message',
|
|
41
|
+
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.',
|
|
42
|
+
inputSchema: {
|
|
43
|
+
messageData: z
|
|
44
|
+
.object({
|
|
45
|
+
conversationId: z
|
|
46
|
+
.string()
|
|
47
|
+
.optional()
|
|
48
|
+
.describe('Optional conversation ID to reply to an existing thread. Use getConversations to retrieve conversation IDs. Required if replying to existing conversation.'),
|
|
49
|
+
messageText: z
|
|
50
|
+
.string()
|
|
51
|
+
.describe('REQUIRED. The text of the message to send (max 2000 characters).'),
|
|
52
|
+
otherPartyUsername: z
|
|
53
|
+
.string()
|
|
54
|
+
.optional()
|
|
55
|
+
.describe('eBay username of the other party (buyer or seller). Required when starting a new conversation.'),
|
|
56
|
+
emailCopyToSender: z
|
|
57
|
+
.boolean()
|
|
58
|
+
.optional()
|
|
59
|
+
.describe('If true, a copy of the message will be emailed to the sender.'),
|
|
60
|
+
reference: z
|
|
61
|
+
.object({
|
|
62
|
+
referenceId: z
|
|
63
|
+
.string()
|
|
64
|
+
.optional()
|
|
65
|
+
.describe('The ID of the listing or order to reference (e.g., item ID or order ID)'),
|
|
66
|
+
referenceType: z
|
|
67
|
+
.string()
|
|
68
|
+
.optional()
|
|
69
|
+
.describe('Type of reference. Valid values: "LISTING" (for item listings) or "ORDER" (for orders)'),
|
|
70
|
+
})
|
|
71
|
+
.optional()
|
|
72
|
+
.describe('Optional reference to associate message with a listing or order.'),
|
|
73
|
+
messageMedia: z
|
|
74
|
+
.array(z.object({
|
|
75
|
+
mediaUrl: z.string().optional().describe('URL of the media to attach'),
|
|
76
|
+
mediaType: z
|
|
77
|
+
.string()
|
|
78
|
+
.optional()
|
|
79
|
+
.describe('MIME type of the media (e.g., "image/jpeg")'),
|
|
80
|
+
}))
|
|
81
|
+
.optional()
|
|
82
|
+
.describe('Optional array of media attachments (max 5 per message)'),
|
|
83
|
+
})
|
|
84
|
+
.describe('Message details including recipient and content. Must include messageText (required), and either conversationId (for replies) OR otherPartyUsername (for new messages).'),
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
name: 'ebay_reply_to_message',
|
|
89
|
+
description: 'Reply to a buyer message in an existing conversation thread',
|
|
90
|
+
inputSchema: {
|
|
91
|
+
messageId: z.string().describe('The conversation/message ID to reply to'),
|
|
92
|
+
messageContent: z.string().describe('The reply message content'),
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
// Notification API
|
|
96
|
+
{
|
|
97
|
+
name: 'ebay_get_notification_config',
|
|
98
|
+
description: 'Get notification configuration',
|
|
99
|
+
inputSchema: {},
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
name: 'ebay_update_notification_config',
|
|
103
|
+
description: 'Update notification configuration',
|
|
104
|
+
inputSchema: {
|
|
105
|
+
config: notificationConfigSchema.describe('Notification configuration settings'),
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
name: 'ebay_get_notification_destinations',
|
|
110
|
+
description: 'Get all notification destinations (paginated)',
|
|
111
|
+
inputSchema: {
|
|
112
|
+
limit: z
|
|
113
|
+
.number()
|
|
114
|
+
.optional()
|
|
115
|
+
.describe('Maximum number of destinations to return (10-100, default: 20)'),
|
|
116
|
+
continuationToken: z.string().optional().describe('Token to retrieve next page of results'),
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
name: 'ebay_create_notification_destination',
|
|
121
|
+
description: 'Create a notification destination',
|
|
122
|
+
inputSchema: {
|
|
123
|
+
destination: notificationDestinationSchema.describe('Destination configuration'),
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
// Notification API - Destination CRUD
|
|
127
|
+
{
|
|
128
|
+
name: 'ebay_get_notification_destination',
|
|
129
|
+
description: 'Get a specific notification destination by ID',
|
|
130
|
+
inputSchema: {
|
|
131
|
+
destination_id: z.string().describe('The unique identifier for the destination'),
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
name: 'ebay_update_notification_destination',
|
|
136
|
+
description: 'Update a notification destination',
|
|
137
|
+
inputSchema: {
|
|
138
|
+
destination_id: z.string().describe('The unique identifier for the destination'),
|
|
139
|
+
delivery_config: z
|
|
140
|
+
.object({
|
|
141
|
+
endpoint: z.string().optional().describe('HTTPS endpoint URL'),
|
|
142
|
+
verification_token: z
|
|
143
|
+
.string()
|
|
144
|
+
.optional()
|
|
145
|
+
.describe('Verification token (32-80 characters)'),
|
|
146
|
+
})
|
|
147
|
+
.optional()
|
|
148
|
+
.describe('Delivery configuration'),
|
|
149
|
+
name: z.string().optional().describe('Destination name'),
|
|
150
|
+
status: z.string().optional().describe('Status: ENABLED or DISABLED'),
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
name: 'ebay_delete_notification_destination',
|
|
155
|
+
description: 'Delete a notification destination',
|
|
156
|
+
inputSchema: {
|
|
157
|
+
destination_id: z.string().describe('The unique identifier for the destination'),
|
|
158
|
+
},
|
|
159
|
+
},
|
|
160
|
+
// Notification API - Subscription CRUD
|
|
161
|
+
{
|
|
162
|
+
name: 'ebay_get_notification_subscriptions',
|
|
163
|
+
description: 'Get all notification subscriptions (paginated)',
|
|
164
|
+
inputSchema: {
|
|
165
|
+
limit: z.string().optional().describe('Maximum number of subscriptions to return'),
|
|
166
|
+
continuation_token: z.string().optional().describe('Token for pagination'),
|
|
167
|
+
},
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
name: 'ebay_create_notification_subscription',
|
|
171
|
+
description: 'Create a notification subscription',
|
|
172
|
+
inputSchema: {
|
|
173
|
+
destination_id: z.string().optional().describe('The destination endpoint ID'),
|
|
174
|
+
payload: z
|
|
175
|
+
.object({
|
|
176
|
+
delivery_protocol: z.string().optional().describe('Delivery protocol (HTTPS)'),
|
|
177
|
+
format: z.string().optional().describe('Payload format (JSON)'),
|
|
178
|
+
schema_version: z.string().optional().describe('Schema version'),
|
|
179
|
+
})
|
|
180
|
+
.optional()
|
|
181
|
+
.describe('Payload configuration'),
|
|
182
|
+
status: z.string().optional().describe('Status: ENABLED or DISABLED'),
|
|
183
|
+
topic_id: z.string().optional().describe('The notification topic ID'),
|
|
184
|
+
},
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
name: 'ebay_get_notification_subscription',
|
|
188
|
+
description: 'Get a specific notification subscription by ID',
|
|
189
|
+
inputSchema: {
|
|
190
|
+
subscription_id: z.string().describe('The unique identifier for the subscription'),
|
|
191
|
+
},
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
name: 'ebay_update_notification_subscription',
|
|
195
|
+
description: 'Update a notification subscription',
|
|
196
|
+
inputSchema: {
|
|
197
|
+
subscription_id: z.string().describe('The unique identifier for the subscription'),
|
|
198
|
+
destination_id: z.string().optional().describe('The destination endpoint ID'),
|
|
199
|
+
payload: z
|
|
200
|
+
.object({
|
|
201
|
+
delivery_protocol: z.string().optional().describe('Delivery protocol'),
|
|
202
|
+
format: z.string().optional().describe('Payload format'),
|
|
203
|
+
schema_version: z.string().optional().describe('Schema version'),
|
|
204
|
+
})
|
|
205
|
+
.optional()
|
|
206
|
+
.describe('Payload configuration'),
|
|
207
|
+
status: z.string().optional().describe('Status: ENABLED or DISABLED'),
|
|
208
|
+
},
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
name: 'ebay_delete_notification_subscription',
|
|
212
|
+
description: 'Delete a notification subscription',
|
|
213
|
+
inputSchema: {
|
|
214
|
+
subscription_id: z.string().describe('The unique identifier for the subscription'),
|
|
215
|
+
},
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
name: 'ebay_disable_notification_subscription',
|
|
219
|
+
description: 'Disable a notification subscription',
|
|
220
|
+
inputSchema: {
|
|
221
|
+
subscription_id: z.string().describe('The unique identifier for the subscription'),
|
|
222
|
+
},
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
name: 'ebay_enable_notification_subscription',
|
|
226
|
+
description: 'Enable a notification subscription',
|
|
227
|
+
inputSchema: {
|
|
228
|
+
subscription_id: z.string().describe('The unique identifier for the subscription'),
|
|
229
|
+
},
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
name: 'ebay_test_notification_subscription',
|
|
233
|
+
description: 'Test a notification subscription by sending a test message',
|
|
234
|
+
inputSchema: {
|
|
235
|
+
subscription_id: z.string().describe('The unique identifier for the subscription'),
|
|
236
|
+
},
|
|
237
|
+
},
|
|
238
|
+
// Notification API - Subscription Filters
|
|
239
|
+
{
|
|
240
|
+
name: 'ebay_create_notification_subscription_filter',
|
|
241
|
+
description: 'Create a filter for a notification subscription',
|
|
242
|
+
inputSchema: {
|
|
243
|
+
subscription_id: z.string().describe('The unique identifier for the subscription'),
|
|
244
|
+
filter_schema: z
|
|
245
|
+
.record(z.string(), z.unknown())
|
|
246
|
+
.optional()
|
|
247
|
+
.describe('JSON Schema document to filter notifications'),
|
|
248
|
+
},
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
name: 'ebay_get_notification_subscription_filter',
|
|
252
|
+
description: 'Get a specific subscription filter',
|
|
253
|
+
inputSchema: {
|
|
254
|
+
subscription_id: z.string().describe('The unique identifier for the subscription'),
|
|
255
|
+
filter_id: z.string().describe('The unique identifier for the filter'),
|
|
256
|
+
},
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
name: 'ebay_delete_notification_subscription_filter',
|
|
260
|
+
description: 'Delete a subscription filter',
|
|
261
|
+
inputSchema: {
|
|
262
|
+
subscription_id: z.string().describe('The unique identifier for the subscription'),
|
|
263
|
+
filter_id: z.string().describe('The unique identifier for the filter'),
|
|
264
|
+
},
|
|
265
|
+
},
|
|
266
|
+
// Notification API - Topics
|
|
267
|
+
{
|
|
268
|
+
name: 'ebay_get_notification_topic',
|
|
269
|
+
description: 'Get a specific notification topic by ID',
|
|
270
|
+
inputSchema: {
|
|
271
|
+
topic_id: z.string().describe('The unique identifier for the topic'),
|
|
272
|
+
},
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
name: 'ebay_get_notification_topics',
|
|
276
|
+
description: 'Get all available notification topics (paginated)',
|
|
277
|
+
inputSchema: {
|
|
278
|
+
limit: z.string().optional().describe('Maximum number of topics to return'),
|
|
279
|
+
continuation_token: z.string().optional().describe('Token for pagination'),
|
|
280
|
+
},
|
|
281
|
+
},
|
|
282
|
+
// Notification API - Public Key
|
|
283
|
+
{
|
|
284
|
+
name: 'ebay_get_notification_public_key',
|
|
285
|
+
description: 'Get a public key for verifying notification signatures',
|
|
286
|
+
inputSchema: {
|
|
287
|
+
public_key_id: z.string().describe('The unique identifier for the public key'),
|
|
288
|
+
},
|
|
289
|
+
},
|
|
290
|
+
// Message API - Conversations
|
|
291
|
+
{
|
|
292
|
+
name: 'ebay_get_conversations',
|
|
293
|
+
description: 'Get all buyer-seller conversations (paginated)',
|
|
294
|
+
inputSchema: {
|
|
295
|
+
filter: z.string().optional().describe('Filter criteria for conversations'),
|
|
296
|
+
limit: z.number().optional().describe('Number of conversations to return'),
|
|
297
|
+
offset: z.number().optional().describe('Number of conversations to skip'),
|
|
298
|
+
},
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
name: 'ebay_get_conversation',
|
|
302
|
+
description: 'Get a specific conversation by ID',
|
|
303
|
+
inputSchema: {
|
|
304
|
+
conversation_id: z.string().describe('The unique identifier for the conversation'),
|
|
305
|
+
},
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
name: 'ebay_bulk_update_conversation',
|
|
309
|
+
description: 'Bulk update multiple conversations (read status, flagged, etc.)',
|
|
310
|
+
inputSchema: {
|
|
311
|
+
conversations: z
|
|
312
|
+
.array(z.object({
|
|
313
|
+
conversation_id: z.string().describe('The conversation ID'),
|
|
314
|
+
read: z.boolean().optional().describe('Mark as read/unread'),
|
|
315
|
+
flagged: z.boolean().optional().describe('Mark as flagged/unflagged'),
|
|
316
|
+
}))
|
|
317
|
+
.describe('Array of conversations to update'),
|
|
318
|
+
},
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
name: 'ebay_update_conversation',
|
|
322
|
+
description: 'Update a single conversation (read status, flagged, etc.)',
|
|
323
|
+
inputSchema: {
|
|
324
|
+
conversation_id: z.string().describe('The conversation ID'),
|
|
325
|
+
read: z.boolean().optional().describe('Mark as read/unread'),
|
|
326
|
+
flagged: z.boolean().optional().describe('Mark as flagged/unflagged'),
|
|
327
|
+
},
|
|
328
|
+
},
|
|
329
|
+
// Feedback API
|
|
330
|
+
{
|
|
331
|
+
name: 'ebay_get_feedback',
|
|
332
|
+
description: 'Get feedback for a user by type',
|
|
333
|
+
inputSchema: {
|
|
334
|
+
user_id: z.string().describe('The eBay username of the user'),
|
|
335
|
+
feedback_type: z.string().describe('Type: FEEDBACK_RECEIVED or FEEDBACK_SENT'),
|
|
336
|
+
feedback_id: z.string().optional().describe('Filter by specific feedback ID'),
|
|
337
|
+
filter: z.string().optional().describe('Filter criteria'),
|
|
338
|
+
limit: z.string().optional().describe('Maximum number of feedback items to return'),
|
|
339
|
+
listing_id: z.string().optional().describe('Filter by listing ID'),
|
|
340
|
+
offset: z.string().optional().describe('Number of items to skip'),
|
|
341
|
+
order_line_item_id: z.string().optional().describe('Filter by order line item ID'),
|
|
342
|
+
sort: z.string().optional().describe('Sort order'),
|
|
343
|
+
transaction_id: z.string().optional().describe('Filter by transaction ID'),
|
|
344
|
+
},
|
|
345
|
+
},
|
|
346
|
+
{
|
|
347
|
+
name: 'ebay_leave_feedback_for_buyer',
|
|
348
|
+
description: 'Leave feedback for a buyer',
|
|
349
|
+
inputSchema: {
|
|
350
|
+
feedbackData: feedbackDataSchema.describe('Feedback details including rating and comment'),
|
|
351
|
+
},
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
name: 'ebay_get_feedback_summary',
|
|
355
|
+
description: 'Get feedback summary for the seller',
|
|
356
|
+
inputSchema: {},
|
|
357
|
+
outputSchema: {
|
|
358
|
+
type: 'object',
|
|
359
|
+
properties: {},
|
|
360
|
+
description: 'Success response',
|
|
361
|
+
},
|
|
362
|
+
},
|
|
363
|
+
{
|
|
364
|
+
name: 'ebay_get_awaiting_feedback',
|
|
365
|
+
description: 'Get transactions awaiting feedback from the seller',
|
|
366
|
+
inputSchema: {
|
|
367
|
+
filter: z.string().optional().describe('Filter criteria'),
|
|
368
|
+
limit: z.string().optional().describe('Maximum number of items to return (25-200)'),
|
|
369
|
+
offset: z.string().optional().describe('Number of items to skip'),
|
|
370
|
+
sort: z.string().optional().describe('Sort order'),
|
|
371
|
+
},
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
name: 'ebay_respond_to_feedback',
|
|
375
|
+
description: 'Respond to feedback received from a buyer',
|
|
376
|
+
inputSchema: {
|
|
377
|
+
feedback_id: z.string().optional().describe('The feedback ID being responded to'),
|
|
378
|
+
recipient_user_id: z.string().optional().describe('The user ID of the feedback provider'),
|
|
379
|
+
response_text: z
|
|
380
|
+
.string()
|
|
381
|
+
.optional()
|
|
382
|
+
.describe('The response text content (max 500 characters)'),
|
|
383
|
+
response_type: z.string().optional().describe('The response type: REPLY or FOLLOW_UP'),
|
|
384
|
+
},
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
name: 'ebay_get_feedback_rating_summary',
|
|
388
|
+
description: 'Get feedback rating summary for a user',
|
|
389
|
+
inputSchema: {
|
|
390
|
+
user_id: z.string().describe('The eBay username of the user'),
|
|
391
|
+
filter: z.string().describe('Filter with required ratingType parameter'),
|
|
392
|
+
},
|
|
393
|
+
},
|
|
394
|
+
];
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const developerTools = [
|
|
3
|
+
{
|
|
4
|
+
name: 'ebay_get_api_status',
|
|
5
|
+
description: 'Get the latest eBay API status and incidents from the official RSS feed. Returns recent issues, fixes, and outages for eBay APIs (e.g. Trading API, Inventory API, Sandbox). Use when the user asks about API status, outages, or fixes.',
|
|
6
|
+
inputSchema: {
|
|
7
|
+
limit: z
|
|
8
|
+
.number()
|
|
9
|
+
.int()
|
|
10
|
+
.min(1)
|
|
11
|
+
.max(50)
|
|
12
|
+
.optional()
|
|
13
|
+
.describe('Maximum number of items to return (default 20)'),
|
|
14
|
+
status: z
|
|
15
|
+
.enum(['Resolved', 'Unresolved'])
|
|
16
|
+
.optional()
|
|
17
|
+
.describe('Filter by status: Resolved or Unresolved'),
|
|
18
|
+
api: z
|
|
19
|
+
.string()
|
|
20
|
+
.optional()
|
|
21
|
+
.describe('Filter by API name (e.g. "Trading API", "Inventory API", "Sandbox")'),
|
|
22
|
+
},
|
|
23
|
+
outputSchema: {
|
|
24
|
+
type: 'object',
|
|
25
|
+
properties: {
|
|
26
|
+
items: {
|
|
27
|
+
type: 'array',
|
|
28
|
+
items: {
|
|
29
|
+
type: 'object',
|
|
30
|
+
properties: {
|
|
31
|
+
title: { type: 'string' },
|
|
32
|
+
summary: { type: 'string' },
|
|
33
|
+
link: { type: 'string' },
|
|
34
|
+
api: { type: 'string' },
|
|
35
|
+
site: { type: 'string' },
|
|
36
|
+
status: { type: 'string' },
|
|
37
|
+
lastUpdated: { type: 'string' },
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
error: { type: 'string' },
|
|
42
|
+
},
|
|
43
|
+
description: 'Latest API status items from eBay developer feed',
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'ebay_get_rate_limits',
|
|
48
|
+
description: 'Get application rate limits for eBay APIs. Returns call quota, remaining calls, and time until reset for each API resource.',
|
|
49
|
+
inputSchema: {
|
|
50
|
+
apiContext: z
|
|
51
|
+
.string()
|
|
52
|
+
.optional()
|
|
53
|
+
.describe('Filter by API context: buy, sell, commerce, developer, or tradingapi'),
|
|
54
|
+
apiName: z
|
|
55
|
+
.string()
|
|
56
|
+
.optional()
|
|
57
|
+
.describe('Filter by specific API name: browse, inventory, taxonomy, tradingapi, etc.'),
|
|
58
|
+
},
|
|
59
|
+
outputSchema: {
|
|
60
|
+
type: 'object',
|
|
61
|
+
properties: {
|
|
62
|
+
rateLimits: {
|
|
63
|
+
type: 'array',
|
|
64
|
+
items: {
|
|
65
|
+
type: 'object',
|
|
66
|
+
properties: {
|
|
67
|
+
apiContext: { type: 'string' },
|
|
68
|
+
apiName: { type: 'string' },
|
|
69
|
+
apiVersion: { type: 'string' },
|
|
70
|
+
resources: { type: 'array' },
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
description: 'Rate limit data for application APIs',
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
name: 'ebay_get_user_rate_limits',
|
|
80
|
+
description: 'Get user-specific rate limits for eBay APIs. Returns call quota per user for APIs that limit by user.',
|
|
81
|
+
inputSchema: {
|
|
82
|
+
apiContext: z
|
|
83
|
+
.string()
|
|
84
|
+
.optional()
|
|
85
|
+
.describe('Filter by API context: buy, sell, commerce, developer, or tradingapi'),
|
|
86
|
+
apiName: z
|
|
87
|
+
.string()
|
|
88
|
+
.optional()
|
|
89
|
+
.describe('Filter by specific API name: browse, inventory, taxonomy, tradingapi, etc.'),
|
|
90
|
+
},
|
|
91
|
+
outputSchema: {
|
|
92
|
+
type: 'object',
|
|
93
|
+
properties: {
|
|
94
|
+
rateLimits: { type: 'array' },
|
|
95
|
+
},
|
|
96
|
+
description: 'Rate limit data for user APIs',
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
name: 'ebay_register_client',
|
|
101
|
+
description: 'Register a third party financial application with eBay (Open Banking / PSD2). Requires valid eIDAS certificate via MTLS.',
|
|
102
|
+
inputSchema: {
|
|
103
|
+
clientSettings: z
|
|
104
|
+
.object({
|
|
105
|
+
client_name: z.string().optional().describe('User-friendly name for the application'),
|
|
106
|
+
contacts: z.array(z.string()).optional().describe('Array of contact email addresses'),
|
|
107
|
+
policy_uri: z.string().optional().describe('HTTPS URL to privacy policy document'),
|
|
108
|
+
redirect_uris: z.array(z.string()).optional().describe('Array of redirect URIs'),
|
|
109
|
+
software_id: z.string().optional().describe('Unique identifier for the client software'),
|
|
110
|
+
software_statement: z
|
|
111
|
+
.string()
|
|
112
|
+
.optional()
|
|
113
|
+
.describe('Base64-encoded Software Statement Assertion (SSA) JWT'),
|
|
114
|
+
})
|
|
115
|
+
.describe('Client registration settings'),
|
|
116
|
+
},
|
|
117
|
+
outputSchema: {
|
|
118
|
+
type: 'object',
|
|
119
|
+
properties: {
|
|
120
|
+
client_id: { type: 'string' },
|
|
121
|
+
client_secret: { type: 'string' },
|
|
122
|
+
client_id_issued_at: { type: 'number' },
|
|
123
|
+
client_secret_expires_at: { type: 'number' },
|
|
124
|
+
},
|
|
125
|
+
description: 'Registered client details with credentials',
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
name: 'ebay_get_signing_keys',
|
|
130
|
+
description: 'Get all signing keys for the application. Returns public keys and metadata (private keys are not stored by eBay).',
|
|
131
|
+
inputSchema: {},
|
|
132
|
+
outputSchema: {
|
|
133
|
+
type: 'object',
|
|
134
|
+
properties: {
|
|
135
|
+
signingKeys: {
|
|
136
|
+
type: 'array',
|
|
137
|
+
items: {
|
|
138
|
+
type: 'object',
|
|
139
|
+
properties: {
|
|
140
|
+
signingKeyId: { type: 'string' },
|
|
141
|
+
signingKeyCipher: { type: 'string' },
|
|
142
|
+
publicKey: { type: 'string' },
|
|
143
|
+
jwe: { type: 'string' },
|
|
144
|
+
creationTime: { type: 'number' },
|
|
145
|
+
expirationTime: { type: 'number' },
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
},
|
|
150
|
+
description: 'List of signing keys',
|
|
151
|
+
},
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
name: 'ebay_create_signing_key',
|
|
155
|
+
description: 'Create a new signing keypair for API digital signatures. Supports ED25519 (recommended) or RSA ciphers. IMPORTANT: Save the private key immediately as eBay does not store it.',
|
|
156
|
+
inputSchema: {
|
|
157
|
+
signingKeyCipher: z
|
|
158
|
+
.enum(['ED25519', 'RSA'])
|
|
159
|
+
.optional()
|
|
160
|
+
.describe('Cipher to use for keypair: ED25519 (recommended, shorter keys) or RSA (legacy support)'),
|
|
161
|
+
},
|
|
162
|
+
outputSchema: {
|
|
163
|
+
type: 'object',
|
|
164
|
+
properties: {
|
|
165
|
+
signingKeyId: { type: 'string' },
|
|
166
|
+
signingKeyCipher: { type: 'string' },
|
|
167
|
+
privateKey: { type: 'string' },
|
|
168
|
+
publicKey: { type: 'string' },
|
|
169
|
+
jwe: { type: 'string' },
|
|
170
|
+
creationTime: { type: 'number' },
|
|
171
|
+
expirationTime: { type: 'number' },
|
|
172
|
+
},
|
|
173
|
+
description: 'Created signing key with private key (returned only once)',
|
|
174
|
+
},
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
name: 'ebay_get_signing_key',
|
|
178
|
+
description: 'Get a specific signing key by ID. Returns public key and metadata (private key is not stored by eBay).',
|
|
179
|
+
inputSchema: {
|
|
180
|
+
signingKeyId: z.string().describe('The system-generated eBay ID of the signing key'),
|
|
181
|
+
},
|
|
182
|
+
outputSchema: {
|
|
183
|
+
type: 'object',
|
|
184
|
+
properties: {
|
|
185
|
+
signingKeyId: { type: 'string' },
|
|
186
|
+
signingKeyCipher: { type: 'string' },
|
|
187
|
+
publicKey: { type: 'string' },
|
|
188
|
+
jwe: { type: 'string' },
|
|
189
|
+
creationTime: { type: 'number' },
|
|
190
|
+
expirationTime: { type: 'number' },
|
|
191
|
+
},
|
|
192
|
+
description: 'Signing key details',
|
|
193
|
+
},
|
|
194
|
+
},
|
|
195
|
+
];
|