lcsc
Search LCSC Electronics for electronic components — find parts by LCSC number (Cxxxxx) or MPN, check stock/pricing, download datasheets, analyze spe…
它会碰到什么
逐条看命中(2 条严重或高危)
- 高
scripts/fetch_datasheet_lcsc.py:389exec-spawnresult = subprocess.run(
- 高
scripts/sync_datasheets_lcsc.py:196exec-spawnresult = subprocess.run(
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
LCSC Electronics — Component Search, Datasheets & Ordering
Related Skills
| Skill | Purpose |
|-------|---------|
| kicad | Schematic analysis — extracts MPNs for part lookup |
| bom | BOM management — orchestrates sourcing across distributors |
| jlcpcb | PCB assembly — shares the same parts library |
| spice | Uses LCSC parametric data for behavioral SPICE models (no auth needed) |
LCSC is JLCPCB's sister company — they share the same parts library and Cxxxxx part numbers. Use LCSC for production sourcing (assembled boards from JLCPCB/PCBWay). DigiKey/Mouser are for prototyping. For BOM management and export workflows, see bom.
Key Differences from DigiKey/Mouser
- No API key needed — jlcsearch community API is free and open
- Lower prices — especially for passives and Chinese-manufactured ICs
- JLCPCB integration — same LCSC part numbers used in JLCPCB assembly BOMs
- Direct PDF downloads — LCSC's CDN (wmsc.lcsc.com) serves datasheets without bot protection
- Low MOQ — many parts available in quantities as low as 1
- Warehouses — Shenzhen (JS), Zhuhai (ZH), Hong Kong (HK)
- Website:
https://www.lcsc.com
LCSC Part Numbers
Format: Cxxxxx (e.g., C14663). This is the universal identifier across both LCSC and JLCPCB. Use it for:
- Direct ordering on LCSC
- BOM matching in JLCPCB assembly (see
jlcpcbskill) - Cross-referencing between platforms
Component Search
Use search_lcsc.py to search LCSC and JLCPCB for electronic components, check live stock, inspect pricing tiers, identify basic vs. extended parts, and fetch parametric attributes. No API key required.
# Search by keyword or description
python3 <skill-path>/scripts/search_lcsc.py "tactile switch"
# Search for basic parts only (no JLCPCB extended loading fees)
python3 <skill-path>/scripts/search_lcsc.py "0805 100R" --basic
# Filter by package/footprint and stock
python3 <skill-path>/scripts/search_lcsc.py "red led" --package 0805 --in-stock
# Inspect full component details (manufacturer, datasheet URL, price breaks, parametric attributes)
python3 <skill-path>/scripts/search_lcsc.py "C318884" --details
# Output machine-readable JSON (for scripts and agent workflows)
python3 <skill-path>/scripts/search_lcsc.py "ME2108" --limit 5 --json
# Sort results by price or stock
python3 <skill-path>/scripts/search_lcsc.py "microcontroller STM32" --sort price
# Parametric category search (rows carry package, stock, price and attributes)
python3 <skill-path>/scripts/search_lcsc.py "STM32" --category microcontrollers
The script:
- Queries the free
jlcsearchcommunity API for the search, then enriches from LCSC's direct product-detail endpoint (manufacturer, datasheet URL, price breaks) for exactCxxxxxqueries and for every hit shown with--details— one extra request per hit, 0.5s apart. If jlcsearch has no row for aCxxxxxcode, the direct lookup is the fallback. - Formats results into a clean terminal table highlighting
LCSC #,MPN,Package,Basic/Extstatus,Stock,Price, andDescription - Supports
--basicfiltering to optimize PCB assembly BOM costs for JLCPCB manufacturing - Supports
--jsonfor automated BOM enrichment and agent workflows
jlcsearch API Reference
The jlcsearch community API is the recommended way to search LCSC. No authentication required.
Base URL: https://jlcsearch.tscircuit.com
General Search
GET /api/search?q=<query>&limit=20&full=true
Parameters:
q— search query (matches MPN, LCSC code, or description keywords)package— optional footprint filter (e.g.,0402)limit— max results (default 100)full— accepted but no longer adds fields (the formerextrablock is gone, see below)
Category-Specific Search
GET /resistors/list.json?search=10k+0402
GET /capacitors/list.json?search=100nF+0402
GET /microcontrollers/list.json?search=STM32
GET /voltage_regulators/list.json?search=3.3V
Response Format
General search returns {"components": [...]}. As of 2026-09 each hit carries only these fields — the extra block (manufacturer, datasheet URL, per-warehouse stock, attributes, price breaks) is no longer returned, even with full=true:
{
"lcsc": 318884,
"mfr": "TS-1187A-B-A-B",
"package": "SMD-4P,5.1x5.1mm",
"is_basic": true,
"is_preferred": false,
"description": "-30℃~+85℃ 1.5mm 1.6N ... SMD-4P,5.1x5.1mm Tactile Switches ROHS",
"stock": 1683297,
"price": 0.0197
}
Key fields:
lcsc— numeric LCSC ID (without "C" prefix); prependCfor the LCSC codemfr— manufacturer part number (no manufacturer name)is_basic—trueif JLCPCB basic part (no setup fee);is_preferred— JLCPCB preferred extended partstock/price— JLCPCB assembly stock and unit price (USD)
Category endpoints return {"<category>": [...]} — keyed by the category name, not components. Rows differ from the general search: price1 instead of price, in_stock, an empty description, parametric columns (e.g. resistance, cpu_core), and attributes as a JSON string:
{"resistors": [{"lcsc": 25804, "mfr": "0603WAF1002T5E", "description": "", "stock": 37165617,
"price1": 0.000842857, "in_stock": true, "package": "0603", "resistance": 10000,
"is_basic": true, "is_preferred": false,
"attributes": "{\"Resistance\":\"10kΩ\",\"Power(Watts)\":\"100mW\",\"Tolerance\":\"±1%\"}"}]}
LCSC Direct Product Detail (enrichment)
For manufacturer, datasheet URL and price breaks, query LCSC's own endpoint by Cxxxxx code — no auth, JSON, code: 200 on success:
GET https://wmsc.lcsc.com/ftps/wm/product/detail?productCode=C318884
Useful result fields: productModel (MPN), brandNameEn (manufacturer), pdfUrl (direct datasheet PDF), encapStandard (package), productIntroEn / productDescEn (description), stockNumber (LCSC stock), productPriceList[] (ladder = min qty, usdPrice). fetch_datasheet_lcsc.search_lcsc_direct() wraps this and normalizes the result to the jlcsearch dict shape (extra.number, extra.mpn, extra.manufacturer.name, extra.datasheet.pdf, ladder list in price); search_lcsc.py uses it for Cxxxxx enrichment and as the fallback when jlcsearch has no row.
Rate Limits
Neither API documents rate limits, but be respectful — use delays of 0.5s between calls.
Datasheet Download & Sync
LCSC's CDN serves datasheet PDFs directly — no bot protection, no special headers needed. This makes LCSC a reliable datasheet source alongside DigiKey.
Datasheet Directory Sync
Use sync_datasheets_lcsc.py to maintain a datasheets/ directory alongside a KiCad project. Same workflow and manifest.json format as the DigiKey and Mouser skills. No API key required.
# Sync datasheets for a KiCad project
python3 <skill-path>/scripts/sync_datasheets_lcsc.py <file.kicad_sch>
# Preview what would be downloaded
python3 <skill-path>/scripts/sync_datasheets_lcsc.py <file.kicad_sch> --dry-run
# Retry previously failed downloads
python3 <skill-path>/scripts/sync_datasheets_lcsc.py <file.kicad_sch> --force
# Custom output directory
python3 <skill-path>/scripts/sync_datasheets_lcsc.py <file.kicad_sch> -o ./my-datasheets
# Parallel downloads (3 workers)
python3 <skill-path>/scripts/sync_datasheets_lcsc.py <file.kicad_sch> --parallel 3
# Batch mode — sync from a plain MPN list (no KiCad project required)
python3 <skill-path>/scripts/sync_datasheets_lcsc.py --mpn-list mpns.txt --output ./datasheets
MPN-list batch mode (KH-312) — when you have a list of MPNs but no
KiCad project to point at. One MPN per line; blank lines and #
comments (full-line and inline) are skipped; generic values are filtered
via is_real_mpn() and de-duplicated. Output defaults to ./datasheets/
in the current working directory when --output is omitted.
The script:
- Runs the kicad schematic analyzer to extract components, MPNs, and LCSC codes
- Accepts any identifier — MPN, LCSC code, or other distributor PNs from KiCad symbol properties
- Prefers LCSC code for search (exact match) — falls back to MPN keyword search
- Falls back to wmsc.lcsc.com API when jlcsearch has no results, or a hit has no datasheet URL, for an LCSC code (Cxxxxx)
- Downloads from LCSC CDN — direct PDF URLs, no bot protection
- Writes
manifest.jsonmanifest — same format as DigiKey/Mouser skills - Verifies PDF content — checks MPN, manufacturer, and description keywords
- Rate-limited — 0.5s between API calls (configurable with
--delay) - Saves progress incrementally — safe to interrupt
Single Datasheet Download
Use fetch_datasheet_lcsc.py for one-off downloads.
# Search by MPN
python3 <skill-path>/scripts/fetch_datasheet_lcsc.py --search "GRM155R71C104KA88D" -o datasheet.pdf
# Search by LCSC code
python3 <skill-path>/scripts/fetch_datasheet_lcsc.py --search "C14663" -o datasheet.pdf
# Direct URL download
python3 <skill-path>/scripts/fetch_datasheet_lcsc.py "https://wmsc.lcsc.com/..." -o datasheet.pdf
# JSON output
python3 <skill-path>/scripts/fetch_datasheet_lcsc.py --search "C14663" --json
The script:
- OS-agnostic — uses
requests→urllib→playwrightfallback chain (no wget/curl) - Validates PDF headers — rejects HTML error pages
- Falls back to alternative manufacturer sources when LCSC URL fails
- Exit codes: 0 = success, 1 = download failed, 2 = search/API error
- Dependencies:
pip install requests(recommended; urllib fallback works fine for LCSC)pip install playwright && playwright install chromium(optional; rarely needed for LCSC)
LCSC Official API (Requires Approval)
Base URL: https://ips.lcsc.com. Requires API key + signature authentication. Contact support@lcsc.com for access. Rarely needed — jlcsearch covers most use cases.
Web Search Fallback
If the jlcsearch API is unavailable, search LCSC by fetching the website directly:
https://www.lcsc.com/search?q=<query>
Cross-Referencing & Missing Equivalents
LCSC part numbers are specific to the LCSC/JLCPCB ecosystem. Use the mfr field (MPN) to cross-reference on DigiKey/Mouser.
When an MPN has no exact LCSC match:
- Search by key parameters (e.g., "100nF 0402 X7R 16V")
- Look for pin-compatible alternatives from Chinese manufacturers
- Verify specs and footprint match — pad dimensions can vary even within the same package size
- As a last resort, mark as "consigned" and source separately
Tips
is_basicfield matters — JLCPCB basic parts have no setup fee; extended parts cost $3 each- jlcsearch
stockis JLCPCB assembly stock; the wmsc detail'sstockNumberis LCSC's own stock — the two differ - MOQ and order multiples are no longer in the jlcsearch response — check the LCSC product page before ordering
- Datasheet quality varies for Chinese manufacturers — cross-reference MPN on DigiKey for better docs
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。