{"_id":"@akacoder404/dsers-mcp","_rev":"2-713f1c19a244e069125886f9ac32a414","name":"@akacoder404/dsers-mcp","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@akacoder404/dsers-mcp","version":"1.0.0","keywords":["mcp","mcp-server","model-context-protocol","dsers","shopify","aliexpress","dropshipping","product-import","ai-agent","bulk-import","wix","woocommerce"],"license":"MIT","_id":"@akacoder404/dsers-mcp@1.0.0","maintainers":[{"name":"akacoder404","email":"thegeorgeyli@gmail.com"}],"homepage":"https://github.com/akacoder404/dsers-mcp#readme","bugs":{"url":"https://github.com/akacoder404/dsers-mcp/issues"},"bin":{"dsers-mcp":"dist/cli.js"},"dist":{"shasum":"99f5930683d42fba566b1d875b4defe1b41c135a","tarball":"https://registry.npmjs.org/@akacoder404/dsers-mcp/-/dsers-mcp-1.0.0.tgz","fileCount":108,"integrity":"sha512-/hsUJzIAbO/eRcNY8HoS626xAcNvDR0b8l4+lAEcszFUgxvmosfkyngw6jWh1BzJFOoL5c4K2VZSTAMXo+BlDQ==","signatures":[{"sig":"MEYCIQDspduhyXb1rNZu3841ygqrjHv7oRKItz76ByR11YXepwIhAMvfU1UEZdxJsb5bVG3/D0kpBcWyW7Ejghffl6WkHerW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":697439},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"gitHead":"aa29d7f6780dc7faaef540c7c1d43edb834c3a2a","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","test:watch":"vitest"},"_npmUser":{"name":"akacoder404","email":"thegeorgeyli@gmail.com"},"repository":{"url":"git+https://github.com/akacoder404/dsers-mcp.git","type":"git"},"_npmVersion":"11.12.1","description":"MCP server to automate DSers product import from AliExpress/Alibaba/Accio to Shopify & Wix","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^4.0.0","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^4.1.2","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dsers-mcp_1.0.0_1776764734429_0.23266223355957116","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@akacoder404/dsers-mcp","version":"1.1.0","type":"module","description":"MCP server to automate DSers product import from AliExpress/Alibaba/Accio to Shopify & Wix","main":"dist/index.js","bin":{"dsers-mcp":"dist/cli.js"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/akacoder404/dsers-mcp.git"},"keywords":["mcp","mcp-server","model-context-protocol","dsers","shopify","aliexpress","dropshipping","product-import","ai-agent","bulk-import","wix","woocommerce"],"scripts":{"build":"tsc -p tsconfig.build.json","test":"vitest run","test:watch":"vitest"},"dependencies":{"@modelcontextprotocol/sdk":"^1.26.0","zod":"^4.0.0"},"devDependencies":{"@types/node":"^22.0.0","tsx":"^4.19.0","typescript":"^5.7.0","vitest":"^4.1.2"},"engines":{"node":">=22.0.0"},"_id":"@akacoder404/dsers-mcp@1.1.0","gitHead":"4695d353b99cfdb8e136eca7ef823848f123e9a7","types":"./dist/index.d.ts","bugs":{"url":"https://github.com/akacoder404/dsers-mcp/issues"},"homepage":"https://github.com/akacoder404/dsers-mcp#readme","_nodeVersion":"22.15.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-d2B+5grfgPlEzKs7eYfRIc3Efc047tiSUmMmT9rFVBckUG1Kerido0MgmXNTK0JXOANd9xL08VFRbP7NRXsQQA==","shasum":"f8847a911821ed45997c54210b58e52abf51f7b6","tarball":"https://registry.npmjs.org/@akacoder404/dsers-mcp/-/dsers-mcp-1.1.0.tgz","fileCount":108,"unpackedSize":749279,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDEJICOUKkR1azLPIaWIm39VgWB1WeCk1buLUORsewfKAIgIVX18p8f89W57fKS0ZSs41hbq3jTtZLJzz8dMM9Oj6k="}]},"_npmUser":{"name":"akacoder404","email":"thegeorgeyli@gmail.com"},"directories":{},"maintainers":[{"name":"akacoder404","email":"thegeorgeyli@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsers-mcp_1.1.0_1776830777635_0.2508985061874398"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-21T09:45:34.334Z","modified":"2026-04-22T04:06:17.900Z","1.0.0":"2026-04-21T09:45:34.616Z","1.1.0":"2026-04-22T04:06:17.793Z"},"bugs":{"url":"https://github.com/akacoder404/dsers-mcp/issues"},"license":"MIT","homepage":"https://github.com/akacoder404/dsers-mcp#readme","keywords":["mcp","mcp-server","model-context-protocol","dsers","shopify","aliexpress","dropshipping","product-import","ai-agent","bulk-import","wix","woocommerce"],"repository":{"type":"git","url":"git+https://github.com/akacoder404/dsers-mcp.git"},"description":"MCP server to automate DSers product import from AliExpress/Alibaba/Accio to Shopify & Wix","maintainers":[{"name":"akacoder404","email":"thegeorgeyli@gmail.com"}],"readme":"# DSers MCP — Automate Dropshipping AI tools/AliExpress to Shopify & Wix Import\n\n[![npm](https://img.shields.io/npm/v/@akacoder404/dsers-mcp)](https://www.npmjs.com/package/@akacoder404/dsers-mcp)\n\n> An open-source MCP server to automate DSers product import, bulk edit variants, and push to Shopify or Wix using AI.\n\n> [中文文档](README-ZH.md)\n\n**DSers MCP** 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.\n\n#### What can it do?\n\n- **One-click import** — paste a product link, your AI agent imports it into DSers automatically\n- **Clean up titles** — strips the messy keyword-stuffed AliExpress titles into something readable\n- **Pricing rules** — markup multiplier (e.g. 2.5x), fixed markup (e.g. +$5), compare-at / sale prices\n- **Batch import** — import multiple products at once with a list of URLs\n- **Multi-store push** — push one product to all your connected Shopify & Wix stores in one go\n- **Order tracking** — list and filter your DSers orders by status (pending, awaiting shipment, fulfilled, etc.)\n- **Safety checks** — automatically blocks pushes that would result in below-cost pricing, zero price, or zero stock\n- **SEO optimization** — let AI rewrite the title and description for better search rankings before pushing\n\n### Supported product sources\n\nWorks 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.)\n\n### Accio.com — AI-powered product sourcing\n\n[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.\n\n**How to use it with DSers MCP:**\n\n1. Go to [accio.com](https://www.accio.com/) and search for products in natural language.\n2. Browse the results. When you find a product you like, **click on it** to open the product detail panel.\n3. **Copy the URL** from your browser address bar — it will look something like:\n   `https://www.accio.com/c/xxx?productId=1005009871053792&ds=aliexpress.com`\n4. Give that link to your AI agent, e.g.: *\"Import this product and push to my store: [paste URL]\"*\n5. The agent handles the rest — no extra setup needed.\n\nThis works for both AliExpress and Alibaba products found on Accio.\n\n### What You Need\n\n- A [DSers](https://www.dsers.com/) account (free plan works)\n- A Shopify or Wix store already connected in DSers\n- 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\n\n### Quick Start\n\n**Step 1: Log in (one time — opens your browser)**\n\n```bash\nnpx @akacoder404/dsers-mcp login\n```\n\nA 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.\n\n**Step 2: Add to your MCP client (no credentials needed)**\n\n```json\n{\n  \"mcpServers\": {\n    \"dsers-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@akacoder404/dsers-mcp\"]\n    }\n  }\n}\n```\n\nThat's it. No passwords in config files.\n\n### Authentication — Zero-Password Login\n\nYour DSers password **never touches this tool**. Here's how login works:\n\n1. You run `npx @akacoder404/dsers-mcp login`\n2. Your browser opens the official DSers login page\n3. You log in on DSers's own website, as usual\n4. The tool picks up your login session and encrypts it locally\n5. Done — from now on, the MCP server just works. No passwords in any config file.\n\nWorks with Chrome, Edge, Brave, and other Chromium browsers. On Mac, Safari works too.\n\n**Sessions last about 6 hours.** When it expires, your AI agent will ask you to run `login` again — takes 10 seconds.\n\n**Switching accounts?**\n\n```bash\nnpx @akacoder404/dsers-mcp logout\nnpx @akacoder404/dsers-mcp login\n```\n\n> **For developers:** The server also accepts a `DSERS_TOKEN` env var for headless/CI environments. For most users, just use `login`.\n\n### Usage Examples\n\nOnce set up, just talk to your AI agent in plain language:\n\n> \"Import this product and push to my Shopify store as a draft: https://www.aliexpress.com/item/1005006372921430.html\"\n\n> \"Import this product, mark up the price by 2.5x, and push it: https://www.aliexpress.com/item/1005006372921430.html\"\n\n> \"Batch import these 3 products and push them all to my store: [URL1] [URL2] [URL3]\"\n\n> \"Push this product to all my connected stores\"\n\n> \"Rewrite the title and description for SEO, then push to my store\"\n\nThe agent figures out the right tools to call. You don't need to know tool names or parameters.\n\n### Install from Source\n\n```bash\n# Clone\ngit clone https://github.com/akacoder404/dsers-mcp.git\ncd dsers-mcp\n\n# Install\nnpm install\n\n# Type check\nnpx tsc --noEmit\n\n# Run tests\nnpm test\n```\n\n### Project Structure\n\n```\ndsers-mcp/\n├── src/\n│   ├── index.ts              # MCP server entry — tool registration\n│   ├── cli.ts                # CLI entrypoint (login, logout, stdio server)\n│   ├── service.ts            # Import flow orchestration\n│   ├── provider.ts           # DSers API adapter\n│   ├── rules.ts              # Rule validation & application engine\n│   ├── push-options.ts       # Push option normalization\n│   ├── resolver.ts           # URL normalization (AliExpress/Alibaba/Accio)\n│   ├── job-store.ts          # File-based job persistence\n│   └── dsers/                # Low-level DSers API wrappers\n│       ├── config.ts         # Configuration & environment\n│       ├── auth.ts           # Login, session cache, auto-refresh\n│       ├── client.ts         # Authenticated HTTP client\n│       ├── account.ts        # Store & user management APIs\n│       ├── product.ts        # Import list & push APIs\n│       └── settings.ts       # Shipping, pricing, billing APIs\n├── test/                     # Unit tests\n├── package.json\n├── tsconfig.json\n└── .env.example\n```\n\n### Fourteen Tools\n\n| #   | Tool                         | What it does                                                                                                             |\n| --- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------ |\n| 1   | `dsers_store_discover`       | See your connected stores, available shipping methods, pricing rules, and what rules you can apply                       |\n| 2   | `dsers_rules_validate`       | Test your pricing or title rules before applying — catches mistakes early                                                |\n| 3   | `dsers_product_import`       | Paste a product URL, optionally apply pricing/title rules, and get a preview before pushing                              |\n| 4   | `dsers_product_preview`      | Review a product you already imported — title, price, variants, stock at a glance                                        |\n| 5   | `dsers_product_update_rules` | Edit pricing, content, images, or variant rules on an already-imported product (incremental merge — no re-import needed) |\n| 6   | `dsers_product_visibility`   | Set whether the product shows up in your store or stays as a hidden draft                                                |\n| 7   | `dsers_store_push`           | Send products to your Shopify or Wix store — one at a time, in bulk, or to all stores at once                            |\n| 8   | `dsers_job_status`           | Check if a push finished and whether it succeeded                                                                        |\n| 9   | `dsers_product_delete`       | Delete a product from the DSers import list (irreversible, requires confirmation)                                        |\n| 10  | `dsers_import_list`          | Browse the import staging list with cost, sell price, stock, markup status, and low-stock warnings                       |\n| 11  | `dsers_my_products`          | List products already pushed to a specific store, with supplier URLs for re-import                                       |\n| 12  | `dsers_find_product`         | Search the DSers product pool by keyword or image; results include import_url for one-step import                        |\n| 13  | `dsers_sku_remap`            | SKU-level supplier swap on a live store product. Preview before apply.                                                   |\n| 14  | `dsers_orders`               | List and filter your DSers orders by status — track dropshipping fulfillment progress                                    |\n\nAll tools return clear error messages so your AI agent knows what went wrong and what to do next — no cryptic error codes.\n\n### Pre-Push Safety Checks\n\nBefore pushing a product to your store, the tool automatically checks for common mistakes:\n\n- **Hard blocks** (push won't go through): selling below supplier cost, zero sell price, all variants out of stock\n- **Warnings** (push goes through, but you'll see a heads-up): profit margin below 10%, stock under 5 units, sell price under $1\n\nIf 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`.\n\n### Pricing Rule Conflict Detection\n\nIf 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:\n\n1. Set `pricing_rule_behavior='apply_store_pricing_rule'` in push options to accept the store's pricing rule\n2. Disable the Pricing Rule in your DSers store settings to use MCP pricing instead\n\n### Four Prompts\n\nReady-made workflows your AI client can use directly:\n\n| Prompt                        | Description                                               |\n| ----------------------------- | --------------------------------------------------------- |\n| `dsers_workflow_quick-import` | Import a single product and push to store as draft        |\n| `dsers_workflow_bulk-import`  | Batch import with pricing multiplier                      |\n| `dsers_workflow_multi-push`   | Push one product to all connected stores                  |\n| `dsers_workflow_seo-optimize` | Import, AI-rewrite title & description for SEO, then push |\n\n### Environment Variables\n\n| Variable               | Required | Description                             |\n| ---------------------- | -------- | --------------------------------------- |\n| `DSERS_ENV`            | No       | `production` (default) or `test`        |\n| `DSERS_BASE_URL`       | No       | Override API base URL                   |\n| `IMPORT_MCP_STATE_DIR` | No       | Job state directory (default: `.state`) |\n\n### What's Next\n\n- Support more store platforms that DSers already connects to (eBay, Wish, etc.)\n- Smarter pricing rule templates\n- More granular inventory sync options\n\nGot an idea or feature request? [Open an issue](https://github.com/akacoder404/dsers-mcp/issues) — suggestions and contributions from other developers are very welcome.\n\n### License\n\nMIT\n","readmeFilename":"README.md"}