ebay-mcp 1.18.3 → 2.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.
Files changed (44) hide show
  1. package/README.md +34 -16
  2. package/build/api/account-management/account.js +2 -2
  3. package/build/api/account-management/accountV2.js +0 -6
  4. package/build/api/account-management/finances.js +7 -5
  5. package/build/api/client/ebayApiClient.js +111 -10
  6. package/build/api/client/signEbayRequest.js +124 -0
  7. package/build/api/communication/feedback.js +4 -4
  8. package/build/api/developer/developer.js +43 -7
  9. package/build/api/ebaySellerApi.js +0 -4
  10. package/build/api/marketing-and-promotions/campaigns.js +0 -34
  11. package/build/api/order-management/dispute.js +29 -20
  12. package/build/api/order-management/fulfillment.js +2 -1
  13. package/build/api/other/edelivery.js +3 -3
  14. package/build/api/other/translation.js +1 -1
  15. package/build/config/environment.js +31 -3
  16. package/build/schemas/account-management/account.js +1 -1
  17. package/build/schemas/account-management/accountV2.js +3 -4
  18. package/build/schemas/communication/messages.js +2 -2
  19. package/build/schemas/marketing/campaigns.js +0 -21
  20. package/build/schemas/other/otherApis.js +2 -85
  21. package/build/scripts/devSync.js +75 -225
  22. package/build/scripts/specCoverage.js +78 -0
  23. package/build/scripts/specDownload.js +42 -0
  24. package/build/scripts/specRefs.js +2 -3
  25. package/build/scripts/specSources.js +4 -6
  26. package/build/scripts/specTypeNames.js +23 -0
  27. package/build/skills/content.js +2 -2
  28. package/build/tools/categories/account.js +3 -3
  29. package/build/tools/categories/communication.js +5 -5
  30. package/build/tools/categories/developer.js +1 -1
  31. package/build/tools/categories/finances.js +2 -2
  32. package/build/tools/categories/marketing.js +0 -16
  33. package/build/tools/categories/other.js +3 -17
  34. package/build/types/ebay.js +0 -1
  35. package/build/types/ebayEnums.js +0 -40
  36. package/build/ui/card.html +23 -23
  37. package/build/ui/chart.html +22 -22
  38. package/build/ui/stat.html +23 -23
  39. package/build/ui/table.html +21 -21
  40. package/build/utils/communication/feedback.js +3 -3
  41. package/build/utils/errors.js +1 -0
  42. package/package.json +5 -5
  43. package/build/api/other/compliance.js +0 -60
  44. package/build/utils/other/compliance.js +0 -56
@@ -1,6 +1,6 @@
1
1
  import { Effect } from 'effect';
2
2
  import { zodToJsonSchema } from 'zod-to-json-schema';
