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
package/README.md ADDED
@@ -0,0 +1,586 @@
1
+ # eBay API MCP Server
2
+
3
+ <div align="center">
4
+
5
+ [![npm version](https://img.shields.io/npm/v/ebay-mcp)](https://www.npmjs.com/package/ebay-mcp)
6
+ [![npm downloads](https://img.shields.io/npm/dm/ebay-mcp)](https://www.npmjs.com/package/ebay-mcp)
7
+ [![Tests](https://img.shields.io/badge/tests-890%2B%20passing-brightgreen)](tests/)
8
+ [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
9
+
10
+ A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server providing AI assistants with comprehensive access to eBay's Sell APIs. Includes 230+ tools for inventory management, order fulfillment, marketing campaigns, analytics, and more.
11
+
12
+ **API Coverage:** 99.1% (~110 of 111 eBay Sell API endpoints)
13
+
14
+ </div>
15
+
16
+ ---
17
+
18
+ ## ⚠️ Disclaimer
19
+
20
+ **IMPORTANT: Please read this disclaimer carefully before using this software.**
21
+
22
+ This is an **open-source project** provided "as is" without warranty of any kind, either express or implied. By using this software, you acknowledge and agree to the following:
23
+
24
+ - **No Liability:** The authors, contributors, and maintainers of this project accept **NO responsibility or liability** for any damages, losses, or issues that may arise from using this software, including but not limited to:
25
+ - Data loss or corruption
26
+ - Financial losses
27
+ - Service disruptions
28
+ - eBay account suspension or termination
29
+ - Violations of eBay's Terms of Service or API usage policies
30
+ - Any other direct or indirect damages
31
+
32
+ - **eBay API Usage:** This project is an unofficial third-party implementation and is **NOT affiliated with, endorsed by, or sponsored by eBay Inc.** You are solely responsible for:
33
+ - Complying with [eBay's API Terms of Use](https://developer.ebay.com/join/api_license_agreement)
34
+ - Ensuring your usage stays within eBay's rate limits and policies
35
+ - Managing your eBay Developer credentials securely
36
+ - Any actions performed through the API
37
+
38
+ - **Use at Your Own Risk:** This software is provided for educational and development purposes. Users must:
39
+ - Test thoroughly in eBay's sandbox environment before production use
40
+ - Understand the API calls being made on their behalf
41
+ - Maintain backups of critical data
42
+ - Monitor their API usage and account status
43
+
44
+ - **Security:** You are responsible for:
45
+ - Keeping your API credentials secure
46
+ - Properly configuring environment variables
47
+ - Understanding the security implications of MCP server usage
48
+ - Following security best practices
49
+
50
+ - **No Warranty:** This software is provided without any guarantees of functionality, reliability, or fitness for a particular purpose.
51
+
52
+ **By using this software, you accept all risks and agree to hold harmless the authors, contributors, and maintainers from any claims, damages, or liabilities.**
53
+
54
+ For official eBay API support, please refer to the [eBay Developer Program](https://developer.ebay.com/).
55
+
56
+ ---
57
+
58
+ ## Table of Contents
59
+
60
+ - [⚠️ Disclaimer](#️-disclaimer)
61
+ - [Features](#features)
62
+ - [Quick Start](#quick-start)
63
+ - [Configuration](#configuration)
64
+ - [Available Tools](#available-tools)
65
+ - [Usage Examples](#usage-examples)
66
+ - [Development](#development)
67
+ - [Contributing](#contributing)
68
+ - [Troubleshooting](#troubleshooting)
69
+ - [Resources](#resources)
70
+ - [License](#license)
71
+
72
+ ## Features
73
+
74
+ - **230+ eBay API Tools** - Comprehensive coverage of eBay Sell APIs across inventory, orders, marketing, analytics, and more
75
+ - **OAuth 2.0 Support** - Full user token management with automatic refresh
76
+ - **Type Safety** - Built with TypeScript, Zod validation, and OpenAPI-generated types
77
+ - **MCP Integration** - STDIO transport for direct integration with AI assistants
78
+ - **Smart Authentication** - Automatic fallback from user tokens (10k-50k req/day) to client credentials (1k req/day)
79
+ - **Well Tested** - 870+ tests with 99%+ function coverage
80
+
81
+ ## Quick Start
82
+
83
+ ### 1. Get eBay Credentials
84
+
85
+ 1. Create a free [eBay Developer Account](https://developer.ebay.com/)
86
+ 2. Generate application keys in the [Developer Portal](https://developer.ebay.com/my/keys)
87
+ 3. Save your **Client ID** and **Client Secret**
88
+
89
+ ### 2. Install
90
+
91
+ **Option A: Install from npm (Recommended)**
92
+
93
+ ```bash
94
+ npm install -g ebay-mcp
95
+ ```
96
+
97
+ **Option B: Install from source**
98
+
99
+ ```bash
100
+ git clone https://github.com/YosefHayim/ebay-mcp.git
101
+ cd ebay-mcp
102
+ npm install
103
+ npm run build
104
+ ```
105
+
106
+ ### 3. Configure
107
+
108
+ Run the interactive setup wizard:
109
+
110
+ ```bash
111
+ npm run setup
112
+ ```
113
+
114
+ Or manually configure:
115
+
116
+ ```bash
117
+ cp .env.example .env
118
+ # Edit .env with your credentials
119
+ npm run auto-setup
120
+ ```
121
+
122
+ ### 4. Configure MCP Client
123
+
124
+ Add this server to your MCP client configuration:
125
+
126
+ **Claude Desktop:**
127
+
128
+ Edit your Claude Desktop config file:
129
+ - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
130
+ - Windows: `%APPDATA%/Claude/claude_desktop_config.json`
131
+ - Linux: `~/.config/Claude/claude_desktop_config.json`
132
+
133
+ Add the server configuration:
134
+
135
+ ```json
136
+ {
137
+ "mcpServers": {
138
+ "ebay": {
139
+ "command": "npx",
140
+ "args": ["-y", "ebay-mcp"],
141
+ "env": {
142
+ "EBAY_CLIENT_ID": "your_client_id",
143
+ "EBAY_CLIENT_SECRET": "your_client_secret",
144
+ "EBAY_ENVIRONMENT": "sandbox",
145
+ "EBAY_REDIRECT_URI": "your_runame"
146
+ }
147
+ }
148
+ }
149
+ }
150
+ ```
151
+
152
+ **Alternative: Use locally installed version**
153
+
154
+ If you installed from source:
155
+
156
+ ```json
157
+ {
158
+ "mcpServers": {
159
+ "ebay": {
160
+ "command": "node",
161
+ "args": ["/absolute/path/to/ebay-mcp/build/index.js"],
162
+ "env": {
163
+ "EBAY_CLIENT_ID": "your_client_id",
164
+ "EBAY_CLIENT_SECRET": "your_client_secret",
165
+ "EBAY_ENVIRONMENT": "sandbox"
166
+ }
167
+ }
168
+ }
169
+ }
170
+ ```
171
+
172
+ ### 5. Use
173
+
174
+ Restart your MCP client (Claude Desktop, etc.) and start using eBay tools through your AI assistant.
175
+
176
+ ## Configuration
177
+
178
+ ### Environment Variables
179
+
180
+ Create a `.env` file with your eBay credentials:
181
+
182
+ ```bash
183
+ EBAY_CLIENT_ID=your_client_id
184
+ EBAY_CLIENT_SECRET=your_client_secret
185
+ EBAY_ENVIRONMENT=sandbox # or "production"
186
+ EBAY_REDIRECT_URI=your_runame
187
+
188
+ # Optional: For higher rate limits (10k-50k req/day)
189
+ EBAY_USER_REFRESH_TOKEN=your_refresh_token
190
+ ```
191
+
192
+ ### OAuth Authentication
193
+
194
+ **Client Credentials (Automatic):**
195
+ - Default authentication method
196
+ - 1,000 requests/day
197
+ - No setup required beyond client ID and secret
198
+
199
+ **User Tokens (Recommended for Production):**
200
+ - 10,000-50,000 requests/day
201
+ - Use `ebay_get_oauth_url` tool to generate authorization URL
202
+ - Add `EBAY_USER_REFRESH_TOKEN` to `.env` after OAuth flow
203
+ - Tokens refresh automatically
204
+
205
+ For detailed OAuth setup, see the [OAuth documentation](docs/auth/).
206
+
207
+ ### MCP Client Compatibility
208
+
209
+ This server is compatible with any MCP client that supports STDIO transport:
210
+
211
+ **Tested and Supported:**
212
+ - ✅ **Claude Desktop** (macOS, Windows, Linux) - Full support
213
+ - ✅ **MCP Inspector** - For development and testing
214
+ - ✅ **Custom MCP Clients** - Via STDIO or HTTP transport
215
+
216
+ **Configuration Requirements:**
217
+ - MCP Protocol version: 1.0+
218
+ - Transport: STDIO (default) or HTTP
219
+ - Node.js runtime: 18.0.0 or higher
220
+
221
+ **Other MCP Clients:**
222
+
223
+ While not specifically tested, the server should work with any MCP-compliant client including:
224
+ - Continue.dev
225
+ - Other editors with MCP support
226
+ - Custom implementations
227
+
228
+ If you successfully use this server with another MCP client, please let us know by [opening a discussion](https://github.com/YosefHayim/ebay-mcp/discussions)!
229
+
230
+ ### Rate Limiting
231
+
232
+ Understanding eBay API rate limits is crucial for production use:
233
+
234
+ **Client Credentials (Default):**
235
+ - **Daily Limit:** 1,000 requests per day
236
+ - **Best For:** Development, testing, low-volume operations
237
+ - **Setup:** Automatic with just Client ID and Secret
238
+
239
+ **User Token (Recommended):**
240
+ - **Daily Limit:** 10,000-50,000 requests per day (varies by account type)
241
+ - **Best For:** Production, high-volume operations
242
+ - **Setup:** Requires OAuth flow (use `ebay_get_oauth_url` tool)
243
+
244
+ **Rate Limit Tiers by Account Type:**
245
+ - Individual Developer: 10,000 requests/day
246
+ - Commercial Developer: 25,000 requests/day
247
+ - Enterprise: 50,000+ requests/day (custom limits)
248
+
249
+ **Rate Limit Best Practices:**
250
+ 1. Use user tokens for production workloads
251
+ 2. Implement exponential backoff on rate limit errors
252
+ 3. Cache responses when possible
253
+ 4. Monitor your usage in the eBay Developer Portal
254
+ 5. Batch operations when the API supports it
255
+ 6. Consider upgrading your developer account tier for higher limits
256
+
257
+ **Handling Rate Limits:**
258
+
259
+ When you hit a rate limit, the API returns a 429 status code. The server will:
260
+ - Automatically retry with exponential backoff
261
+ - Inform you of rate limit errors
262
+ - Suggest upgrading to user token authentication
263
+
264
+ **Check Current Usage:**
265
+
266
+ Monitor your API usage in the [eBay Developer Portal](https://developer.ebay.com/my/api_usage).
267
+
268
+ ## Available Tools
269
+
270
+ The server provides 230+ tools organized into the following categories:
271
+
272
+ - **Account Management** - Policies, programs, subscriptions, sales tax
273
+ - **Inventory Management** - Items, offers, locations, bulk operations
274
+ - **Order Fulfillment** - Orders, shipping, refunds, disputes
275
+ - **Marketing & Promotions** - Campaigns, ads, promotions, bidding
276
+ - **Analytics** - Traffic reports, seller standards, metrics
277
+ - **Communication** - Buyer-seller messaging, negotiations
278
+ - **Metadata & Taxonomy** - Categories, item aspects, policies
279
+ - **Token Management** - OAuth URL generation, token management
280
+
281
+ **Example Tools:**
282
+ - `ebay_get_inventory_items` - List all inventory items
283
+ - `ebay_get_orders` - Retrieve seller orders
284
+ - `ebay_create_offer` - Create new listing offer
285
+ - `ebay_get_campaigns` - Get marketing campaigns
286
+ - `ebay_get_oauth_url` - Generate OAuth authorization URL
287
+
288
+ For the complete tool list, see [src/tools/definitions/](src/tools/definitions/).
289
+
290
+ ## Usage Examples
291
+
292
+ Here are some common tasks you can accomplish with the eBay MCP server:
293
+
294
+ ### Setting Up OAuth for Higher Rate Limits
295
+
296
+ **User:** "Can you help me set up OAuth authentication for my eBay account?"
297
+
298
+ **Assistant:** Uses `ebay_get_oauth_url` tool to generate an authorization URL. You visit the URL, grant permissions, and the assistant helps you configure the refresh token in your `.env` file.
299
+
300
+ **Result:** Access to 10,000-50,000 API requests per day instead of 1,000.
301
+
302
+ ### Managing Inventory
303
+
304
+ **User:** "Show me all my active listings on eBay"
305
+
306
+ **Assistant:** Uses `ebay_get_inventory_items` to retrieve all inventory items.
307
+
308
+ **Result:** Displays a formatted list of all your products with SKUs, quantities, and status.
309
+
310
+ ### Processing Orders
311
+
312
+ **User:** "Get all unfulfilled orders from the last 7 days"
313
+
314
+ **Assistant:** Uses `ebay_get_orders` with date filters and fulfillment status parameters.
315
+
316
+ **Result:** Returns a list of pending orders ready for shipment processing.
317
+
318
+ ### Creating Marketing Campaigns
319
+
320
+ **User:** "Create a promoted listing campaign for my electronics category"
321
+
322
+ **Assistant:** Uses `ebay_create_campaign` and related marketing tools to set up ad campaigns.
323
+
324
+ **Result:** New campaign created with specified budget and target items.
325
+
326
+ ### Bulk Operations
327
+
328
+ **User:** "Update prices for all items in category 'Vintage Watches' with a 10% discount"
329
+
330
+ **Assistant:** Combines `ebay_get_inventory_items`, filters by category, and uses `ebay_update_offer` to apply bulk pricing changes.
331
+
332
+ **Result:** All matching items updated with new pricing.
333
+
334
+ ## Development
335
+
336
+ ### Prerequisites
337
+
338
+ - Node.js >= 18.0.0
339
+ - npm or pnpm
340
+ - eBay Developer Account
341
+
342
+ ### Setup
343
+
344
+ ```bash
345
+ # Fork and clone the repository
346
+ git clone https://github.com/YOUR_USERNAME/ebay-mcp.git
347
+ cd ebay-mcp
348
+
349
+ # Install dependencies
350
+ npm install
351
+
352
+ # Set up environment
353
+ cp .env.example .env
354
+ # Edit .env with your credentials
355
+
356
+ # Build and test
357
+ npm run build
358
+ npm test
359
+ ```
360
+
361
+ ### Development Commands
362
+
363
+ ```bash
364
+ npm run dev # Run STDIO server
365
+ npm run dev:http # Run HTTP server
366
+ npm run test # Run tests
367
+ npm run test:watch # Run tests in watch mode
368
+ npm run typecheck # Type-check code
369
+ npm run lint # Lint code
370
+ npm run format # Format code
371
+ ```
372
+
373
+ ### Docker Support
374
+
375
+ Run the server in a containerized environment:
376
+
377
+ ```bash
378
+ # Build the Docker image
379
+ npm run docker:build
380
+
381
+ # Start the container
382
+ npm run docker:up
383
+
384
+ # View logs
385
+ npm run docker:logs
386
+
387
+ # Stop the container
388
+ npm run docker:down
389
+
390
+ # Restart the container
391
+ npm run docker:restart
392
+ ```
393
+
394
+ **Docker Compose Configuration:**
395
+
396
+ The server can be run with Docker Compose for easy deployment:
397
+
398
+ ```bash
399
+ docker-compose up -d
400
+ ```
401
+
402
+ Environment variables should be configured in `.env` file before running Docker commands. The container will automatically use your `.env` configuration.
403
+
404
+ **Use Cases for Docker:**
405
+ - Production deployments
406
+ - Consistent development environments
407
+ - CI/CD pipelines
408
+ - Isolated testing environments
409
+
410
+ ### HTTP Server Mode
411
+
412
+ In addition to the default STDIO transport for MCP clients, the server can run in HTTP mode for testing and debugging:
413
+
414
+ ```bash
415
+ # Development
416
+ npm run dev:http
417
+
418
+ # Production
419
+ npm run start:http
420
+ ```
421
+
422
+ **HTTP Mode Features:**
423
+ - RESTful API endpoints for all tools
424
+ - Interactive API documentation
425
+ - Useful for testing tools without an MCP client
426
+ - CORS support for web applications
427
+ - Helmet security headers
428
+
429
+ **When to Use HTTP Mode:**
430
+ - Testing individual tools during development
431
+ - Building custom integrations
432
+ - Debugging API responses
433
+ - Creating web-based interfaces
434
+
435
+ **Note:** STDIO mode (default) is recommended for MCP client integration (Claude Desktop, etc.). HTTP mode is primarily for development and custom integrations.
436
+
437
+ ### Project Structure
438
+
439
+ ```
440
+ ebay-mcp/
441
+ ├── src/
442
+ │ ├── index.ts # MCP server entry point
443
+ │ ├── api/ # eBay API implementations
444
+ │ ├── auth/ # OAuth & token management
445
+ │ ├── tools/ # MCP tool definitions
446
+ │ ├── types/ # TypeScript types
447
+ │ └── utils/ # Validation schemas
448
+ ├── tests/ # Test suite
449
+ ├── docs/ # Documentation
450
+ └── build/ # Compiled output
451
+ ```
452
+
453
+ For detailed contribution guidelines, see [CONTRIBUTING.md](CONTRIBUTING.md).
454
+
455
+ ## Contributing
456
+
457
+ Contributions are welcome! Here's how to get started:
458
+
459
+ 1. Fork the repository
460
+ 2. Create a feature branch: `git checkout -b feature/my-feature`
461
+ 3. Make your changes and add tests
462
+ 4. Run quality checks: `npm run check && npm test`
463
+ 5. Commit using [Conventional Commits](https://www.conventionalcommits.org/)
464
+ 6. Push to your fork and open a Pull Request
465
+
466
+ **Before submitting:**
467
+ - Ensure all tests pass
468
+ - Follow TypeScript best practices
469
+ - Update documentation as needed
470
+ - Maintain test coverage
471
+
472
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.
473
+
474
+ ## Troubleshooting
475
+
476
+ ### Common Issues
477
+
478
+ #### Server Not Appearing in Claude Desktop
479
+
480
+ **Problem:** The eBay MCP server doesn't show up in your MCP client.
481
+
482
+ **Solutions:**
483
+ 1. Verify the config file path is correct for your OS
484
+ 2. Check JSON syntax is valid (use a JSON validator)
485
+ 3. Ensure environment variables are properly set
486
+ 4. Restart Claude Desktop completely
487
+ 5. Check Claude Desktop logs for error messages
488
+
489
+ #### Authentication Errors
490
+
491
+ **Problem:** "Invalid credentials" or "Authentication failed" errors.
492
+
493
+ **Solutions:**
494
+ 1. Verify your `EBAY_CLIENT_ID` and `EBAY_CLIENT_SECRET` are correct
495
+ 2. Ensure you're using the right environment (sandbox vs production)
496
+ 3. Check if your app keys are active in the eBay Developer Portal
497
+ 4. For user tokens, verify your `EBAY_USER_REFRESH_TOKEN` is valid
498
+ 5. Run `npm run diagnose` to check your configuration
499
+
500
+ #### Rate Limit Errors
501
+
502
+ **Problem:** "Rate limit exceeded" errors.
503
+
504
+ **Solutions:**
505
+ 1. Upgrade to user token authentication (10k-50k requests/day)
506
+ 2. Implement request throttling in your usage
507
+ 3. Check your current rate limit in the Developer Portal
508
+ 4. Consider upgrading your eBay Developer account tier
509
+
510
+ #### Tools Not Working Correctly
511
+
512
+ **Problem:** Tools return unexpected errors or empty results.
513
+
514
+ **Solutions:**
515
+ 1. Verify you're using the correct environment (sandbox vs production)
516
+ 2. Ensure you have proper permissions/scopes for the operation
517
+ 3. Check eBay API status: https://developer.ebay.com/support/api-status
518
+ 4. Run `npm run diagnose:export` to generate a diagnostic report
519
+ 5. Review the [eBay API documentation](https://developer.ebay.com/docs) for endpoint requirements
520
+
521
+ ### Diagnostic Tools
522
+
523
+ Run diagnostics to troubleshoot configuration issues:
524
+
525
+ ```bash
526
+ # Interactive diagnostics
527
+ npm run diagnose
528
+
529
+ # Export diagnostic report
530
+ npm run diagnose:export
531
+ ```
532
+
533
+ The diagnostic tool checks:
534
+ - Environment variable configuration
535
+ - eBay API connectivity
536
+ - Authentication status
537
+ - Token validity
538
+ - Available scopes and permissions
539
+
540
+ ### Getting Help
541
+
542
+ If you're still experiencing issues:
543
+
544
+ 1. Check existing [GitHub Issues](https://github.com/YosefHayim/ebay-mcp/issues)
545
+ 2. Review [GitHub Discussions](https://github.com/YosefHayim/ebay-mcp/discussions)
546
+ 3. Create a new issue with:
547
+ - Your diagnostic report (`npm run diagnose:export`)
548
+ - Steps to reproduce the problem
549
+ - Error messages or logs
550
+ - Your environment (OS, Node version, MCP client)
551
+
552
+ ## Resources
553
+
554
+ ### Documentation
555
+
556
+ - [eBay Developer Portal](https://developer.ebay.com/) - API documentation and credentials
557
+ - [MCP Documentation](https://modelcontextprotocol.io/) - Model Context Protocol specification
558
+ - [OAuth Setup Guide](docs/auth/) - Detailed authentication configuration
559
+ - [Contributing Guidelines](CONTRIBUTING.md) - How to contribute to this project
560
+ - [Code of Conduct](CODE_OF_CONDUCT.md) - Community guidelines and expectations
561
+ - [Changelog](CHANGELOG.md) - Version history and release notes
562
+ - [Security Policy](SECURITY.md) - Vulnerability reporting guidelines
563
+
564
+ ### Support
565
+
566
+ - [GitHub Discussions](https://github.com/YosefHayim/ebay-mcp/discussions) - Community Q&A and general discussions
567
+ - [Issue Tracker](https://github.com/YosefHayim/ebay-mcp/issues) - Bug reports and feature requests
568
+ - [Bug Report Template](BUG_REPORT.md) - Detailed bug reporting guide
569
+
570
+ ## License
571
+
572
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
573
+
574
+ ## Acknowledgments
575
+
576
+ - [eBay Developers Program](https://developer.ebay.com/) for API access
577
+ - [Model Context Protocol](https://modelcontextprotocol.io/) for the MCP specification
578
+ - All [contributors](https://github.com/YosefHayim/ebay-mcp/graphs/contributors) who have helped improve this project
579
+
580
+ ---
581
+
582
+ <div align="center">
583
+
584
+ **[Support this project](https://www.buymeacoffee.com/yosefhayim)** | Created by [Yosef Hayim Sabag](https://github.com/YosefHayim)
585
+
586
+ </div>