@lofder/dsers-mcp-product 1.0.2 → 1.3.8

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 (163) hide show
  1. package/README.md +394 -103
  2. package/dist/auth/browser-finder.d.ts +6 -0
  3. package/dist/auth/browser-finder.d.ts.map +1 -0
  4. package/dist/auth/browser-finder.js +104 -0
  5. package/dist/auth/browser-finder.js.map +1 -0
  6. package/dist/auth/cdp-session.d.ts +6 -0
  7. package/dist/auth/cdp-session.d.ts.map +1 -0
  8. package/dist/auth/cdp-session.js +369 -0
  9. package/dist/auth/cdp-session.js.map +1 -0
  10. package/dist/auth/index.d.ts +6 -0
  11. package/dist/auth/index.d.ts.map +1 -0
  12. package/dist/auth/index.js +6 -0
  13. package/dist/auth/index.js.map +1 -0
  14. package/dist/auth/safari-fallback.d.ts +7 -0
  15. package/dist/auth/safari-fallback.d.ts.map +1 -0
  16. package/dist/auth/safari-fallback.js +73 -0
  17. package/dist/auth/safari-fallback.js.map +1 -0
  18. package/dist/auth/terminal-prompt.d.ts +6 -0
  19. package/dist/auth/terminal-prompt.d.ts.map +1 -0
  20. package/dist/auth/terminal-prompt.js +118 -0
  21. package/dist/auth/terminal-prompt.js.map +1 -0
  22. package/dist/auth/token-store.d.ts +11 -0
  23. package/dist/auth/token-store.d.ts.map +1 -0
  24. package/dist/auth/token-store.js +99 -0
  25. package/dist/auth/token-store.js.map +1 -0
  26. package/dist/cli.js +190 -27
  27. package/dist/cli.js.map +1 -1
  28. package/dist/dsers/account.d.ts.map +1 -1
  29. package/dist/dsers/account.js.map +1 -1
  30. package/dist/dsers/auth.d.ts.map +1 -1
  31. package/dist/dsers/auth.js +31 -9
  32. package/dist/dsers/auth.js.map +1 -1
  33. package/dist/dsers/client.d.ts +2 -0
  34. package/dist/dsers/client.d.ts.map +1 -1
  35. package/dist/dsers/client.js +18 -8
  36. package/dist/dsers/client.js.map +1 -1
  37. package/dist/dsers/config.d.ts +19 -0
  38. package/dist/dsers/config.d.ts.map +1 -1
  39. package/dist/dsers/config.js +19 -3
  40. package/dist/dsers/config.js.map +1 -1
  41. package/dist/dsers/product.d.ts.map +1 -1
  42. package/dist/dsers/product.js +7 -11
  43. package/dist/dsers/product.js.map +1 -1
  44. package/dist/dsers/settings.d.ts +1 -0
  45. package/dist/dsers/settings.d.ts.map +1 -1
  46. package/dist/dsers/settings.js +5 -0
  47. package/dist/dsers/settings.js.map +1 -1
  48. package/dist/error-map.d.ts.map +1 -1
  49. package/dist/error-map.js +174 -59
  50. package/dist/error-map.js.map +1 -1
  51. package/dist/index.d.ts +9 -10
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +34 -21
  54. package/dist/index.js.map +1 -1
  55. package/dist/instructions.d.ts +2 -0
  56. package/dist/instructions.d.ts.map +1 -0
  57. package/dist/instructions.js +62 -0
  58. package/dist/instructions.js.map +1 -0
  59. package/dist/job-store-memory.js +1 -1
  60. package/dist/job-store-memory.js.map +1 -1
  61. package/dist/job-store.d.ts.map +1 -1
  62. package/dist/job-store.js.map +1 -1
  63. package/dist/oauth/crypto.d.ts +4 -4
  64. package/dist/oauth/crypto.d.ts.map +1 -1
  65. package/dist/oauth/crypto.js +10 -10
  66. package/dist/oauth/crypto.js.map +1 -1
  67. package/dist/provider/helpers.d.ts +28 -0
  68. package/dist/provider/helpers.d.ts.map +1 -0
  69. package/dist/provider/helpers.js +265 -0
  70. package/dist/provider/helpers.js.map +1 -0
  71. package/dist/provider/import-ops.d.ts +23 -0
  72. package/dist/provider/import-ops.d.ts.map +1 -0
  73. package/dist/provider/import-ops.js +350 -0
  74. package/dist/provider/import-ops.js.map +1 -0
  75. package/dist/provider/index.d.ts +38 -0
  76. package/dist/provider/index.d.ts.map +1 -0
  77. package/dist/provider/index.js +172 -0
  78. package/dist/provider/index.js.map +1 -0
  79. package/dist/provider/normalize.d.ts +7 -0
  80. package/dist/provider/normalize.d.ts.map +1 -0
  81. package/dist/provider/normalize.js +239 -0
  82. package/dist/provider/normalize.js.map +1 -0
  83. package/dist/provider/push.d.ts +15 -0
  84. package/dist/provider/push.d.ts.map +1 -0
  85. package/dist/provider/push.js +420 -0
  86. package/dist/provider/push.js.map +1 -0
  87. package/dist/provider/store.d.ts +7 -0
  88. package/dist/provider/store.d.ts.map +1 -0
  89. package/dist/provider/store.js +152 -0
  90. package/dist/provider/store.js.map +1 -0
  91. package/dist/provider.d.ts +22 -2
  92. package/dist/provider.d.ts.map +1 -1
  93. package/dist/provider.js +451 -326
  94. package/dist/provider.js.map +1 -1
  95. package/dist/push-guard.d.ts +12 -0
  96. package/dist/push-guard.d.ts.map +1 -0
  97. package/dist/push-guard.js +105 -0
  98. package/dist/push-guard.js.map +1 -0
  99. package/dist/push-options.js.map +1 -1
  100. package/dist/resolver.d.ts.map +1 -1
  101. package/dist/resolver.js +104 -37
  102. package/dist/resolver.js.map +1 -1
  103. package/dist/rules.d.ts.map +1 -1
  104. package/dist/rules.js +455 -25
  105. package/dist/rules.js.map +1 -1
  106. package/dist/service/browse-shared.d.ts +6 -0
  107. package/dist/service/browse-shared.d.ts.map +1 -0
  108. package/dist/service/browse-shared.js +26 -0
  109. package/dist/service/browse-shared.js.map +1 -0
  110. package/dist/service/browse.d.ts +20 -0
  111. package/dist/service/browse.d.ts.map +1 -0
  112. package/dist/service/browse.js +159 -0
  113. package/dist/service/browse.js.map +1 -0
  114. package/dist/service/find-product.d.ts +12 -0
  115. package/dist/service/find-product.d.ts.map +1 -0
  116. package/dist/service/find-product.js +51 -0
  117. package/dist/service/find-product.js.map +1 -0
  118. package/dist/service/helpers.d.ts +20 -0
  119. package/dist/service/helpers.d.ts.map +1 -0
  120. package/dist/service/helpers.js +163 -0
  121. package/dist/service/helpers.js.map +1 -0
  122. package/dist/service/import-flow.d.ts +6 -0
  123. package/dist/service/import-flow.d.ts.map +1 -0
  124. package/dist/service/import-flow.js +141 -0
  125. package/dist/service/import-flow.js.map +1 -0
  126. package/dist/service/import-list.d.ts +6 -0
  127. package/dist/service/import-list.d.ts.map +1 -0
  128. package/dist/service/import-list.js +103 -0
  129. package/dist/service/import-list.js.map +1 -0
  130. package/dist/service/index.d.ts +37 -0
  131. package/dist/service/index.d.ts.map +1 -0
  132. package/dist/service/index.js +132 -0
  133. package/dist/service/index.js.map +1 -0
  134. package/dist/service/my-products.d.ts +7 -0
  135. package/dist/service/my-products.d.ts.map +1 -0
  136. package/dist/service/my-products.js +51 -0
  137. package/dist/service/my-products.js.map +1 -0
  138. package/dist/service/preview.d.ts +7 -0
  139. package/dist/service/preview.d.ts.map +1 -0
  140. package/dist/service/preview.js +235 -0
  141. package/dist/service/preview.js.map +1 -0
  142. package/dist/service/push-flow.d.ts +12 -0
  143. package/dist/service/push-flow.d.ts.map +1 -0
  144. package/dist/service/push-flow.js +251 -0
  145. package/dist/service/push-flow.js.map +1 -0
  146. package/dist/service/status.d.ts +6 -0
  147. package/dist/service/status.d.ts.map +1 -0
  148. package/dist/service/status.js +90 -0
  149. package/dist/service/status.js.map +1 -0
  150. package/dist/service.d.ts +5 -1
  151. package/dist/service.d.ts.map +1 -1
  152. package/dist/service.js +580 -143
  153. package/dist/service.js.map +1 -1
  154. package/dist/tools.d.ts +2 -1
  155. package/dist/tools.d.ts.map +1 -1
  156. package/dist/tools.js +410 -122
  157. package/dist/tools.js.map +1 -1
  158. package/dist/tsconfig.tsbuildinfo +1 -1
  159. package/dist/types/dsers-api.d.ts +133 -0
  160. package/dist/types/dsers-api.d.ts.map +1 -0
  161. package/dist/types/dsers-api.js +2 -0
  162. package/dist/types/dsers-api.js.map +1 -0
  163. package/package.json +23 -14
