Content
# Tool List
[](https://smithery.ai/server/@dsersx/product-mcp)
[](https://www.npmjs.com/package/@lofder/dsers-mcp-product)
[](https://registry.modelcontextprotocol.io/servers/io.github.lofder/dsers-mcp-product)
[](https://glama.ai/mcp/servers/lofder/dsers-mcp-product)
> An open-source MCP server to automate DSers product import, bulk edit variants, and push to Shopify or Wix using AI.
## English
> **⚠️ Rapid iteration phase:** I only have limited DSers accounts and stores to test with, so it's hard to cover every edge case. I'm testing as many scenarios as I can, fixing issues as I find them — though fixes sometimes introduce new ones. Releases will be very frequent during this period. Please always use the latest version, and I'd really appreciate it if you could [help me test](https://github.com/lofder/dsers-mcp-product/issues)!
**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 / [Accio.com](https://www.accio.com/) 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.
#### What can it do?
- **One-click import** — paste a product link, your AI agent imports it into DSers automatically
- **Clean up titles** — strips the messy keyword-stuffed AliExpress titles into something readable
- **Pricing rules** — markup multiplier (e.g. 2.5x), fixed markup (e.g. +$5), compare-at / sale prices
- **Batch import** — import multiple products at once with a list of URLs
- **Multi-store push** — push one product to all your connected Shopify & Wix stores in one go
- **Safety checks** — automatically blocks pushes that would result in below-cost pricing, zero price, or zero stock
- **SEO optimization** — let AI rewrite the title and description for better search rankings before pushing
The server is hosted on [Vercel](https://dsers-mcp-product.vercel.app/api/mcp) and published across multiple platforms:
### Available On
| Platform | Link |
|----------|------|
| npm | [npmjs.com/package/@lofder/dsers-mcp-product](https://www.npmjs.com/package/@lofder/dsers-mcp-product) |
| MCP Registry (Official) | [registry.modelcontextprotocol.io](https://registry.modelcontextprotocol.io/servers/io.github.lofder/dsers-mcp-product) |
| Smithery | [smithery.ai/server/@dsersx/product-mcp](https://smithery.ai/server/@dsersx/product-mcp) |
| Glama.ai | [glama.ai/mcp/servers/lofder/dsers-mcp-product](https://glama.ai/mcp/servers/lofder/dsers-mcp-product) |
| mcp.so | [mcp.so/server/dsers-mcp-product](https://mcp.so/server/dsers-mcp-product) |
| mcpservers.org | [mcpservers.org](https://mcpservers.org) |
| MCP Marketplace | [mcp-marketplace.io](https://mcp-marketplace.io/server/io-github-lofder-dsers-mcp-product) |
| awesome-mcp-servers | [punkpeye/awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers) |
| 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) |
### Supported product sources
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.)
### Accio.com — AI-powered product sourcing
[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.
**How to use it with DSers MCP:**
1. Go to [accio.com](https://www.accio.com/) and search for products in natural language.
2. Browse the results. When you find a product you like, **click on it** to open the product detail panel.
3. **Copy the URL** from your browser address bar — it will look something like:
`https://www.accio.com/c/xxx?productId=1005009871053792&ds=aliexpress.com`
4. Give that link to your AI agent, e.g.: *"Import this product and push to my store: [paste URL]"*
5. The agent handles the rest — no extra setup needed.
This works for both AliExpress and Alibaba products found on Accio.
### Documentation
| Document | Description |
|----------|-------------|
| [ARCHITECTURE.md](ARCHITECTURE.md) | Three-layer architecture, directory structure, data flow |
| [USAGE.md](USAGE.md) | Installation, client config (Cursor, Claude Desktop), scenario examples |
| [SKILL.md](SKILL.md) | AI agent instruction file — workflow, rules, push options, error handling |
| [SKILL-CN.md](SKILL.md) | Guide for SKILL.md |
### What You Need
- A [DSers](https://www.dsers.com/) account (free plan works)
- A Shopify or Wix store already connected in DSers
- 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
### Quick Start
**Step 1: Log in (one time — opens your browser)**
```bash
npx @lofder/dsers-mcp-product login
```
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.
**Step 2: Add to your MCP client (no credentials needed)**
```json
{
"mcpServers": {
"dsers-mcp-product": {
"command": "npx",
"args": ["-y", "@lofder/dsers-mcp-product"]
}
}
}
```
That's it. No passwords in config files.
Also listed on the official [MCP Registry](https://registry.modelcontextprotocol.io/servers/io.github.lofder/dsers-mcp-product).
### Authentication — Zero-Password Login
Your DSers password **never touches this tool**. Here's how login works:
1. You run `npx @lofder/dsers-mcp-product login`
2. Your browser opens the official DSers login page
3. You log in on DSers's own website, as usual
4. The tool picks up your login session and encrypts it locally
5. Done — from now on, the MCP server just works. No passwords in any config file.
Works with Chrome, Edge, Brave, and other Chromium browsers. On Mac, Safari works too.
**Sessions last about 6 hours.** When it expires, your AI agent will ask you to run `login` again — takes 10 seconds.
**Switching accounts?**
```bash
npx @lofder/dsers-mcp-product logout
npx @lofder/dsers-mcp-product login
```
> **For developers:** The server also accepts a `DSERS_TOKEN` env var for headless/CI environments. For most users, just use `login`.
### Usage Examples
Once set up, just talk to your AI agent in plain language:
> "Import this product and push to my Shopify store as a draft: https://www.aliexpress.com/item/1005006372921430.html"
> "Import this product, mark up the price by 2.5x, and push it: https://www.aliexpress.com/item/1005006372921430.html"
> "Batch import these 3 products and push them all to my store: [URL1] [URL2] [URL3]"
> "Push this product to all my connected stores"
> "Rewrite the title and description for SEO, then push to my store"
The agent figures out the right tools to call. You don't need to know tool names or parameters.
### Install via Smithery
```bash
npx @smithery/cli mcp add @dsersx/product-mcp --client cursor
```
Or browse at [smithery.ai/server/@dsersx/product-mcp](https://smithery.ai/server/@dsersx/product-mcp).
### Install from Source
```bash
# Clone
git clone https://github.com/lofder/dsers-mcp-product.git
cd dsers-mcp-product
# Install
npm install
# Configure (copy and fill in your DSers credentials)
cp .env.example .env
# Type check
npx tsc --noEmit
# Run with Smithery dev
npx @smithery/cli dev ./src/index.ts
```
### Project Structure
```
dsers-mcp-product/
├── src/
│ ├── index.ts # MCP server entry — tool registration
│ ├── service.ts # Import flow orchestration (7 operations)
│ ├── provider.ts # DSers API adapter
│ ├── rules.ts # Rule validation & application engine
│ ├── push-options.ts # Push option normalization
│ ├── resolver.ts # URL normalization (AliExpress/Alibaba/Accio)
│ ├── job-store.ts # File-based job persistence
│ └── dsers/ # Low-level DSers API wrappers
│ ├── config.ts # Configuration & environment
│ ├── auth.ts # Login, session cache, auto-refresh
│ ├── client.ts # Authenticated HTTP client
│ ├── account.ts # Store & user management APIs
│ ├── product.ts # Import list & push APIs
│ └── settings.ts # Shipping, pricing, billing APIs
├── test/ # Smoke tests
├── smithery.yaml # Smithery runtime config
├── package.json
├── tsconfig.json
└── .env.example
```
### Nine Tools
| # | Tool | What it does |
|---|------|-------------|
| 1 | `dsers_store_discover` | See your connected stores, available shipping methods, pricing rules, and what rules you can apply |
| 2 | `dsers_rules_validate` | Test your pricing or title rules before applying — catches mistakes early |
| 3 | `dsers_product_import` | Paste a product URL, optionally apply pricing/title rules, and get a preview before pushing |
| 4 | `dsers_product_preview` | Review a product you already imported — title, price, variants, stock at a glance |
| 5 | `dsers_product_update_rules` | Edit pricing, content, images, or variant rules on an already-imported product (incremental merge — no re-import needed) |
| 6 | `dsers_product_visibility` | Set whether the product shows up in your store or stays as a hidden draft |
| 7 | `dsers_store_push` | Send products to your Shopify or Wix store — one at a time, in bulk, or to all stores at once |
| 8 | `dsers_job_status` | Check if a push finished and whether it succeeded |
| 9 | `dsers_product_delete` | Delete a product from the DSers import list (irreversible, requires confirmation) |
All tools return clear error messages so your AI agent knows what went wrong and what to do next — no cryptic error codes.
### Pre-Push Safety Checks
Before pushing a product to your store, the tool automatically checks for common mistakes:
- **Hard blocks** (push won't go through): selling below supplier cost, zero sell price, all variants out of stock
- **Warnings** (push goes through, but you'll see a heads-up): profit margin below 10%, stock under 5 units, sell price under $1
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`.
### Pricing Rule Conflict Detection
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:
1. Set `pricing_rule_behavior='apply_store_pricing_rule'` in push options to accept the store's pricing rule
2. Disable the Pricing Rule in your DSers store settings to use MCP pricing instead
### Four Prompts
Ready-made workflows your AI client can use directly:
| Prompt | Description |
|--------|-------------|
| `dsers_workflow_quick-import` | Import a single product and push to store as draft |
| `dsers_workflow_bulk-import` | Batch import with pricing multiplier |
| `dsers_workflow_multi-push` | Push one product to all connected stores |
| `dsers_workflow_seo-optimize` | Import, AI-rewrite title & description for SEO, then push |
### Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| `DSERS_ENV` | No | `production` (default) or `test` |
| `DSERS_BASE_URL` | No | Override API base URL |
| `IMPORT_MCP_STATE_DIR` | No | Job state directory (default: `.state`) |
### What's Next
- Support more store platforms that DSers already connects to (eBay, Wish, etc.)
- Smarter pricing rule templates
- More granular inventory sync options
Got an idea or feature request? [Open an issue](https://github.com/lofder/dsers-mcp-product/issues) — suggestions and contributions from other developers are very welcome.
### Also Available
A [Python version](https://github.com/lofder/dsers-mcp-product-py) is available for local stdio deployments.
### License
MIT
### Installation via Smithery
```bash
npx @smithery/cli mcp add @dsersx/product-mcp --client cursor
```
or browse and install at [smithery.ai/server/@dsersx/product-mcp](https://smithery.ai/server/@dsersx/product-mcp).
### Installation from Source
```bash
# Clone
git clone https://github.com/lofder/dsers-mcp-product.git
cd dsers-mcp-product
# Install
npm install
# Configure (copy and fill in your DSers account information)
cp .env.example .env
# Type checking
npx tsc --noEmit
# Development run
npx @smithery/cli dev ./src/index.ts
```
### Nine Tools
| # | Tool | What it does |
|---|------|---------|
| 1 | `dsers_store_discover` | View your bound stores, shipping methods, pricing rules, and applicable rules |
| 2 | `dsers_rules_validate` | Try out pricing or title rules without actually changing anything |
| 3 | `dsers_product_import` | Paste a product link, add pricing/title rules, and preview before pushing |
| 4 | `dsers_product_preview` | View already imported products - title, price, variants, and inventory at a glance |
| 5 | `dsers_product_update_rules` | Modify pricing, title, image, or variant rules for already imported products (incremental merge, no need to re-import) |
| 6 | `dsers_product_visibility` | Set product visibility in stores - show or hide |
| 7 | `dsers_store_push` | Push products to your Shopify or Wix store - single, batch, or all stores |
| 8 | `dsers_job_status` | Check push status and success |
| 9 | `dsers_product_delete` | Delete products from DSers import list (irreversible, requires confirmation) |
Error messages are clear, and AI assistants understand what went wrong and what to do - no cryptic error codes.
### Pre-Push Safety Checks
Before pushing to stores, tools automatically check for common issues:
- **Direct blocking** (prevent push): selling price lower than cost, retail price 0, no inventory for all variants
- **Warning reminders** (can push, but prompts): profit margin < 10%, inventory < 5, selling price < $1
If issues arise, AI assistants specify which variant has problems. If no issues, use `force_push` to force push.
### Pricing Rule Conflict Detection
If your DSers store has **pricing rules** (basic/standard/advanced) enabled, and you also set pricing rules via MCP, pushes will be **directly blocked** instead of just warned. AI assistants offer two solutions:
1. Set `pricing_rule_behavior='apply_store_pricing_rule'` in push options to accept store pricing rules
2. Disable pricing rules in DSers store settings and use MCP pricing
### Four Preset Prompts
MCP clients can directly show workflow templates to users:
| Prompt | Description |
|------|------|
| `dsers_workflow_quick-import` | One-click import single product and push as draft |
| `dsers_workflow_bulk-import` | Bulk import + uniform pricing multiplier |
| `dsers_workflow_multi-push` | Push one product to all stores |
| `dsers_workflow_seo-optimize` | Import, AI rewrite title and description for SEO optimization, then push |
### Future Plans
- Support more DSers connected store platforms (eBay, Wish, etc.)
- Smarter pricing rule templates
- Finer inventory sync options
Have ideas or requests? Welcome to [submit issues](https://github.com/lofder/dsers-mcp-product/issues) - very welcome to suggestions and contributions from other developers.
### Other Versions
Also available in [Python version](https://github.com/lofder/dsers-mcp-product-py) for local stdio deployment.
### License
MIT
MCP Config
Below is the configuration for this MCP Server. You can copy it directly to Cursor or other MCP clients.
mcp.json
Connection Info
You Might Also Like
No recommendations available