PDD Shopping MCP
Enables searching, normalizing, and signal-analyzing products on Pinduoduo, with built-in fraud signals to help Claude reason about product authenticity.
README
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 |
|---|---|---|
mock |
✅ Always works | Dev/testing. Three Ray-Ban Meta scenarios (replica, suspicious, potentially genuine). |
h5 |
⚠️ Requires login cookies | Playwright scraping of mobile.yangkeduo.com. Requires PDD_H5_COOKIES_JSON. |
official |
🔲 Skeleton | PDD Open Platform / DDK API. Set PDD_PROVIDER=official with credentials. |
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.com - Copy 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 test
Claude 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 |
|---|---|
health_check |
Check server and provider status |
translate_query_to_chinese |
Dictionary-based query translation helper |
search_pdd_products |
Search products, returns Product[] with signals |
get_pdd_product_detail |
Get full detail by goodsId or URL |
compare_pdd_products |
Sort by quality signals, generate Russian warnings list |
estimate_cargo_cost |
Calculate total cost including Russia cargo |
Product Signals
Each Product has a signals field pre-computed before Claude sees the data:
| Signal | Meaning |
|---|---|
replicaKeywordsFound |
Chinese replica keywords in title: 同款, 高仿, 复刻, 潮牌… |
priceSuspiciouslyLow |
Price below 15% of expected brand range |
priceVsExpectedRatio |
Ratio of actual to minimum expected price (0.05 = 5% = almost certainly fake) |
brandMismatch |
Price below 50% of brand minimum |
hasBuyerPhotos |
Whether buyers posted real photos |
noShopInfo |
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 |
|---|---|---|
PDD_PROVIDER |
mock |
h5, mock, or official |
PDD_H5_COOKIES_JSON |
— | JSON cookie array (required for h5 mode) |
PLAYWRIGHT_HEADLESS |
true |
Set false to see browser |
CNY_RUB_RATE |
13.5 |
CNY to RUB exchange rate |
CARGO_RATE_RUB_PER_KG |
600 |
Cargo rate RUB/kg |
CARGO_MIN_KG |
0.3 |
Minimum billable weight kg |
DEBUG |
false |
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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.