PDD Shopping MCP
PDD Shopping MCP
MCP server for Claude Code that enables searching, normalizing, and signal-analyzing products on Pinduoduo (拼多多).
What it does
Write in Claude Code:
"Find Ray-Ban Meta smart glasses on Pinduoduo. Compare options and warn me about fake risk."
Claude uses these MCP tools to fetch structured product data with pre-computed fraud signals, then does its own reasoning and recommendations.
Data Sources
Provider | Status | Notes |
| ✅ Always works | Dev/testing. Three Ray-Ban Meta scenarios (replica, suspicious, potentially genuine). |
| ⚠️ Requires login cookies | Playwright scraping of mobile.yangkeduo.com. Requires |
| 🔲 Skeleton | PDD Open Platform / DDK API. Set |
Important: All mobile.yangkeduo.com pages require login — there is no guest mode. The H5 adapter requires valid session cookies via PDD_H5_COOKIES_JSON. Without cookies it returns NEED_AUTH and falls back to mock data.
Note on H5 scraping: Scraping PDD may violate their Terms of Service. Use for personal research only.
Getting PDD Session Cookies
Log in to Pinduoduo in Chrome (or on your phone)
Open DevTools → Application → Cookies →
mobile.yangkeduo.comCopy cookies to a JSON array format
Set
PDD_H5_COOKIES_JSONin your.envfile
Cookie format:
[
{"name": "PDDAccessToken", "value": "...", "domain": ".yangkeduo.com", "path": "/"},
{"name": "api_uid", "value": "...", "domain": ".yangkeduo.com", "path": "/"}
]Cookies expire — you may need to refresh them periodically.
Setup
git clone <repo>
cd pdd-shopping-mcp
npm install
npx playwright install chromium
cp .env.example .env
# Edit .env as needed (default is mock mode, no config required)Run
# Development (mock mode — no config needed)
npm run dev
# Real H5 scraping (requires PDD_H5_COOKIES_JSON in .env)
PDD_PROVIDER=h5 npm run dev
# Tests
npm testClaude Code Config
Add to ~/.claude/claude_desktop_config.json (or project .claude/mcporter.json):
{
"mcpServers": {
"pdd-shopping": {
"command": "npx",
"args": ["tsx", "/absolute/path/to/pdd-shopping-mcp/src/index.ts"],
"env": {
"PDD_PROVIDER": "h5",
"CNY_RUB_RATE": "13.5",
"CARGO_RATE_RUB_PER_KG": "600"
}
}
}
}Available Tools
Tool | Description |
| Check server and provider status |
| Dictionary-based query translation helper |
| Search products, returns |
| Get full detail by goodsId or URL |
| Sort by quality signals, generate Russian warnings list |
| Calculate total cost including Russia cargo |
Product Signals
Each Product has a signals field pre-computed before Claude sees the data:
Signal | Meaning |
| Chinese replica keywords in title: 同款, 高仿, 复刻, 潮牌… |
| Price below 15% of expected brand range |
| Ratio of actual to minimum expected price (0.05 = 5% = almost certainly fake) |
| Price below 50% of brand minimum |
| Whether buyers posted real photos |
| Shop data completely absent |
Claude uses these signals to reason about authenticity and risk.
Example Session
User: Find Ray-Ban Meta smart glasses on Pinduoduo. Compare and warn about fakes.
Claude calls: search_pdd_products("Ray-Ban Meta 智能眼镜")
Claude calls: compare_pdd_products([...results])
Analysis:
• 99 CNY — replicaKeywordsFound: ["同款","潮牌"], priceVsExpectedRatio: 0.07 → AVOID
• 399 CNY — priceSuspiciouslyLow: true, no buyer photos → RISKY
• 1800 CNY — ratio: 1.2, but only 7 reviews → needs more verification
None are confirmed genuine. Real Ray-Ban Meta retails ~$299 USD (~2200+ CNY).Environment Variables
Variable | Default | Description |
|
|
|
| — | JSON cookie array (required for |
|
| Set |
|
| CNY to RUB exchange rate |
|
| Cargo rate RUB/kg |
|
| Minimum billable weight kg |
|
| Include raw PDD data in Product output |
Roadmap
PDD Open Platform / DDK API integration
Third-party API connectors (RapidAPI)
Buyer review and image extraction
Price history tracking
Taobao / 1688 / Poizon adapters
Telegram bot wrapper
Image-based search
Real cargo company calculator