Taobao Sourcing Assistant
Provides tools for searching products, fetching product details (SKU pricing, specs, images), fetching reviews, and exporting to xlsx for Taobao/Tmall sourcing.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Taobao Sourcing Assistantsearch for portable bluetooth speakers and export to spreadsheet"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Taobao Sourcing Assistant
A local, human-paced MCP server that removes the drudgery of sourcing products on Taobao/Tmall. You keep all judgment (search intuition, buy decisions, sending supplier messages); the tool drives a real Chrome window to extract — for every product — a price for every SKU variant, specs, images, and reviews linked to the variant bought, then tabulates it into a comparison spreadsheet. Ships with a Claude Skill (sourcing playbook) and Chinese supplier-message templates (drafted by Claude, sent manually by you).
Built on the QR-login + persistent-session approach of
JeremyDong22/taobao_mcp, rebuilt as 10 FastMCP tools with embedded-data + DOM extraction (mtop interception kept as a fallback): search, per-SKU pricing, variant-linked reviews, xlsx export, gated cart staging (adds via themtop.trade.addBagAPI — works on Taobao and Tmall), confirm-then-send seller messaging, and a daily order-tracking + 取件码 pickup-code digest — plus a captcha human-handoff and anti-detection pacing.
Scope — it does four things
Find legitimate products · add to cart · communicate with sellers (you confirm each message) · track orders (+ 取件码 pickup codes). You + your buying agent handle payment, the delivery address, checkout, and all logistics — the tool hands off at the cart and the tracking digest.
Related MCP server: @semore/mcp-commerce
What it does NOT do
No headless scraping, no proxy rotation, no captcha-solving service, no cloud. It never pays, checks out, or picks a shipping address, and it never blind-sends a seller message (confirm-then-send — you approve each one). Not getting your account flagged is the priority, not speed.
Install (one time)
# from the project root
uv venv --python 3.12
uv pip install -e ".[dev]"You need Google Chrome installed (the real app, not Chromium, not Comet). The
launcher is pinned to it in config.toml. If Chrome lives somewhere non-standard,
edit [browser] executable_path, or clear it ("") to let Playwright resolve the
chrome channel.
Configure
Edit config.toml (defaults are sensible):
[browser] executable_path— pinned Google Chrome binary (avoids launching Comet/other Chromium).[browser] user_data_dir— the persistent profile (your login lives here; gitignored).[pacing]— random delays +max_products_per_minute(keep it low).[limits]—max_reviews,review_pages.[output] dir— where xlsx +run.logland.
Run
.venv/bin/python server.py # stdio MCP server
npx @modelcontextprotocol/inspector .venv/bin/python server.py # interactive inspectFor Claude Desktop, register it as an MCP server pointing at the full venv python
path and server.py (use absolute paths — /Volumes/...).
First-run login (once per session)
You log in with your own Taobao account — no account, cookie, or profile ships in this
repo (user_data/ is gitignored and lives only on your machine).
Call
taobao_initialize_login(or justtaobao_fetch_product— it auto-ensures login).A visible Chrome window opens to the Taobao QR page.
Scan the QR with your Taobao app. The server polls and continues automatically.
The session persists in
user_data_dir— restarts reuse it, no re-scan.
Tools
Tool | Purpose |
| Open Chrome, QR login (you scan). |
| Login/health (read-only). |
| Keyword → result list for you to pick from. |
| One product: every SKU variant + price/stock, specs, images. ( |
| Recent reviews, each tagged with the variant bought. |
| Gated cart staging — preview, then |
| Read seller IM conversations + a thread's messages (read-only). |
| Send a seller message — confirm-then-send (preview, then |
| Daily digest: per order — status, carrier + tracking#, 取件码 pickup code + station. Caps to one live run/day. |
| 3-sheet comparison workbook (Summary / Variants / Reviews). |
| Joins cart + orders (+ tracking/取件码) + seller chats by vendor — per-seller, per-order, or an overview. |
| Pages the full purchase history → a visual inventory workbook: embedded thumbnail (or |
The Skill
skill/SKILL.md is the sourcing playbook (search → you pick → fetch → translate →
summarize reviews → normalize price-per-unit → compare → export → flag risks).
skill/supplier_templates.md has Chinese message templates — Claude drafts; sent via
taobao_send_reply only after you confirm that exact message (never blind auto-send).
Troubleshooting
It launched Comet / the wrong browser — set
[browser] executable_pathto your Google Chrome binary (default:/Applications/Google Chrome.app/Contents/MacOS/Google Chrome)."login_required" / NotLoggedInError — run
taobao_initialize_loginand scan the QR; keep the window open.A slider/verification appeared — solve it yourself in the Chrome window; the tool pauses (
human_action_required) and resumes. It logs tooutput/run.log.Screenshots/automation "page still loading" — the new detail page holds a connection open; this server uses embedded-data + DOM extraction (not screenshot-waits), so this only affects ad-hoc scripts.
SelectorDriftError— Taobao changed its layout; patch the one filesrc/extract/selectors.py.Wrong price on a multi-model listing — the headline price is the cheapest model; always read the per-SKU price for the exact variant.
补贴后prices may include a 国补 subsidy that needs a mainland ID — verify the real checkout price.Only a few reviews returned — deep review pagination is shallow (known limit); increase scrolling in
src/extract/reviews.pyif needed.Reset everything — delete
user_data/chrome_profile/and re-scan the QR.
Risks (don't hide these)
Scraping Taobao violates its ToS; using your own logged-in account carries account-limitation risk. Keep volume low and human-paced.
mtop endpoints / selectors drift — budget periodic maintenance (selectors are centralized).
Tests
.venv/bin/python -m pytest -q # parsers, output, MCP contract, drift, evalsThis server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/randunun-eng/taobao-sourcing-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server