package/README.md CHANGED
@@ -1,11 +1,12 @@
1
- # DSers MCP Product — Automate Dropshipping AI tools/AliExpress to Shopify & Wix Import
1
+ # DSers MCP Product — Dropshipping Automation: AliExpress to Shopify & Wix with AI
2
2
 
3
+ [![SafeSkill](https://img.shields.io/badge/SafeSkill-92%2F100-brightgreen)](https://safeskill.dev/scan/@lofder/dsers-mcp-product)
3
4
  [![Smithery](https://smithery.ai/badge/@dsersx/product-mcp)](https://smithery.ai/server/@dsersx/product-mcp)
4
5
  [![npm](https://img.shields.io/npm/v/@lofder/dsers-mcp-product)](https://www.npmjs.com/package/@lofder/dsers-mcp-product)
5
6
  [![MCP Registry](https://img.shields.io/badge/MCP_Registry-listed-blue)](https://registry.modelcontextprotocol.io/servers/io.github.lofder/dsers-mcp-product)
6
7
  [![Glama](https://glama.ai/mcp/servers/lofder/dsers-mcp-product/badges/score.svg)](https://glama.ai/mcp/servers/lofder/dsers-mcp-product)
7
8
 
8
- > An open-source MCP server to automate DSers product import, bulk edit variants, and push to Shopify or Wix using AI.
9
+ > An open-source MCP server to automate DSers product sourcing, import, bulk edit, and push to Shopify or Wix using AI.
9
10
 
10
11
  > [English](#english) | [中文](#中文)
11
12
 
@@ -15,9 +16,55 @@
15
16
 
16
17
  ## English
17
18
 
18
- **DSers MCP Product** is an open-source [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) server that lets AI Agents automate the entire DSers import workflow — from AliExpress / Alibaba / 1688 product URL to Shopify or Wix store listing. Bulk import, batch edit variants, clean AliExpress titles, apply pricing rules, and push to multiple stores — all with a single sentence to your AI agent.
19
+ **DSers MCP Product** is an open-source [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) server that lets AI Agents automate the entire DSers import workflow — from product sourcing to Shopify or Wix store listing. Search the DSers product pool, import from AliExpress / Alibaba / [Accio.com](https://www.accio.com/), bulk edit variants, apply pricing rules, and push to multiple stores — all with a single sentence to your AI agent.
19
20
 
20
- The server is hosted on [Vercel](https://dsers-mcp-product.vercel.app/api/mcp), published on [Smithery](https://smithery.ai/server/@dsersx/product-mcp), [npm](https://www.npmjs.com/package/@lofder/dsers-mcp-product), and the official [MCP Registry](https://registry.modelcontextprotocol.io/servers/io.github.lofder/dsers-mcp-product).
21
+ #### What can it do?
22
+
23
+ - **Product sourcing** — search the DSers product pool by keyword or image, find products to sell
24
+ - **One-click import** — paste a product link, your AI agent imports it into DSers automatically
25
+ - **Browse your catalog** — view your import staging list and products already pushed to stores
26
+ - **Clean up titles** — strips the messy keyword-stuffed AliExpress titles into something readable
27
+ - **Pricing rules** — markup multiplier (e.g. 2.5x), fixed markup (e.g. +$5), compare-at / sale prices
28
+ - **Batch import** — import multiple products at once with a list of URLs
29
+ - **Multi-store push** — push one product to all your connected Shopify & Wix stores in one go
30
+ - **Safety checks** — automatically blocks pushes that would result in below-cost pricing, zero price, or zero stock
31
+ - **SEO optimization** — let AI rewrite the title and description for better search rankings before pushing
32
+
33
+ The server is hosted on [Vercel](https://dsers-mcp-product.vercel.app/api/mcp) and published across multiple platforms:
34
+
35
+ ### Available On
36
+
37
+ | Platform | Link |
38
+ |----------|------|
39
+ | npm | [npmjs.com/package/@lofder/dsers-mcp-product](https://www.npmjs.com/package/@lofder/dsers-mcp-product) |
40
+ | MCP Registry (Official) | [registry.modelcontextprotocol.io](https://registry.modelcontextprotocol.io/servers/io.github.lofder/dsers-mcp-product) |
41
+ | Smithery | [smithery.ai/server/@dsersx/product-mcp](https://smithery.ai/server/@dsersx/product-mcp) |
42
+ | Glama.ai | [glama.ai/mcp/servers/lofder/dsers-mcp-product](https://glama.ai/mcp/servers/lofder/dsers-mcp-product) |
43
+ | mcp.so | [mcp.so/server/dsers-mcp-product](https://mcp.so/server/dsers-mcp-product) |
44
+ | mcpservers.org | [mcpservers.org](https://mcpservers.org) |
45
+ | MCP Marketplace | [mcp-marketplace.io](https://mcp-marketplace.io/server/io-github-lofder-dsers-mcp-product) |
46
+ | awesome-mcp-servers | [punkpeye/awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers) |
47
+ | Dev.to | [Article: I Built an MCP Server to Automate Dropshipping](https://dev.to/_95a3e57463e6442feacd0/i-built-an-mcp-server-to-automate-dropshipping-product-imports-3m5b) |
48
+ | Dev.to | [Tutorial: How to Automate AliExpress to Shopify with AI](https://dev.to/_95a3e57463e6442feacd0/how-to-automate-aliexpress-to-shopify-product-import-with-ai-step-by-step-guide-3f5a) |
49
+
50
+ ### Supported product sources
51
+
52
+ Works with product links from **AliExpress**, **Alibaba.com**, and **[Accio.com](https://www.accio.com/)**. Just give your AI agent a product link from any of these platforms, and it will import the product into DSers and push it to your store. (1688.com links are also recognized but require your DSers account to have 1688 source authorization enabled.)
53
+
54
+ ### Accio.com — AI-powered product sourcing
55
+
56
+ [Accio.com](https://www.accio.com/) is Alibaba's AI sourcing assistant. You describe what you're looking for (e.g. "wireless earbuds under $5"), and it searches AliExpress & Alibaba for you.
57
+
58
+ **How to use it with DSers MCP:**
59
+
60
+ 1. Go to [accio.com](https://www.accio.com/) and search for products in natural language.
61
+ 2. Browse the results. When you find a product you like, **click on it** to open the product detail panel.
62
+ 3. **Copy the URL** from your browser address bar — it will look something like:
63
+ `https://www.accio.com/c/xxx?productId=1005009871053792&ds=aliexpress.com`
64
+ 4. Give that link to your AI agent, e.g.: *"Import this product and push to my store: [paste URL]"*
65
+ 5. The agent handles the rest — no extra setup needed.
66
+
67
+ This works for both AliExpress and Alibaba products found on Accio.
21
68
 
22
69
  ### Documentation
23
70
 
@@ -26,33 +73,85 @@ The server is hosted on [Vercel](https://dsers-mcp-product.vercel.app/api/mcp),
26
73
  | [ARCHITECTURE.md](ARCHITECTURE.md) | Three-layer architecture, directory structure, data flow |
27
74
  | [USAGE.md](USAGE.md) | Installation, client config (Cursor, Claude Desktop), scenario examples |
28
75
  | [SKILL.md](SKILL.md) | AI agent instruction file — workflow, rules, push options, error handling |
29
- | [SKILL-CN.md](SKILL-CN.md) | Chinese human-readable guide for SKILL.md |
30
76
 
31
- ### Install via npm
77
+ ### What You Need
78
+
79
+ - A [DSers](https://www.dsers.com/) account (free plan works)
80
+ - A Shopify or Wix store already connected in DSers
81
+ - An MCP-compatible AI client — [Cursor](https://cursor.sh/), [Claude Desktop](https://claude.ai/desktop), [Windsurf](https://codeium.com/windsurf), or any client that supports MCP
82
+
83
+ ### Quick Start
84
+
85
+ **Step 1: Log in (one time — opens your browser)**
32
86
 
33
87
  ```bash
34
- npx @lofder/dsers-mcp-product
88
+ npx @lofder/dsers-mcp-product login
35
89
  ```
36
90
 
37
- Set environment variables `DSERS_EMAIL` and `DSERS_PASSWORD` before running, or add to your MCP client config:
91
+ A browser window opens to the official DSers login page. You log in on DSers's own website — your password **never** passes through this tool. After login, the session is encrypted and saved locally.
92
+
93
+ **Step 2: Add to your MCP client (no credentials needed)**
38
94
 
39
95
  ```json
40
96
  {
41
97
  "mcpServers": {
42
98
  "dsers-mcp-product": {
43
99
  "command": "npx",
44
- "args": ["-y", "@lofder/dsers-mcp-product"],
45
- "env": {
46
- "DSERS_EMAIL": "your-email",
47
- "DSERS_PASSWORD": "your-password"
48
- }
100
+ "args": ["-y", "@lofder/dsers-mcp-product"]
49
101
  }
50
102
  }
51
103
  }
52
104
  ```
53
105
 
106
+ That's it. No passwords in config files.
107
+
54
108
  Also listed on the official [MCP Registry](https://registry.modelcontextprotocol.io/servers/io.github.lofder/dsers-mcp-product).
55
109
 
110
+ ### Authentication — Zero-Password Login
111
+
112
+ Your DSers password **never touches this tool**. Here's how login works:
113
+
114
+ 1. You run `npx @lofder/dsers-mcp-product login`
115
+ 2. Your browser opens the official DSers login page
116
+ 3. You log in on DSers's own website, as usual
117
+ 4. The tool picks up your login session and encrypts it locally
118
+ 5. Done — from now on, the MCP server just works. No passwords in any config file.
119
+
120
+ Works with Chrome, Edge, Brave, and other Chromium browsers. On Mac, Safari works too.
121
+
122
+ **Sessions last about 6 hours.** When it expires, your AI agent will ask you to run `login` again — takes 10 seconds.
123
+
124
+ **Switching accounts?**
125
+
126
+ ```bash
127
+ npx @lofder/dsers-mcp-product logout
128
+ npx @lofder/dsers-mcp-product login
129
+ ```
130
+
131
+ > **For developers:** The server also accepts a `DSERS_TOKEN` env var for headless/CI environments. For most users, just use `login`.
132
+
133
+ ### Usage Examples
134
+
135
+ Once set up, just talk to your AI agent in plain language:
136
+
137
+ > "Import this product and push to my Shopify store as a draft: https://www.aliexpress.com/item/1005006372921430.html"
138
+
139
+ > "Import this product, mark up the price by 2.5x, and push it: https://www.aliexpress.com/item/1005006372921430.html"
140
+
141
+ > "Batch import these 3 products and push them all to my store: [URL1] [URL2] [URL3]"
142
+
143
+ > "Search for phone cases under $5 on the DSers product pool"
144
+
145
+ > "Show me what's in my import list"
146
+
147
+ > "What products have I pushed to my store?"
148
+
149
+ > "Push this product to all my connected stores"
150
+
151
+ > "Rewrite the title and description for SEO, then push to my store"
152
+
153
+ The agent figures out the right tools to call. You don't need to know tool names or parameters.
154
+
56
155
  ### Install via Smithery
57
156
 
58
157
  ```bash
@@ -64,21 +163,11 @@ Or browse at [smithery.ai/server/@dsersx/product-mcp](https://smithery.ai/server
64
163
  ### Install from Source
65
164
 
66
165
  ```bash
67
- # Clone
68
166
  git clone https://github.com/lofder/dsers-mcp-product.git
69
167
  cd dsers-mcp-product
70
-
71
- # Install
72
168
  npm install
73
-
74
- # Configure (copy and fill in your DSers credentials)
75
- cp .env.example .env
76
-
77
- # Type check
78
- npx tsc --noEmit
79
-
80
- # Run with Smithery dev
81
- npx @smithery/cli dev ./src/index.ts
169
+ npm run build
170
+ npm test
82
171
  ```
83
172
 
84
173
  ### Project Structure
@@ -86,71 +175,132 @@ npx @smithery/cli dev ./src/index.ts
86
175
  ```
87
176
  dsers-mcp-product/
88
177
  ├── src/
89
- │ ├── index.ts # MCP server entry — tool registration
90
- │ ├── service.ts # Import flow orchestration (7 operations)
91
- │ ├── provider.ts # DSers API adapter
178
+ │ ├── cli.ts # npx entry — stdio transport, login/logout
179
+ │ ├── index.ts # MCP server init, tool registration
180
+ │ ├── instructions.ts # Server-level prompts (agent instructions)
181
+ │ ├── tools.ts # 12 MCP tools — schema + handler
92
182
  │ ├── rules.ts # Rule validation & application engine
183
+ │ ├── push-guard.ts # Pre-push safety checks
93
184
  │ ├── push-options.ts # Push option normalization
94
- │ ├── resolver.ts # URL normalization (AliExpress/Alibaba/1688)
95
- │ ├── job-store.ts # File-based job persistence
96
- └── dsers/ # Low-level DSers API wrappers
97
- ├── config.ts # Configuration & environment
98
- ├── auth.ts # Login, session cache, auto-refresh
99
- ├── client.ts # Authenticated HTTP client
100
- ├── account.ts # Store & user management APIs
101
- ├── product.ts # Import list & push APIs
102
- └── settings.ts # Shipping, pricing, billing APIs
103
- ├── test/ # Smoke tests
104
- ├── smithery.yaml # Smithery runtime config
185
+ │ ├── resolver.ts # URL normalization (AliExpress/Alibaba/Accio)
186
+ │ ├── provider/ # DSers API adapter (split by concern)
187
+ │ ├── index.ts # Provider class + interface
188
+ ├── store.ts # Store discovery, platform detection
189
+ ├── import-ops.ts # Import, save draft, delete
190
+ ├── push.ts # Push execution, shipping logistics
191
+ ├── normalize.ts # Data normalization
192
+ │ └── helpers.ts # Shared utilities
193
+ ├── service/ # Business logic orchestration
194
+ │ │ ├── index.ts # ImportFlowService class
195
+ │ │ ├── import-flow.ts # Import workflows
196
+ │ │ ├── push-flow.ts # Push workflows
197
+ │ │ ├── preview.ts # Preview & visibility
198
+ │ │ ├── status.ts # Job status & deletion
199
+ │ │ ├── import-list.ts # Import list browsing (with enrich)
200
+ │ │ ├── my-products.ts # Pushed products browsing
201
+ │ │ └── find-product.ts # Product pool search
202
+ │ ├── dsers/ # Low-level DSers API wrappers
203
+ │ │ ├── config.ts # Configuration
204
+ │ │ ├── auth.ts # Session management
205
+ │ │ ├── client.ts # Authenticated HTTP client
206
+ │ │ ├── account.ts # Store & user APIs
207
+ │ │ ├── product.ts # Product & import APIs
208
+ │ │ └── settings.ts # Shipping, pricing, billing APIs
209
+ │ └── auth/ # Browser login (CDP)
210
+ ├── test/ # Vitest unit tests (298 tests)
105
211
  ├── package.json
106
- ├── tsconfig.json
107
- └── .env.example
212
+ └── tsconfig.json
108
213
  ```
109
214
 
110
- ### Seven Tools
215
+ ### Twelve Tools
111
216
 
112
- | # | Tool | Title | Description |
113
- |---|------|-------|-------------|
114
- | 1 | `dsers.store.discover` | DSers Store & Rule Discovery | Discover stores, shipping profiles, supported rules |
115
- | 2 | `dsers.rules.validate` | Pricing & Content Rule Validator | Dry-run rule validation |
116
- | 3 | `dsers.product.import` | AliExpress / Alibaba / 1688 Import | Import from URL(s), apply rules, get preview; re-apply mode via job_id |
117
- | 4 | `dsers.product.preview` | Import Draft Preview | Reload a saved preview |
118
- | 5 | `dsers.product.visibility` | Shopify / Wix Visibility Toggle | Toggle draft / published |
119
- | 6 | `dsers.store.push` | Push to Shopify / Wix Store | Push single/batch/multi-store |
120
- | 7 | `dsers.job.status` | Job Status Tracker | Check push result |
217
+ | # | Tool | What it does |
218
+ |---|------|-------------|
219
+ | 1 | `dsers_store_discover` | See your connected stores, shipping methods, pricing rules, and capabilities |
220
+ | 2 | `dsers_rules_validate` | Test your pricing or title rules before applying catches mistakes early |
221
+ | 3 | `dsers_product_import` | Paste a product URL, optionally apply pricing/title rules, and get a preview before pushing |
222
+ | 4 | `dsers_product_preview` | Review a product you already imported — title, price, variants, stock at a glance |
223
+ | 5 | `dsers_product_update_rules` | Edit pricing, content, images, or variant rules on an already-imported product (incremental merge — no re-import needed) |
224
+ | 6 | `dsers_product_visibility` | Set whether the product shows up in your store or stays as a hidden draft |
225
+ | 7 | `dsers_store_push` | Send products to your Shopify or Wix store — one at a time, in bulk, or to all stores at once |
226
+ | 8 | `dsers_job_status` | Check if a push finished and whether it succeeded |
227
+ | 9 | `dsers_product_delete` | Delete a product from the DSers import list (irreversible, requires confirmation) |
228
+ | 10 | `dsers_import_list` | Browse your import staging list with cost & sell price, stock, markup status |
229
+ | 11 | `dsers_my_products` | See products already pushed to a store, with supplier links for re-import |
230
+ | 12 | `dsers_find_product` | Search the DSers product pool by keyword or image — results link directly to import |
121
231
 
122
- All tools include MCP annotations (`readOnlyHint`, `destructiveHint`, `idempotentHint`, `openWorldHint`) and return structured error messages with `{Error, Cause, Action}` for AI agent consumption. `dsers.store.discover` also returns `account_info` with AliExpress authorization status and plan limits.
232
+ All tools return clear error messages so your AI agent knows what went wrong and what to do next.
123
233
 
124
- ### Four Prompts
234
+ ### Pre-Push Safety Checks
125
235
 
126
- Pre-built workflow templates that MCP clients can present to users:
236
+ Before pushing a product to your store, the tool automatically checks for common mistakes:
127
237
 
128
- | Prompt | Description |
129
- |--------|-------------|
130
- | `dsers.workflow.quick-import` | Import a single product and push to store as draft |
131
- | `dsers.workflow.bulk-import` | Batch import with pricing multiplier |
132
- | `dsers.workflow.multi-push` | Push one product to all connected stores |
133
- | `dsers.workflow.seo-optimize` | Import, AI-rewrite title & description for SEO, then push |
238
+ - **Hard blocks** (push won't go through): selling below supplier cost, zero sell price, all variants out of stock
239
+ - **Warnings** (push goes through, but you'll see a heads-up): profit margin below 10%, stock under 5 units, sell price under $1
134
240
 
135
- ### Credentials
241
+ If something looks wrong, your AI agent will tell you exactly which variant has the problem and why. If you're sure it's fine, you can override with `force_push`.
136
242
 
137
- The server supports two credential sources (checked in order):
243
+ ### Pricing Rule Conflict Detection
138
244
 
139
- 1. **HTTP headers** `x-dsers-email` / `x-dsers-password`used by Smithery and direct HTTP connections
140
- 2. **Environment variables** `DSERS_EMAIL` / `DSERS_PASSWORD` — used by local stdio (Cursor, Claude Desktop)
245
+ If your DSers store has its own **Pricing Rule** enabled (basic/standard/advanced), and you also set pricing rules through MCP, the push will be **blocked** not just warned. The agent will show two fix options:
141
246
 
142
- See [USAGE.md](USAGE.md) for setup details per connection method.
247
+ 1. Set `pricing_rule_behavior='apply_store_pricing_rule'` in push options to accept the store's pricing rule
248
+ 2. Disable the Pricing Rule in your DSers store settings to use MCP pricing instead
249
+
250
+ ### Four Prompts
251
+
252
+ Ready-made workflows your AI client can use directly:
253
+
254
+ | Prompt | Description |
255
+ |--------|-------------|
256
+ | `dsers_workflow_quick-import` | Import a single product and push to store as draft |
257
+ | `dsers_workflow_bulk-import` | Batch import with pricing multiplier |
258
+ | `dsers_workflow_multi-push` | Push one product to all connected stores |
259
+ | `dsers_workflow_seo-optimize` | Import, AI-rewrite title & description for SEO, then push |
143
260
 
144
261
  ### Environment Variables
145
262
 
146
263
  | Variable | Required | Description |
147
264
  |----------|----------|-------------|
148
- | `DSERS_EMAIL` | Yes* | DSers account email (*or provide via HTTP header) |
149
- | `DSERS_PASSWORD` | Yes* | DSers account password (*or provide via HTTP header) |
150
265
  | `DSERS_ENV` | No | `production` (default) or `test` |
151
266
  | `DSERS_BASE_URL` | No | Override API base URL |
152
267
  | `IMPORT_MCP_STATE_DIR` | No | Job state directory (default: `.state`) |
153
268
 
269
+ ### What's Next
270
+
271
+ - Product pool search enhancements (category filters, URL-based search, product detail view)
272
+ - Support more store platforms that DSers already connects to (eBay, Wish, etc.)
273
+ - Smarter pricing rule templates
274
+ - More granular inventory sync options
275
+
276
+ Got an idea or feature request? [Open an issue](https://github.com/lofder/dsers-mcp-product/issues) — contributions are very welcome.
277
+
278
+ ### FAQ
279
+
280
+ **What is DSers MCP Product?**
281
+ DSers MCP Product is a free, open-source MCP server that automates dropshipping product imports from AliExpress, Alibaba, and 1688 to Shopify and Wix stores using AI agents like Claude and Cursor. Instead of manually copying product data, you tell your AI agent what to do in plain English.
282
+
283
+ **How does it work?**
284
+ You type a command like "Import this product, mark up 2.5x, push to my store" in Cursor or Claude Desktop. The MCP server handles the entire workflow: fetching product data, applying pricing rules, editing variants, and pushing to your connected stores.
285
+
286
+ **Is it free?**
287
+ Yes. The tool is open-source (MIT license) and completely free to use. You only need a free DSers account and a Shopify or Wix store connected in DSers.
288
+
289
+ **Is it safe? Do I need to share my password?**
290
+ No passwords are stored or transmitted. Authentication uses a zero-password browser login — you log in on DSers's own website, and the tool picks up the session token. Your credentials never touch the MCP server. The project scored 92/100 on [SafeSkill](https://safeskill.dev/scan/@lofder/dsers-mcp-product) security scanning.
291
+
292
+ **What AI clients does it support?**
293
+ Cursor, Claude Desktop, Claude Code, Windsurf, and any MCP-compatible client that supports stdio transport.
294
+
295
+ **How is this different from AliDropify, AutoDS, or other dropshipping tools?**
296
+ Most dropshipping tools have their own UI and require you to click through web interfaces. DSers MCP Product takes a fundamentally different approach — it connects directly to your AI agent, so you automate workflows through conversation instead of clicking buttons. It's also open-source and free, with no subscription tiers.
297
+
298
+ **What product sources does it support?**
299
+ AliExpress, Alibaba.com, Accio.com (Alibaba's AI sourcing tool), and 1688 (requires DSers authorization).
300
+
301
+ **Can I push to multiple stores at once?**
302
+ Yes. The `dsers_store_push` tool supports pushing a single product to all your connected Shopify and Wix stores in one command, with per-store pricing and visibility options.
303
+
154
304
  ### Also Available
155
305
 
156
306
  A [Python version](https://github.com/lofder/dsers-mcp-product-py) is available for local stdio deployments.
@@ -165,9 +315,55 @@ MIT
165
315
 
166
316
  ## 中文
167
317
 
168
- **DSers MCP Product** 是一个开源的 [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) 服务器,让 AI Agent 自动完成 DSers 的整个商品导入流程 —— 从速卖通 / Alibaba / 1688 商品链接到 Shopify Wix 店铺上架。批量导入、批量编辑变体、清理速卖通标题、应用定价规则、推送到多个店铺 —— 只需一句话给你的 AI agent。
318
+ **DSers MCP Product** 是一个开源的 [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) 服务器,让 AI Agent 自动完成 DSers 的整个商品流程 —— 从选品搜索到 Shopify Wix 店铺上架。搜索 DSers 商品池、从速卖通 / Alibaba / [Accio.com](https://www.accio.com/) 导入商品、批量编辑变体、应用定价规则、推送到多个店铺 —— 只需一句话给你的 AI agent。
319
+
320
+ #### 能做什么?
321
+
322
+ - **选品搜索** — 在 DSers 商品池里按关键词或图片搜索,找到值得卖的商品
323
+ - **一句话导入** — 贴个商品链接,AI 助手自动导入到 DSers
324
+ - **浏览商品库** — 查看导入待推送列表和已上架商品,包含成本价、售价、加价状态
325
+ - **标题清理** — 把速卖通那些关键词堆砌的乱标题整理成人话
326
+ - **定价规则** — 加价倍率(比如 2.5 倍)、固定加价(比如 +5 美金)、划线价
327
+ - **批量导入** — 一次丢一堆链接,全部导入
328
+ - **多店铺推送** — 一个商品一次推到你所有的 Shopify 和 Wix 店铺
329
+ - **安全校验** — 推送前自动拦截低于成本价、零售价为零、库存为零的商品
330
+ - **SEO 优化** — 让 AI 重写标题和描述,提高搜索排名后再推送
331
+
332
+ 服务已托管在 [Vercel](https://dsers-mcp-product.vercel.app/api/mcp),并发布到多个平台:
333
+
334
+ ### 发布平台
335
+
336
+ | 平台 | 链接 |
337
+ |------|------|
338
+ | npm | [npmjs.com/package/@lofder/dsers-mcp-product](https://www.npmjs.com/package/@lofder/dsers-mcp-product) |
339
+ | MCP Registry(官方) | [registry.modelcontextprotocol.io](https://registry.modelcontextprotocol.io/servers/io.github.lofder/dsers-mcp-product) |
340
+ | Smithery | [smithery.ai/server/@dsersx/product-mcp](https://smithery.ai/server/@dsersx/product-mcp) |
341
+ | Glama.ai | [glama.ai/mcp/servers/lofder/dsers-mcp-product](https://glama.ai/mcp/servers/lofder/dsers-mcp-product) |
342
+ | mcp.so | [mcp.so/server/dsers-mcp-product](https://mcp.so/server/dsers-mcp-product) |
343
+ | mcpservers.org | [mcpservers.org](https://mcpservers.org) |
344
+ | MCP Marketplace | [mcp-marketplace.io](https://mcp-marketplace.io/server/io-github-lofder-dsers-mcp-product) |
345
+ | awesome-mcp-servers | [punkpeye/awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers) |
346
+ | Dev.to | [技术文章:I Built an MCP Server to Automate Dropshipping](https://dev.to/_95a3e57463e6442feacd0/i-built-an-mcp-server-to-automate-dropshipping-product-imports-3m5b) |
347
+ | Dev.to | [教程:How to Automate AliExpress to Shopify with AI](https://dev.to/_95a3e57463e6442feacd0/how-to-automate-aliexpress-to-shopify-product-import-with-ai-step-by-step-guide-3f5a) |
348
+
349
+ ### 支持的商品来源
350
+
351
+ 支持 **速卖通(AliExpress)**、**Alibaba.com** 和 **[Accio.com](https://www.accio.com/)** 的商品链接。把任意平台的商品链接丢给你的 AI 助手,它就能自动导入 DSers 并上架到你的店铺。(1688 链接也能识别,但需要你的 DSers 账号开通了 1688 来源权限。)
352
+
353
+ ### Accio.com — AI 智能找商
354
+
355
+ [Accio.com](https://www.accio.com/) 是阿里巴巴的 AI 选品助手。你用自然语言描述想找的商品(比如"5 美金以下的蓝牙耳机"),它会帮你在速卖通和阿里巴巴上搜索。
356
+
357
+ **怎么配合 DSers MCP 用:**
358
+
359
+ 1. 打开 [accio.com](https://www.accio.com/),用自然语言搜索你想要的商品。
360
+ 2. 在搜索结果里浏览,看到感兴趣的商品**点击进去**看详情。
361
+ 3. **复制浏览器地址栏的链接**,大概长这样:
362
+ `https://www.accio.com/c/xxx?productId=1005009871053792&ds=aliexpress.com`
363
+ 4. 把链接丢给你的 AI 助手,比如说:*"帮我导入这个商品并上架:[粘贴链接]"*
364
+ 5. 剩下的 AI 助手会自动搞定,不需要任何额外设置。
169
365
 
170
- 服务已托管在 [Vercel](https://dsers-mcp-product.vercel.app/api/mcp),并发布到 [Smithery](https://smithery.ai/server/@dsersx/product-mcp)、[npm](https://www.npmjs.com/package/@lofder/dsers-mcp-product) 和官方 [MCP Registry](https://registry.modelcontextprotocol.io/servers/io.github.lofder/dsers-mcp-product)。
366
+ Accio 上搜出来的速卖通和阿里巴巴商品都能用。
171
367
 
172
368
  ### 文档
173
369
 
@@ -176,33 +372,85 @@ MIT
176
372
  | [ARCHITECTURE.md](ARCHITECTURE.md) | 三层架构、目录结构、数据流 |
177
373
  | [USAGE.md](USAGE.md) | 安装、客户端配置(Cursor、Claude Desktop)、使用场景 |
178
374
  | [SKILL.md](SKILL.md) | AI agent 指令文件 — 工作流、规则、推送选项、错误处理 |
179
- | [SKILL-CN.md](SKILL-CN.md) | SKILL.md 的中文说明 |
180
375
 
181
- ### 通过 npm 安装
376
+ ### 使用前提
377
+
378
+ - 一个 [DSers](https://www.dsers.com/) 账号(免费版就行)
379
+ - Shopify 或 Wix 店铺已经在 DSers 里绑定好了
380
+ - 一个支持 MCP 的 AI 客户端 — [Cursor](https://cursor.sh/)、[Claude Desktop](https://claude.ai/desktop)、[Windsurf](https://codeium.com/windsurf) 或其他支持 MCP 的工具
381
+
382
+ ### 快速开始
383
+
384
+ **第 1 步:登录(一次性操作,会打开浏览器)**
182
385
 
183
386
  ```bash
184
- npx @lofder/dsers-mcp-product
387
+ npx @lofder/dsers-mcp-product login
185
388
  ```
186
389
 
187
- 运行前设置环境变量 `DSERS_EMAIL` `DSERS_PASSWORD`,或在 MCP 客户端配置中添加:
390
+ 浏览器会自动打开 DSers 官方登录页。你在 DSers 自己的网站上登录 —— 密码**完全不经过**本工具。登录后 session 加密保存到本地。
391
+
392
+ **第 2 步:添加到你的 MCP 客户端(不需要密码)**
188
393
 
189
394
  ```json
190
395
  {
191
396
  "mcpServers": {
192
397
  "dsers-mcp-product": {
193
398
  "command": "npx",
194
- "args": ["-y", "@lofder/dsers-mcp-product"],
195
- "env": {
196
- "DSERS_EMAIL": "your-email",
197
- "DSERS_PASSWORD": "your-password"
198
- }
399
+ "args": ["-y", "@lofder/dsers-mcp-product"]
199
400
  }
200
401
  }
201
402
  }
202
403
  ```
203
404
 
405
+ 搞定。配置文件里不需要任何密码。
406
+
204
407
  同时已收录到官方 [MCP Registry](https://registry.modelcontextprotocol.io/servers/io.github.lofder/dsers-mcp-product)。
205
408
 
409
+ ### 授权认证 — 零密码登录
410
+
411
+ 你的 DSers 密码**完全不经过本工具**。登录过程是这样的:
412
+
413
+ 1. 运行 `npx @lofder/dsers-mcp-product login`
414
+ 2. 浏览器自动打开 DSers 官方登录页
415
+ 3. 你在 DSers 网站上正常登录
416
+ 4. 工具拿到登录状态,加密存到本地
417
+ 5. 搞定 — 之后 MCP 直接能用,配置文件里不需要写任何密码
418
+
419
+ 支持 Chrome、Edge、Brave 等主流浏览器。Mac 上 Safari 也行。
420
+
421
+ **登录大约 6 小时有效。** 过期了 AI 助手会提醒你重新跑一下 `login`,10 秒的事。
422
+
423
+ **换账号?**
424
+
425
+ ```bash
426
+ npx @lofder/dsers-mcp-product logout
427
+ npx @lofder/dsers-mcp-product login
428
+ ```
429
+
430
+ > **开发者注:** headless / CI 环境也支持通过 `DSERS_TOKEN` 环境变量传入凭据。普通用户直接用 `login` 就行。
431
+
432
+ ### 使用示例
433
+
434
+ 装好之后,直接用自然语言跟 AI 助手说就行:
435
+
436
+ > "帮我导入这个商品,推到我的 Shopify 店铺草稿:https://www.aliexpress.com/item/1005006372921430.html"
437
+
438
+ > "导入这个商品,加价 2.5 倍,然后推送:https://www.aliexpress.com/item/1005006372921430.html"
439
+
440
+ > "批量导入这 3 个商品,全部推到店铺:[链接1] [链接2] [链接3]"
441
+
442
+ > "帮我搜一下 5 美金以下的手机壳"
443
+
444
+ > "看下我的导入列表里有什么"
445
+
446
+ > "我已经推送了哪些商品到店铺?"
447
+
448
+ > "把这个商品推到我所有店铺"
449
+
450
+ > "帮我把标题和描述重写一下做 SEO 优化,然后推送"
451
+
452
+ AI 助手会自己判断调用哪个工具,你不需要知道工具名称或参数。
453
+
206
454
  ### 通过 Smithery 安装
207
455
 
208
456
  ```bash
@@ -214,36 +462,47 @@ npx @smithery/cli mcp add @dsersx/product-mcp --client cursor
214
462
  ### 从源码安装
215
463
 
216
464
  ```bash
217
- # 克隆
218
465
  git clone https://github.com/lofder/dsers-mcp-product.git
219
466
  cd dsers-mcp-product
220
-
221
- # 安装
222
467
  npm install
468
+ npm run build
469
+ npm test
470
+ ```
223
471
 
224
- # 配置(复制并填写你的 DSers 账户信息)
225
- cp .env.example .env
472
+ ### 十二个工具
226
473
 
227
- # 类型检查
228
- npx tsc --noEmit
474
+ | # | 工具 | 干什么的 |
475
+ |---|------|---------|
476
+ | 1 | `dsers_store_discover` | 查看你绑定了哪些店铺、有哪些配送方式、定价规则、能用什么规则 |
477
+ | 2 | `dsers_rules_validate` | 先试试定价或标题规则对不对,不会真改东西 |
478
+ | 3 | `dsers_product_import` | 贴个商品链接,可以顺便加定价/标题规则,推送前先给你看预览 |
479
+ | 4 | `dsers_product_preview` | 看一下已经导入的商品 — 标题、价格、变体、库存一目了然 |
480
+ | 5 | `dsers_product_update_rules` | 对已导入的商品修改定价、标题、图片或变体规则(增量合并,不需要重新导入) |
481
+ | 6 | `dsers_product_visibility` | 设置商品在店铺里是上架展示还是隐藏草稿 |
482
+ | 7 | `dsers_store_push` | 把商品推到你的 Shopify 或 Wix 店铺 — 单个推、批量推、或一次推到所有店铺 |
483
+ | 8 | `dsers_job_status` | 看看推送完了没、成功了没 |
484
+ | 9 | `dsers_product_delete` | 从 DSers 导入列表中删除商品(不可恢复,需确认) |
485
+ | 10 | `dsers_import_list` | 浏览导入待推送列表,含成本价、售价、库存、加价状态 |
486
+ | 11 | `dsers_my_products` | 查看已推到店铺的商品,带供应商链接方便重新导入 |
487
+ | 12 | `dsers_find_product` | 在 DSers 商品池搜索,支持关键词和以图搜图,结果可直接导入 |
229
488
 
230
- # 开发运行
231
- npx @smithery/cli dev ./src/index.ts
232
- ```
489
+ 报错时会返回清晰的消息,AI 助手能看懂出了什么问题、该怎么办。
490
+
491
+ ### 推送前安全校验
233
492
 
234
- ### 七个工具
493
+ 推送到店铺之前,工具会自动帮你检查常见问题:
235
494
 
236
- | # | 工具 | 标题 | 说明 |
237
- |---|------|------|------|
238
- | 1 | `dsers.store.discover` | 店铺与规则发现 | 查询店铺、配送方案、支持的规则 |
239
- | 2 | `dsers.rules.validate` | 定价与内容规则校验 | 规则校验试运行 |
240
- | 3 | `dsers.product.import` | 速卖通/Alibaba/1688 导入 | 从 URL 导入、应用规则、获取预览;支持 re-apply 模式 |
241
- | 4 | `dsers.product.preview` | 导入草稿预览 | 重新加载已保存的预览 |
242
- | 5 | `dsers.product.visibility` | Shopify/Wix 可见性切换 | 切换草稿 / 上架 |
243
- | 6 | `dsers.store.push` | 推送到 Shopify/Wix | 单条/批量/多店铺推送 |
244
- | 7 | `dsers.job.status` | 任务状态跟踪 | 查看推送结果 |
495
+ - **直接拦截**(不让推):售价低于进货成本、零售价为 0、所有变体都没库存
496
+ - **警告提醒**(能推,但会提示你):利润率低于 10%、库存少于 5 件、售价低于 1 美金
245
497
 
246
- 所有工具均包含 MCP 注解(`readOnlyHint`、`destructiveHint`、`idempotentHint`、`openWorldHint`),错误返回结构化格式 `{Error, Cause, Action}`,方便 AI agent 理解和处理。
498
+ 有问题的话,AI 助手会告诉你具体是哪个变体出了什么问题。确定没问题的话可以用 `force_push` 强制推送。
499
+
500
+ ### 定价规则冲突检测
501
+
502
+ 如果你的 DSers 店铺自己启用了**定价规则**(基础/标准/高级),同时你又通过 MCP 设置了定价规则,推送会被**直接拦截**而不是仅警告。AI 助手会给出两个解决方案:
503
+
504
+ 1. 在推送选项中设置 `pricing_rule_behavior='apply_store_pricing_rule'` 接受店铺端的定价规则
505
+ 2. 在 DSers 店铺设置中关闭定价规则,使用 MCP 的定价
247
506
 
248
507
  ### 四个预设提示
249
508
 
@@ -251,10 +510,42 @@ MCP 客户端可直接展示给用户的工作流模板:
251
510
 
252
511
  | 提示 | 说明 |
253
512
  |------|------|
254
- | `dsers.workflow.quick-import` | 一键导入单个商品并推送为草稿 |
255
- | `dsers.workflow.bulk-import` | 批量导入 + 统一定价倍率 |
256
- | `dsers.workflow.multi-push` | 一个商品推送到所有店铺 |
257
- | `dsers.workflow.seo-optimize` | 导入后 AI 重写标题和描述做 SEO 优化,再推送 |
513
+ | `dsers_workflow_quick-import` | 一键导入单个商品并推送为草稿 |
514
+ | `dsers_workflow_bulk-import` | 批量导入 + 统一定价倍率 |
515
+ | `dsers_workflow_multi-push` | 一个商品推送到所有店铺 |
516
+ | `dsers_workflow_seo-optimize` | 导入后 AI 重写标题和描述做 SEO 优化,再推送 |
517
+
518
+ ### 后续计划
519
+
520
+ - 商品池搜索增强(分类过滤、URL 搜索、商品详情查看)
521
+ - 支持更多 DSers 已接入的店铺平台(eBay、Wish 等)
522
+ - 更智能的定价规则模板
523
+ - 更精细的库存同步选项
524
+
525
+ 有想法或需求?欢迎 [提 issue](https://github.com/lofder/dsers-mcp-product/issues) —— 非常欢迎其他开发者的建议和贡献。
526
+
527
+ ### 常见问题
528
+
529
+ **DSers MCP Product 是什么?**
530
+ 一个免费开源的 MCP 服务器,让 AI Agent(如 Claude、Cursor)自动完成从速卖通/Alibaba/1688 到 Shopify/Wix 店铺的商品导入全流程。不用手动复制商品数据,用自然语言对话就能操作。
531
+
532
+ **怎么用?**
533
+ 在 Cursor 或 Claude Desktop 里输入"导入这个商品,加价 2.5 倍,推送到我的店铺",MCP 服务器自动完成抓取商品数据、应用定价规则、编辑变体、推送到店铺的全部流程。
534
+
535
+ **收费吗?**
536
+ 完全免费。项目开源(MIT 协议),你只需要一个免费的 DSers 账号和已连接的 Shopify 或 Wix 店铺。
537
+
538
+ **安全吗?需要提供密码吗?**
539
+ 不需要。登录采用零密码浏览器认证——你在 DSers 官网登录,工具只接收会话令牌,密码永远不会经过 MCP 服务器。项目在 [SafeSkill](https://safeskill.dev/scan/@lofder/dsers-mcp-product) 安全扫描中获得 92/100 分。
540
+
541
+ **支持哪些 AI 客户端?**
542
+ Cursor、Claude Desktop、Claude Code、Windsurf,以及任何支持 stdio 传输的 MCP 兼容客户端。
543
+
544
+ **和 AliDropify、AutoDS 等 Dropshipping 工具有什么区别?**
545
+ 大多数 Dropshipping 工具有自己的界面,需要点来点去。DSers MCP Product 完全不同——它直接连接你的 AI Agent,用对话代替点击来自动化工作流。而且完全开源免费,没有订阅分级。
546
+
547
+ **能同时推送到多个店铺吗?**
548
+ 可以。`dsers_store_push` 支持一条命令将商品推送到所有已连接的 Shopify 和 Wix 店铺,支持按店铺设置不同的定价和可见性。
258
549
 
259
550
  ### 其他版本
260
551
 
@@ -0,0 +1,6 @@
1
+ export interface BrowserMatch {
2
+ name: string;
3
+ path: string;
4
+ }
5
+ export declare function findChromiumBrowser(): BrowserMatch | null;
6
+ //# sourceMappingURL=browser-finder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-finder.d.ts","sourceRoot":"","sources":["../../src/auth/browser-finder.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AA8FD,wBAAgB,mBAAmB,IAAI,YAAY,GAAG,IAAI,CAMzD"}