dsers avatar

DSers Official MCP Server

dsers/dsers-mcp-server

DSers runs a hosted MCP server that connects AI clients to their dropshipping platform via OAuth 2.1. You get tools to import products from AliExpress, Alibaba, and other suppliers, then edit variants, apply pricing rules, and push directly to Shopify or Wix stores. It handles supplier replacement with SKU matching and lets you preview drafts before publishing. The server is remote only over streamable HTTP, so no local setup. Verified working with Claude Desktop, Cursor, and ChatGPT Developer Mode. Reach for this if you're already using DSers and want to script product imports or automate store publishing workflows without clicking through their web interface.

GitHub stars
19
tools
11
transport
HTTP
last updated
Nov 6, 2026

Tools

11 tools

Public tool metadata for what this MCP can expose to an agent.

dsers_store_discoverRetrieve available stores and supported rules for the connected DSers account. Call this first — the response contains store IDs and configuration needed by all subsequent operations. Returns: stores (each with id, name, platform, ship[]), rules (pricing modes, content, images...1 params

Retrieve available stores and supported rules for the connected DSers account. Call this first — the response contains store IDs and configuration needed by all subsequent operations. Returns: stores (each with id, name, platform, ship[]), rules (pricing modes, content, images...

Parameters* required
target_storestring
Store ID or name to filter capabilities for a specific store. Omit to see all linked stores. Use the id or name from this response in later calls.
dsers_rules_validateCheck and normalize a rules object against the provider's capabilities before importing. Use this to verify pricing, content, and image rules are valid and see exactly which ones will be applied. Returns: effective_rules_snapshot (what will actually be applied), warnings (adju...2 params

Check and normalize a rules object against the provider's capabilities before importing. Use this to verify pricing, content, and image rules are valid and see exactly which ones will be applied. Returns: effective_rules_snapshot (what will actually be applied), warnings (adju...

Parameters* required
rulesstring
Rules as a JSON string. Top-level keys: pricing, content, images, variant_overrides, option_edits. Pricing modes: fixed_price (exact dollar amount for all), multiplier (cost × ratio), fixed_markup...
target_storestring
Store ID or display name from dsers_store_discover. Some rule capabilities vary by store.
dsers_product_importImport product(s) from supplier URL(s) into the DSers import list and return a preview. Supports AliExpress, Alibaba, and Accio.com URLs. Provide source_url (single) or source_urls_json (batch). Optionally apply rules at import time via rules_json or flat params. The response...17 params

Import product(s) from supplier URL(s) into the DSers import list and return a preview. Supports AliExpress, Alibaba, and Accio.com URLs. Provide source_url (single) or source_urls_json (batch). Optionally apply rules at import time via rules_json or flat params. The response...

Parameters* required
batch_detailstring
Batch response detail level. summary (default): import_item_id + title + sell_price + cost + variants_count + stock per product (~100 tokens each). full: complete preview per product (can be very l...one of summary · full
countrystring
Target country code for shipping and pricing lookup. Examples: US, GB, DE, FR, AU.default: US
description_append_htmlstring
Flat param: REPLACE the description-append slot. Each call sets the appended HTML outright — the prior append (if any) is stripped first. Empty string '' clears the slot.
description_override_htmlstring
Flat param: replace full description (HTML).
pricing_fixed_markupnumber
Flat param: markup in dollars when pricing_mode='fixed_markup'.
pricing_fixed_pricenumber
Flat param: exact price in dollars when pricing_mode='fixed_price'.
pricing_modestring
Flat param: pricing mode. Use instead of rules_json for simple pricing.one of multiplier · fixed_markup · fixed_price
pricing_multipliernumber
Flat param: multiplier value when pricing_mode='multiplier'.
rules_jsonstring
Rules as JSON string. Keys: pricing, content, images, variant_overrides, option_edits. PRICING: {mode:'fixed_price',fixed_price:9.99} | {mode:'multiplier',multiplier:2} | {mode:'fixed_markup',fixed...
source_hintstring
Supplier platform hint. Valid values: auto, aliexpress, alibaba, accio. Default: auto (detected from URL).default: auto
source_urlstring
Single supplier product URL. Supports AliExpress (aliexpress.com/item/xxx.html), Alibaba (alibaba.com/product-detail/xxx.html), and Accio.com product links (accio.com/c/...?productId=xxx&ds=aliexpr...
source_urls_jsonstring
Batch import: JSON array of URL strings or objects with {url, rules?, source_hint?, country?, target_store?, visibility_mode?}. Example: ["https://aliexpress.com/item/123.html", {"url": "https://al...
target_storestring
Store ID or display name from dsers_store_discover. Required when the account has multiple stores.
title_overridestring
Flat param: replace entire product title. Clears any title_prefix/suffix slot applied earlier.
title_prefixstring
Flat param: REPLACE the title-prefix slot. Each call sets the desired prefix outright — passing a new value strips any prior prefix we put there. Empty string '' clears the slot.
title_suffixstring
Flat param: REPLACE the title-suffix slot. Each call sets the desired suffix outright. Empty string '' clears the slot.
visibility_modestring
Product visibility after push. backend_only (default): saved as draft, not visible to shoppers — SAFE, no financial risk. sell_immediately: published and LIVE on the storefront — RISK: verify prici...
dsers_product_previewReload the preview for an already-imported product (by import_item_id). Two modes: compact (default) returns [name, sell, qty] for ALL variants — lightweight. full returns [name, sell, compare_at, cost, qty, supplier_qty] for 3 variants by default. Always includes price_summar...6 params

Reload the preview for an already-imported product (by import_item_id). Two modes: compact (default) returns [name, sell, qty] for ALL variants — lightweight. full returns [name, sell, compare_at, cost, qty, supplier_qty] for 3 variants by default. Always includes price_summar...

Parameters* required
import_item_idstring
Import-item ID returned by dsers_product_import (DSers's persistent handle).
include_imagesvalue
Include per-variant image_url and per-option-value imgUrl in the response. Useful for visual SKU matching when comparing suppliers. Off by default to keep responses compact.
show_all_optionsvalue
Show all option values instead of truncating to 10. Use before applying option_edits.
variant_detailstring
compact (default): columns [name, sell, qty], shows ALL variants. full: columns [name, sell, compare_at, cost, qty, supplier_qty], shows 3 by default.one of compact · full
variant_limitnumber
Max variants in skus table. Compact default: all. Full default: 3. Hard cap: 200.
variant_offsetnumber
Start index for variant/SKU listing (0-based). Default: 0.
dsers_product_update_rulesUpdate pricing, content, images, or variant rules on an already-imported product. Rules are merged incrementally: pricing / images / variant_overrides replace by family. CONTENT slots (title_prefix, title_suffix, description_append_html) behave like named slots — each call REP...13 params

Update pricing, content, images, or variant rules on an already-imported product. Rules are merged incrementally: pricing / images / variant_overrides replace by family. CONTENT slots (title_prefix, title_suffix, description_append_html) behave like named slots — each call REP...

Parameters* required
description_append_htmlstring
Flat param: REPLACE the description-append slot. Each call sets the appended HTML outright — the prior append (if any) is stripped first. Empty string '' clears the slot.
description_override_htmlstring
Flat param: replace full description (HTML).
import_item_idstring
Import-item ID from a previous dsers_product_import call.
pricing_fixed_markupnumber
Flat param: markup in dollars when pricing_mode='fixed_markup'.
pricing_fixed_pricenumber
Flat param: exact price in dollars when pricing_mode='fixed_price'.
pricing_modestring
Flat param: pricing mode. Use instead of rules_json for simple pricing.one of multiplier · fixed_markup · fixed_price
pricing_multipliernumber
Flat param: multiplier value when pricing_mode='multiplier'.
rules_jsonstring
Rules as JSON string. Keys: pricing, content, images, variant_overrides, option_edits. PRICING: {mode:'fixed_price',fixed_price:9.99} | {mode:'multiplier',multiplier:2} | {mode:'fixed_markup',fixed...
target_storestring
Store ID or name from dsers_store_discover.
title_overridestring
Flat param: replace entire product title. Clears any title_prefix/suffix slot applied earlier.
title_prefixstring
Flat param: REPLACE the title-prefix slot. Each call sets the desired prefix outright — passing a new value strips any prior prefix we put there. Empty string '' clears the slot.
title_suffixstring
Flat param: REPLACE the title-suffix slot. Each call sets the desired suffix outright. Empty string '' clears the slot.
visibility_modestring
backend_only (default, safe) or sell_immediately (live — confirm with user).
dsers_store_pushPush one or more prepared import drafts to the connected Shopify or Wix store(s). SAFETY: Automatic pre-push validation checks pricing (blocks if sell price < cost or $0) and stock (blocks if all variants have zero inventory). Warnings are raised for low margin (<10%), low sto...7 params

Push one or more prepared import drafts to the connected Shopify or Wix store(s). SAFETY: Automatic pre-push validation checks pricing (blocks if sell price < cost or $0) and stock (blocks if all variants have zero inventory). Warnings are raised for low margin (<10%), low sto...

Parameters* required
force_pushvalue
Override pre-push safety checks. ONLY set true after you have shown the user the specific risk (e.g., 'This product is priced below cost — you will lose $X per sale') and they explicitly confirmed....
import_item_idstring
Single import-item ID from dsers_product_import. Used for single-push or multi-store mode.
import_item_ids_jsonstring
Batch push: JSON array of import_item_id strings or objects {import_item_id, target_store?, target_stores?, push_options?, visibility_mode?}. Example: ["68fabc123", {"import_item_id": "68fdef456",...
push_options_jsonstring
Push configuration as JSON string. Keys: publish_to_online_store (bool), image_strategy ('selected_only' or 'all_available'), pricing_rule_behavior ('keep_manual' or 'apply_store_pricing_rule'), sh...
target_storestring
Target store ID or display name from dsers_store_discover. Required when the account has multiple stores.
target_stores_jsonstring
Multi-store: JSON array of store IDs or display names. Pushes the same import_item to each listed store. Example: ["Store A", "Store B"]
visibility_modestring
Visibility mode for the push. backend_only: draft — SAFE. sell_immediately: published and LIVE — RISK: confirm pricing/inventory with user first.
dsers_product_deletePermanently delete a product from the DSers import list. IRREVERSIBLE — the product cannot be recovered after deletion. Requires explicit confirmation (confirm=true) to execute. If called without confirm=true, returns a confirmation prompt — show this to the user. SCOPE: Only...2 params

Permanently delete a product from the DSers import list. IRREVERSIBLE — the product cannot be recovered after deletion. Requires explicit confirmation (confirm=true) to execute. If called without confirm=true, returns a confirmation prompt — show this to the user. SCOPE: Only...

Parameters* required
confirmvalue
Set to true to confirm deletion. First call without this to get a confirmation prompt, then call again with confirm=true after user approves.
import_item_idstring
The import list item ID to delete. Obtain from dsers_product_preview (provider_state.import_item_id) or from searchImportList results.
dsers_import_listBrowse the DSers import list with enriched variant data. Returns per item: import_item_id, title, image, sell_price_range, cost_range, currency, variant_count, total_stock, push_status, supplier, source_url, tags. no_markup=true when sell equals cost (no pricing rule applied)....2 params

Browse the DSers import list with enriched variant data. Returns per item: import_item_id, title, image, sell_price_range, cost_range, currency, variant_count, total_stock, push_status, supplier, source_url, tags. no_markup=true when sell equals cost (no pricing rule applied)....

Parameters* required
pageinteger
Page number (1-based). Default: 1.
page_sizeinteger
Items per page. Default: 20. Max: 100.
dsers_my_productsBrowse products already pushed to a store. Requires store_id (from dsers_store_discover). Returns compact items with: dsers_product_id, title, image, sell_price (min/max in $), cost (min/max in $), status (Draft/Active), supplier, supplier_url. Prices are in dollars (converted...3 params

Browse products already pushed to a store. Requires store_id (from dsers_store_discover). Returns compact items with: dsers_product_id, title, image, sell_price (min/max in $), cost (min/max in $), status (Draft/Active), supplier, supplier_url. Prices are in dollars (converted...

Parameters* required
pageinteger
Page number (1-based). Default: 1.
page_sizeinteger
Items per page. Default: 20. Max: 100.
store_idstring
Store ID from dsers_store_discover. Required.
dsers_find_productSearch the DSers product pool for products to import by keyword or by image URL (visual search). Covers three supplier catalogs — AliExpress (default), Alibaba, and 1688 Dropshipping — select via the `supplier` param. Returns products that can be directly imported via dsers_pr...9 params

Search the DSers product pool for products to import by keyword or by image URL (visual search). Covers three supplier catalogs — AliExpress (default), Alibaba, and 1688 Dropshipping — select via the `supplier` param. Returns products that can be directly imported via dsers_pr...

Parameters* required
category_idstring
Category ID filter
image_urlstring
Image URL for visual search. Mutually exclusive with keyword — if both provided, image_url takes priority.
keywordstring
Search keyword. Omit when using image_url.
limitnumber
Results per page (max 50)default: 20
search_afterstring
Cursor from previous response for pagination
ship_fromstring
Origin country code (CN, US, FR, UK)
ship_tostring
Destination country codedefault: US
sortstring
Sort orderone of relevance · newest · price
supplierstring
Which supplier catalog to search. Default: aliexpress. Use 'alibaba' for Alibaba.com dropshipping products (MOQ-1 items), or 'ali1688' for the 1688 Dropshipping catalog.one of aliexpress · alibaba · ali1688
dsers_sku_remapReplace the supplier on a store product with SKU-level variant matching. DEFAULTS TO mode='preview' which is read-only and safe to call without confirmation — only mode='apply' actually writes to DSers. TWO discovery paths: (A) STRICT — caller provides new_supplier_url and the...7 params

Replace the supplier on a store product with SKU-level variant matching. DEFAULTS TO mode='preview' which is read-only and safe to call without confirmation — only mode='apply' actually writes to DSers. TWO discovery paths: (A) STRICT — caller provides new_supplier_url and the...

Parameters* required
auto_confidencenumber
Minimum sku-matcher confidence (0-100) for a variant to be auto-swapped. Default 70.default: 70
countrystring
Target country code for candidate fetch. Default US.default: US
dsers_product_idstring
DSers product ID of the store product whose supplier you want to replace. Get from dsers_my_products. Must be a numeric string that fits in a signed int64 (max 9223372036854775807) — the schema's m...
max_candidatesinteger
DISCOVER mode only. Max candidates to fetch full variant detail for and rank. Default 5. Ignored in STRICT mode.default: 5
modestring
preview (default — read-only, no DSers writes, safe to call repeatedly) or apply (persist the swap; verify diffs in preview first).one of preview · applydefault: preview
new_supplier_urlstring
OPTIONAL. AliExpress / Alibaba / 1688 URL of the replacement supplier. Provide to use STRICT mode (exact swap). Omit to use DISCOVER mode (reverse-image search to auto-find the best replacement). M...
store_idstring
Store ID from dsers_store_discover. Required. Must be a string (DSers backend rejects integer storeId due to int64 precision). Must be a numeric string that fits in a signed int64 (max 922337203685...

Sponsors

Readme

DSers Official MCP Server

Official hosted Model Context Protocol server for operating DSers workflows from AI clients.

This public repository contains connection information, user documentation, examples, and registry metadata for the DSers-hosted service. It does not contain the production backend source code.

Remote MCP Endpoint

https://ai.dsers.com/mcp

The service uses Streamable HTTP and does not provide a local stdio server.

Authentication

DSers MCP uses OAuth 2.1 with PKCE. Add only the server URL to your MCP client. Do not paste DSers passwords, API keys, store tokens, browser cookies, or a manually copied Authorization header into client configuration.

The protected resource publishes OAuth discovery metadata at:

https://ai.dsers.com/.well-known/oauth-protected-resource

After authorization, available tools are filtered by the authenticated role and OAuth scopes. See Authentication.

Current Capabilities

The current service exposes 60 tools grouped around:


View the full README on GitHub

Details

Repository
github.com/dsers/dsers-mcp-server
Website
www.dsers.com
Transport
HTTP
Registry
MCP registry, active