Aliexpress MCP Server
Read-only AliExpress MCP server — search, product details, shipping estimates. Uses signed MTOP API calls (mtop.js replication) with cookies from mcp-auth-bridge.
Install / Use
npx skills add justinritchie/aliexpress-mcp-serverInstalls into whichever agent you are using.
Quality Score
Category
Development & EngineeringSupported Platforms
README
AliExpress MCP Server
An MCP server that wraps AliExpress search and product detail scraping for a Canadian shopper — prices in CAD, shipping to Vancouver, BC.
Read-only by design: it searches, fetches product details, and checks shipping. It does not add to cart, check out, or pay.
Tools
search_products(query, min_rating, max_price, sort_by)— searches the public wholesale search URL and parses the embedded JSON.get_product_details(item_id | url)— title, price, discount, rating, sold count, seller, shipping cost & ETA.get_shipping_estimate(item_id)— shipping cost + ETA to the configured country.view_cart()— current cart contents via the signedmtop.aliexpress.trade.cart.renderendpoint. Read-only.
How it works
The initial product page is a client-side-rendered shell (window._d_c_.isCSR = true, window.runParams = {}) — real product data loads over AJAX from AliExpress's MTOP API after the JS runs. So HTML scraping doesn't work for PDP data.
Instead, this server replicates what mtop.js does in the browser: it makes signed calls to mtop.aliexpress.pdp.pc.query using the session's _m_h5_tk cookie as the HMAC token. The signing algorithm:
sign = md5(token + "&" + t_ms + "&" + "12574478" + "&" + json_payload)
where token is the prefix of _m_h5_tk before the underscore, and 12574478 is AliExpress's public web appKey. Token refresh on FAIL_SYS_TOKEN_EXPIRED is handled automatically.
Search still uses the simpler HTML path (embedded window.runParams JSON from the search SSR HTML) — no signed calls needed.
Setup
-
Install dependencies:
pip install -r requirements.txt -
Install the MCP Auth Bridge Chrome extension. The
aliexpressentry is already in itssites.json. -
Open
https://www.aliexpress.com, log in, then click Save AliExpress in the extension popup. This writes cookies to~/.mcp-credentials/aliexpress.json. -
Add to your Claude Desktop config (
~/Library/Application Support/Claude/claude_desktop_config.json):{ "mcpServers": { "aliexpress": { "command": "python3", "args": ["/Users/YOUR_USER/justinritchie-mcp-servers/aliexpress-mcp-server/aliexpress_mcp_server.py"], "env": { "ALIEXPRESS_CREDENTIALS": "~/.mcp-credentials/aliexpress.json", "ALIEXPRESS_COUNTRY": "CA", "ALIEXPRESS_CURRENCY": "CAD" } } } } -
Restart Claude Desktop.
Known limitations
- Low-volume / brand-new listings sometimes return empty MTOP responses (endpoint returns
SUCCESSbut an empty data block). Likely a region/visibility gate. Search results still show the listing fine. - Cookies expire / lag the cart. When tool calls start returning "session expired" — or
view_cartreports an empty cart despite having items — re-open aliexpress.com in Chrome and click Save AliExpress again to capture fresh session cookies. The_m_h5_tktoken and cart state rotate together; stale cookies show an empty server-side cart. - Rate limiting is the user's responsibility. The server sends realistic Chrome headers but doesn't throttle; don't hammer the search.
Architecture
Follows the pattern of dekudeals-mcp-server — FastMCP + httpx + BeautifulSoup — with added MTOP client code in aliexpress_mcp_server.py. Session cookies come from the shared credential file written by the MCP Auth Bridge Chrome extension.
The MTOP response field paths (PRODUCT_TITLE.text, PRICE.targetSkuPriceInfo.salePriceString, PC_RATING.rating, SHIPPING.originalLayoutResultList[0].bizData.displayAmount, etc.) were reverse-engineered live from a real response in April 2026 and are documented inline in _extract_pdp_fields(). If AliExpress reorganizes the component layout, that function is the place to update.
Related Skills
node-connect
385.5kDiagnose OpenClaw Android, iOS, or macOS node pairing, QR/setup code, route, auth, and connection failures.
blender-python-addon
40.5kBlender Python add-on rules for operators, panels, properties, registration, testing, and API-safe scripting
flutter-development-guidelines-cursorrules-prompt-file
40.5kCursor rules for Flutter development with MVVM architecture, Riverpod state management, Material widgets, and Dart style guidelines.
commit-push-pr
140.7kCommit, push, and open a PR