3
- import { bulkCreateOrReplaceSalesTaxInputSchema, createCustomPolicyInputSchema, createCustomPolicyOutputSchema, createFulfillmentPolicyInputSchema, createFulfillmentPolicyOutputSchema, createOrReplaceSalesTaxInputSchema, createPaymentPolicyInputSchema, createPaymentPolicyOutputSchema, createReturnPolicyInputSchema, createReturnPolicyOutputSchema, customPolicyResponseSchema, deleteFulfillmentPolicyInputSchema, deletePaymentPolicyInputSchema, deleteReturnPolicyInputSchema, deleteSalesTaxInputSchema, fulfillmentPolicyResponseSchema, getAdvertisingEligibilityInputSchema, getCustomPoliciesInputSchema, getCustomPolicyInputSchema, getFulfillmentPoliciesInputSchema, getFulfillmentPoliciesOutputSchema, getFulfillmentPolicyByNameInputSchema, getFulfillmentPolicyInputSchema, getPaymentPoliciesInputSchema, getPaymentPoliciesOutputSchema, getPaymentPolicyByNameInputSchema, getPaymentPolicyInputSchema, getKycInputSchema, getOptedInProgramsInputSchema, getPaymentsProgramInputSchema, getPaymentsProgramOnboardingInputSchema, getPrivilegesInputSchema, getRateTablesInputSchema, getReturnPoliciesInputSchema, getReturnPoliciesOutputSchema, getReturnPolicyByNameInputSchema, getReturnPolicyInputSchema, getSalesTaxesInputSchema, getSalesTaxesOutputSchema, getSalesTaxInputSchema, getSubscriptionInputSchema, kycOutputSchema, optInToProgramInputSchema, optOutOfProgramInputSchema, paymentPolicyResponseSchema, privilegesOutputSchema, programsOutputSchema, returnPolicyResponseSchema, salesTaxSchema, updateCustomPolicyInputSchema, updateFulfillmentPolicyInputSchema, updatePaymentPolicyInputSchema, updateReturnPolicyInputSchema, } from '../../schemas/account-management/account.js';
3
+ import { bulkCreateOrReplaceSalesTaxInputSchema, createCustomPolicyInputSchema, createCustomPolicyOutputSchema, createFulfillmentPolicyInputSchema, createFulfillmentPolicyOutputSchema, createOrReplaceSalesTaxInputSchema, createPaymentPolicyInputSchema, createPaymentPolicyOutputSchema, createReturnPolicyInputSchema, createReturnPolicyOutputSchema, customPolicyResponseSchema, deleteFulfillmentPolicyInputSchema, deletePaymentPolicyInputSchema, deleteReturnPolicyInputSchema, deleteSalesTaxInputSchema, fulfillmentPolicyResponseSchema, getAdvertisingEligibilityInputSchema, getCustomPoliciesInputSchema, getCustomPolicyInputSchema, getFulfillmentPoliciesInputSchema, getFulfillmentPoliciesOutputSchema, getFulfillmentPolicyByNameInputSchema, getFulfillmentPolicyInputSchema, getPaymentPoliciesInputSchema, getPaymentPoliciesOutputSchema, getPaymentPolicyByNameInputSchema, getPaymentPolicyInputSchema, getKYCInputSchema, getOptedInProgramsInputSchema, getPaymentsProgramInputSchema, getPaymentsProgramOnboardingInputSchema, getPrivilegesInputSchema, getRateTablesInputSchema, getReturnPoliciesInputSchema, getReturnPoliciesOutputSchema, getReturnPolicyByNameInputSchema, getReturnPolicyInputSchema, getSalesTaxesInputSchema, getSalesTaxesOutputSchema, getSalesTaxInputSchema, getSubscriptionInputSchema, kycOutputSchema, optInToProgramInputSchema, optOutOfProgramInputSchema, paymentPolicyResponseSchema, privilegesOutputSchema, programsOutputSchema, returnPolicyResponseSchema, salesTaxSchema, updateCustomPolicyInputSchema, updateFulfillmentPolicyInputSchema, updatePaymentPolicyInputSchema, updateReturnPolicyInputSchema, } from '../../schemas/account-management/account.js';
4
4
  import { defineTool } from '../../tools/defineTool.js';
5
5
  const emptyResponseSchema = {
6
6
  type: 'object',
@@ -251,13 +251,13 @@ export const accountEntries = [
251
251
  defineTool({
252
252
  name: 'ebay_get_kyc',
253
253
  description: 'Get seller KYC (Know Your Customer) status',
254
- inputSchema: getKycInputSchema.shape,
254
+ inputSchema: getKYCInputSchema.shape,
255
255
  outputSchema: zodToJsonSchema(kycOutputSchema, {
256
256
  name: 'KYCResponse',
257
257
  $refStrategy: 'none',
258
258
  }),
259
259
  annotations: { readOnlyHint: true },
260
- handler: (api, args) => Effect.runPromise(api.account.getKyc(args)),
260
+ handler: (api, args) => Effect.runPromise(api.account.getKYC(args)),
261
261
  }),
262
262
  defineTool({
263
263
  name: 'ebay_get_payments_program',
@@ -1,6 +1,6 @@
1
1
  import { defineTool } from '../../tools/defineTool.js';
2
2
  import { Effect } from 'effect';
3
- import { getAwaitingFeedbackSchema, getFeedbackRatingSummarySchema, getFeedbackSchema, leaveFeedbackForBuyerSchema, respondToFeedbackSchema, } from '../../utils/communication/feedback.js';
3
+ import { getItemsAwaitingFeedbackSchema, getFeedbackRatingSummarySchema, getFeedbackSchema, leaveFeedbackSchema, respondToFeedbackSchema, } from '../../utils/communication/feedback.js';
4
4
  import { bulkUpdateConversationSchema, getConversationSchema, getConversationsSchema, sendMessageSchema, updateConversationSchema, } from '../../utils/communication/message.js';
5
5
  import { findEligibleItemsSchema, sendOfferToInterestedBuyersSchema, } from '../../utils/communication/negotiation.js';
6
6
  import { createDestinationSchema, createSubscriptionFilterSchema, createSubscriptionSchema, deleteDestinationSchema, deleteSubscriptionFilterSchema, deleteSubscriptionSchema, disableSubscriptionSchema, enableSubscriptionSchema, getConfigSchema, getDestinationSchema, getDestinationsSchema, getPublicKeySchema, getSubscriptionFilterSchema, getSubscriptionSchema, getSubscriptionsSchema, getTopicSchema, getTopicsSchema, testSubscriptionSchema, updateConfigSchema, updateDestinationSchema, updateSubscriptionSchema, } from '../../utils/communication/notification.js';
@@ -198,14 +198,14 @@ export const communicationEntries = [
198
198
  defineTool({
199
199
  name: 'ebay_leave_feedback_for_buyer',
200
200
  description: 'Leave feedback for a buyer. Provide orderLineItemId, commentType (POSITIVE/NEUTRAL/NEGATIVE), and commentText.',
201
- inputSchema: leaveFeedbackForBuyerSchema.shape,
202
- handler: (api, args) => Effect.runPromise(api.feedback.leaveFeedbackForBuyer(args)),
201
+ inputSchema: leaveFeedbackSchema.shape,
202
+ handler: (api, args) => Effect.runPromise(api.feedback.leaveFeedback(args)),
203
203
  }),
204
204
  defineTool({
205
205
  name: 'ebay_get_awaiting_feedback',
206
206
  description: 'Get transactions awaiting feedback from the seller',
207
- inputSchema: getAwaitingFeedbackSchema.shape,
208
- handler: (api, args) => Effect.runPromise(api.feedback.getAwaitingFeedback(args)),
207
+ inputSchema: getItemsAwaitingFeedbackSchema.shape,
208
+ handler: (api, args) => Effect.runPromise(api.feedback.getItemsAwaitingFeedback(args)),
209
209
  }),
210
210
  defineTool({
211
211
  name: 'ebay_respond_to_feedback',
@@ -78,7 +78,7 @@ export const developerEntries = [
78
78
  }),
79
79
  defineTool({
80
80
  name: 'ebay_create_signing_key',
81
- 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.',
81
+ 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. To sign the calls eBay requires signatures on for EU/UK sellers (Finances API, issueRefund), set EBAY_SIGNING_KEY_JWE to the returned jwe and EBAY_SIGNING_PRIVATE_KEY to the returned privateKey, then restart the server.',
82
82
  inputSchema: createSigningKeyInputSchema.shape,
83
83
  outputSchema: zodToJsonSchema(signingKeySchema, {
84
84
  name: 'CreateSigningKeyOutput',
@@ -2,8 +2,8 @@ import { FINANCES_EARNINGS_SCOPE } from '../../config/environment.js';
2
2
  import { getBillingActivitiesInputSchema, getOrderEarningsByIdInputSchema, getOrderEarningsInputSchema, getOrderEarningsSummaryInputSchema, getPayoutInputSchema, getPayoutSummaryInputSchema, getPayoutsInputSchema, getSellerFundsSummaryInputSchema, getTransactionSummaryInputSchema, getTransactionsInputSchema, getTransferInputSchema, } from '../../schemas/account-management/finances.js';
3
3
  import { defineTool } from '../../tools/defineTool.js';
4
4
  import { Effect } from 'effect';
5
- const FINANCES_SCOPE_NOTE = 'Requires the sell.finances scope. eBay requires Digital Signatures on Finances API calls for EU/UK sellers, which this server does not add.';
6
- const EARNINGS_SCOPE_NOTE = `Requires the optional ${FINANCES_EARNINGS_SCOPE} scope, which is not requested by default: add it to EBAY_OAUTH_SCOPES and re-run OAuth consent. eBay grants it only to approved US, CN, or HK sellers with USD payouts. eBay requires Digital Signatures on Finances API calls for EU/UK sellers, which this server does not add.`;
5
+ const FINANCES_SCOPE_NOTE = 'Requires the sell.finances scope. eBay requires Digital Signatures on Finances API calls for EU/UK sellers; set EBAY_SIGNING_KEY_JWE and EBAY_SIGNING_PRIVATE_KEY to sign them.';
6
+ const EARNINGS_SCOPE_NOTE = `Requires the optional ${FINANCES_EARNINGS_SCOPE} scope, which is not requested by default: add it to EBAY_OAUTH_SCOPES and re-run OAuth consent. eBay grants it only to approved US, CN, or HK sellers with USD payouts. eBay requires Digital Signatures on Finances API calls for EU/UK sellers; set EBAY_SIGNING_KEY_JWE and EBAY_SIGNING_PRIVATE_KEY to sign them.`;
7
7
  /** Finances API tools for payouts, transactions, transfers, seller funds, billing activity, and order earnings. */
8
8
  export const financesEntries = [
9
9
  defineTool({
@@ -250,14 +250,6 @@ export const marketingEntries = [
250
250
  annotations: { readOnlyHint: true },
251
251
  handler: (api, args) => Effect.runPromise(api.marketing.getCampaignByName(args)),
252
252
  }),
253
- defineTool({
254
- name: 'ebay_launch_campaign',
255
- description: 'Launch campaign through the eBay Marketing API.',
256
- inputSchema: marketingSchemas.launchCampaignInputSchema.shape,
257
- outputSchema: emptyResponseSchema,
258
- annotations: { readOnlyHint: false },
259
- handler: (api, args) => Effect.runPromise(api.marketing.launchCampaign(args)),
260
- }),
261
253
  defineTool({
262
254
  name: 'ebay_pause_campaign',
263
255
  description: 'Pause campaign through the eBay Marketing API.',
@@ -274,14 +266,6 @@ export const marketingEntries = [
274
266
  annotations: { readOnlyHint: false },
275
267
  handler: (api, args) => Effect.runPromise(api.marketing.resumeCampaign(args)),
276
268
  }),
277
- defineTool({
278
- name: 'ebay_setup_quick_campaign',
279
- description: 'Setup quick campaign through the eBay Marketing API.',
280
- inputSchema: marketingSchemas.setupQuickCampaignInputSchema.shape,
281
- outputSchema: emptyResponseSchema,
282
- annotations: { readOnlyHint: false },
283
- handler: (api, args) => Effect.runPromise(api.marketing.setupQuickCampaign(args)),
284
- }),
285
269
  defineTool({
286
270
  name: 'ebay_suggest_budget',
287
271
  description: 'Suggest budget through the eBay Marketing API.',
@@ -1,5 +1,5 @@
1
1
  import { Effect } from 'effect';
2
- import { bundleIdInputSchema, createVeroReportInputSchema, edeliveryBodyInputSchema, edeliveryPaginationInputSchema, getActualCostsInputSchema, getAddressPreferencesInputSchema, getConsignPreferencesInputSchema, getHandoverSheetInputSchema, getLabelsInputSchema, getListingViolationsInputSchema, getListingViolationsSummaryInputSchema, getPackagesByLineItemIdInputSchema, getTrackingInputSchema, getUserInputSchema, getVeroReasonCodeInputSchema, getVeroReasonCodesInputSchema, getVeroReportInputSchema, getVeroReportItemsInputSchema, packageIdInputSchema, translateInputSchema, } from '../../schemas/other/otherApis.js';
2
+ import { bundleIdInputSchema, createVeroReportInputSchema, edeliveryBodyInputSchema, edeliveryPaginationInputSchema, getActualCostsInputSchema, getAddressPreferencesInputSchema, getConsignPreferencesInputSchema, getHandoverSheetInputSchema, getLabelsInputSchema, getPackagesByLineItemIDInputSchema, getTrackingInputSchema, getUserInputSchema, getVeroReasonCodeInputSchema, getVeroReasonCodesInputSchema, getVeroReportInputSchema, getVeroReportItemsInputSchema, packageIdInputSchema, translateInputSchema, } from '../../schemas/other/otherApis.js';
3
3
  import { defineTool } from '../../tools/defineTool.js';
4
4
  /** Miscellaneous eBay API tools that do not fit the primary seller API categories. */
5
5
  export const otherEntries = [
@@ -10,20 +10,6 @@ export const otherEntries = [
10
10
  inputSchema: getUserInputSchema.shape,
11
11
  handler: (api, args) => Effect.runPromise(api.identity.getUser(args)),
12
12
  }),
13
- // Compliance API — decommissioned by eBay on 2026-03-30 (no API replacement).
14
- // Tools stay registered so callers get a clear failure instead of a bare 404.
15
- defineTool({
16
- name: 'ebay_get_listing_violations',
17
- description: 'DECOMMISSIONED: eBay shut down the Sell Compliance API on 2026-03-30. This tool always fails with a clear message. Use Seller Hub → Performance → Issue Resolution Center instead (no API equivalent).',
18
- inputSchema: getListingViolationsInputSchema.shape,
19
- handler: (api, args) => Effect.runPromise(api.compliance.getListingViolations(args)),
20
- }),
21
- defineTool({
22
- name: 'ebay_get_listing_violations_summary',
23
- description: 'DECOMMISSIONED: eBay shut down the Sell Compliance API on 2026-03-30. This tool always fails with a clear message. Use Seller Hub → Performance → Issue Resolution Center instead (no API equivalent).',
24
- inputSchema: getListingViolationsSummaryInputSchema.shape,
25
- handler: (api, args) => Effect.runPromise(api.compliance.getListingViolationsSummary(args)),
26
- }),
27
13
  // VERO API
28
14
  defineTool({
29
15
  name: 'ebay_create_vero_report',
@@ -165,8 +151,8 @@ export const otherEntries = [
165
151
  defineTool({
166
152
  name: 'ebay_get_packages_by_line_item_id',
167
153
  description: 'Get package details by order line item ID',
168
- inputSchema: getPackagesByLineItemIdInputSchema.shape,
169
- handler: (api, args) => Effect.runPromise(api.edelivery.getPackagesByLineItemId(args)),
154
+ inputSchema: getPackagesByLineItemIDInputSchema.shape,
155
+ handler: (api, args) => Effect.runPromise(api.edelivery.getPackagesByLineItemID(args)),
170
156
  }),
171
157
  defineTool({
172
158
  name: 'ebay_cancel_package',
@@ -41,7 +41,6 @@ export var EbayApi;
41
41
  // Other APIs
42
42
  EbayApi["IDENTITY"] = "commerce/identity/v1";
43
43
  EbayApi["VERO"] = "commerce/vero/v1";
44
- EbayApi["COMPLIANCE"] = "sell/compliance/v1";
45
44
  EbayApi["TRANSLATION"] = "commerce/translation/v1";
46
45
  EbayApi["EDELIVERY"] = "sell/logistics/v1";
47
46
  })(EbayApi || (EbayApi = {}));
@@ -471,40 +471,6 @@ export var ListingStatus;
471
471
  /** This enumeration value indicates that the eBay listing associated with the offer has ended. */
472
472
  // ENDED = 'ENDED', // Duplicate, already defined above
473
473
  })(ListingStatus || (ListingStatus = {}));
474
- /**
475
- * Compliance Types
476
- *
477
- * Types of compliance issues.
478
- *
479
- * Reference: https://developer.ebay.com/api-docs/sell/compliance/types/com:ComplianceTypeEnum
480
- */
481
- export var ComplianceType;
482
- (function (ComplianceType) {
483
- /** @deprecated Note: The ASPECTS_ADOPTION compliance type has been deprecated and will be decommissioned on September 9th, 2025.
484
- * Use this compliance type to see if a seller's listings have missing or invalid item aspects (item specifics).
485
- * For each category, eBay maintains a list of required and recommended item aspects. */
486
- ComplianceType["ASPECTS_ADOPTION"] = "ASPECTS_ADOPTION";
487
- /** Use this compliance type to see if any of the seller's listings are violating eBay's policy of using an 'HTTP' link
488
- * (to eBay and non-eBay sites) in the listing instead of 'HTTPS' links. This requirement includes links to externally-hosted
489
- * listing images. If the server hosting the listing images does not support the HTTPS protocol, this server cannot be used
490
- * to host listing images. */
491
- ComplianceType["HTTPS"] = "HTTPS";
492
- /** Use this compliance type to see if any listings are violating eBay's policy of not allowing links in the listing to sites
493
- * outside of eBay. The seller including a personal email address and/or a phone number in the listing is also a violation of this policy.
494
- * All communication between seller and buyers should be handled through eBay's communication system. The only exceptions to this
495
- * outside links rule are links to product videos, information on freight shipping services, or any legally required information. */
496
- ComplianceType["OUTSIDE_EBAY_BUYING_AND_SELLING"] = "OUTSIDE_EBAY_BUYING_AND_SELLING";
497
- /** Product safety compliance */
498
- ComplianceType["PRODUCT_SAFETY"] = "PRODUCT_SAFETY";
499
- /** Product Adoption is not enforced at this time, so this compliance type is not currently applicable. */
500
- ComplianceType["PRODUCT_ADOPTION"] = "PRODUCT_ADOPTION";
501
- /** Product Adoption is not enforced at this time, so this compliance type is not currently applicable. */
502
- ComplianceType["PRODUCT_ADOPTION_CONFORMANCE"] = "PRODUCT_ADOPTION_CONFORMANCE";
503
- /** Regulatory compliance */
504
- ComplianceType["REGULATORY"] = "REGULATORY";
505
- /** Returns policy compliance */
506
- ComplianceType["RETURNS_POLICY"] = "RETURNS_POLICY";
507
- })(ComplianceType || (ComplianceType = {}));
508
474
  /**
509
475
  * Language Codes (ISO 639-1)
510
476
  *
@@ -1231,12 +1197,6 @@ export const EbayEnums = {
1231
1197
  isValidListingStatus(status) {
1232
1198
  return Object.values(ListingStatus).includes(status);
1233
1199
  },
1234
- /**
1235
- * Check if a compliance type is valid
1236
- */
1237
- isValidComplianceType(type) {
1238
- return Object.values(ComplianceType).includes(type);
1239
- },
1240
1200
  /**
1241
1201
  * Check if a language code is valid
1242
1202
  */