jlcpcb-mcp
Click on "Deploy 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., "@jlcpcb-mcp search for 10k resistor 0805 package"
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.
jlcpcb-mcp
An MCP server for JLCPCB / LCSC components. Search the parts catalog and pull live stock, pricing tiers, datasheets, specifications, and images — straight into Claude, Cursor, or any MCP client.
It uses a hybrid data model:
Data | Source | Freshness |
Component catalog (descriptions, packages, attributes, categories) | Local SQLite, built from yaqwsx/jlcparts | Snapshot from your last refresh |
JLCPCB assembly stock (the figure that matters for PCBA) | Catalog snapshot (or the official Parts API, when authorized) | Snapshot / real-time |
LCSC retail stock | Live LCSC API ( | Real-time, per query |
Pricing tiers | Live LCSC API ( | Real-time, per query |
Datasheet URL | Live LCSC API ( | Real-time, per query |
Two stock pools, don't confuse them.
wmsc.lcsc.comreports LCSC retail stock, which is a different inventory from JLCPCB assembly stock. A part can read0on LCSC retail while having millions available for JLC assembly (common for Basic parts). Tools expose both aslcsc_retail_stockandjlc_assembly_stock; treat assembly stock as authoritative for board production. The official Parts API (getComponentDetailByCode) gives real-time assembly stock once your API access is approved.
The catalog is downloaded and built into a local SQLite database on first use (a one-time download of ~50 MB that expands to a larger on-disk database). Stock, pricing, and datasheet links are always fetched live, so they're current regardless of catalog age. No API key or account is required.
Tools
Catalog + live data (no credentials needed)
Tool | Description |
| Search the catalog by keyword + filters (category, package, basic-only, min stock) and parametric values (resistance, capacitance, voltage rating, power, output voltage/current, input voltage). Results are enriched with live stock/pricing and ranked Basic-first, then by stock, then by price. |
| Full details for one part: catalog metadata + live stock, full pricing tiers, specifications, datasheet, and images. |
| Live, real-time stock quantity for a part (falls back to the catalog snapshot). |
| Live quantity-break pricing tiers (USD) for a part. |
| Datasheet PDF URL for a part (live, with catalog fallback). |
| List catalog categories/subcategories with component counts. |
| Report the local catalog DB location, size, component count, and last build time. |
| Rebuild the local catalog from the latest yaqwsx/jlcparts snapshot. |
Official JLCPCB Open API (requires credentials)
These call the authenticated JLCPCB Open API (open.jlcpcb.com,
HMAC-SHA256 signed). They return a "not configured" message until you set the credentials
below. Apply for access at https://api.jlcpcb.com (approval is based on your order history).
Tool | Description |
| Authoritative details (specs/stock/price/attributes) for one or more LCSC codes. |
| Browse the full assembly component library, paginated. |
| List your account's private/consigned component library. |
| Cursor-paginated bulk feed of the whole catalog ( |
PCB / SMT-stencil ordering (requires credentials)
Tool | Description |
| Upload a Gerber archive; returns a |
| Upload a blind/buried-via stackup image. |
| List impedance template settings for a stackup. |
| Get the SMT stencil (steel) price configuration. |
| Quote price + lead time for a PCB / stencil order (no order placed). |
| Order details by batch number. |
| Engineering audit (review) info for an uploaded design. |
| Work-in-progress production status for an order. |
| Place a real, paid PCB order. Gated by |
3D printing (TDP) (requires credentials)
Tool | Description |
| Upload a 3D model (STL/STEP); returns a |
| Analysis result (dimensions/printability) for an uploaded model. |
| Quote price for a 3D-printing job (no order placed). |
| List your 3D-printing orders (paginated/filterable). |
| 3D-printing order details by batch number. |
| Production progress for a 3D-printing order. |
| Place a real, paid 3D-printing order. Gated by |
Order safety: the two
*_create_ordertools place real, paid orders and are disabled by default. They only work whenJLCPCB_ENABLE_ORDERS=trueand credentials are set. Uploads and price quotes are free and need only credentials.
Related MCP server: Parts Finder MCP
Installation
The server runs over stdio and is launched by your MCP client.
Claude Desktop / generic MCP config
{
"mcpServers": {
"jlcpcb": {
"command": "npx",
"args": ["-y", "jlcpcb-mcp"]
}
}
}Claude Code
claude mcp add jlcpcb -- npx -y jlcpcb-mcpInstall globally
npm install -g jlcpcb-mcp
jlcpcb-mcp # runs the stdio serverFirst run builds the local catalog database (one-time, a few minutes). Subsequent queries are instant. Use the
jlcpcb_refresh_databasetool to update the catalog later.
Configuration
All configuration is optional — the live API needs no credentials.
Env var | Purpose |
| Override where the catalog SQLite file is stored. |
| Store the database in |
| Official Open API credentials — enable the |
| Override the official API base (default |
| Set to |
Default database locations:
Windows:
%LOCALAPPDATA%\jlcpcb-mcp\components.sqlitemacOS:
~/Library/Application Support/jlcpcb-mcp/components.sqliteLinux:
~/.local/share/jlcpcb-mcp/components.sqlite
Development
npm install
npm run build # tsc -> dist/
npm test # vitest (mocks network + DB; no large download)
npm run test:watch
npm run dev # ts-node src/index.tsThe test suite mocks the live API and the catalog download, so it runs fast and offline.
Architecture
src/
index.ts # registers all tools on the MCP server (stdio)
tool.ts # shared ToolDef type
live-client.ts # wmsc.lcsc.com live product API client
official-client.ts# open.jlcpcb.com authenticated API (HMAC-SHA256 signing)
database.ts # DatabaseManager: build/verify/query the catalog (better-sqlite3)
paths.ts # platform data-dir resolution
value-parser.ts # resistance/capacitance/voltage/current/power parsers
tools/
search.ts # jlcpcb_search_components
details.ts # get_component_details / _stock / _pricing / _datasheet
catalog.ts # jlcpcb_list_categories
maintenance.ts # jlcpcb_database_status / jlcpcb_refresh_database
official.ts # jlcpcb_official_* (authenticated Parts API)
pcb.ts # jlcpcb_pcb_* (PCB/SMT-stencil quote, upload, order)
tdp.ts # jlcpcb_tdp_* (3D-printing quote, upload, order)Releasing
CI runs the build + tests on every push and PR to main (Node 20 & 22). Publishing is
triggered by creating a GitHub Release, which publishes to both registries:
npm as the unscoped package
jlcpcb-mcpGitHub Packages as
@eyalm321/jlcpcb-mcp
One-time repo setup
Push this repo to
https://github.com/Eyalm321/jlcpcb-mcp.Add an
NPM_TOKENrepository secret (an npm automation token).GITHUB_TOKENis provided automatically for GitHub Packages.To release: bump the version in
package.json, commit, then create a GitHub Release (tag e.g.v0.1.0). Thepublishworkflow builds, tests, and publishes to both registries.
Credits
Catalog data: yaqwsx/jlcparts
Architecture inspired by peterb154/jlcpcb-search-mcp
Catalog facts originate from JLCPCB / LCSC and are subject to their terms.
License
MIT © Eyalm321
Available Tools
28 toolsjlcpcb_database_statusA
Report the status of the local component catalog database: whether it exists, its file path, size, component count, and when it was last built/refreshed.
Inputs: no named parameters.
jlcpcb_get_component_detailsA
Get full details for a specific JLCPCB part: catalog metadata (manufacturer, package, category), pricing tiers, parametric specifications, datasheet, and images, plus stock from both pools — jlc_assembly_stock (catalog snapshot, authoritative for PCBA) and lcsc_retail_stock (live LCSC retail). An LCSC-retail 0 is NOT an assembly shortage.
Inputs: lcsc (required).
jlcpcb_get_component_pricingA
Get live quantity-break pricing tiers (USD unit price per quantity ladder) for a specific JLCPCB part.
Inputs: lcsc (required).
jlcpcb_get_component_stockA
Get stock for a specific JLCPCB part from BOTH inventory pools: jlc_assembly_stock (JLCPCB assembly availability, from the catalog snapshot — the number that matters for PCBA) and lcsc_retail_stock (LCSC retail, live from wmsc.lcsc.com). These are DIFFERENT pools: an LCSC-retail 0 does NOT mean a part is unavailable for assembly (common for Basic parts). Treat assembly stock as authoritative for board production.
Inputs: lcsc (required).
jlcpcb_get_datasheet_urlA
Get the datasheet PDF URL for a specific JLCPCB part. Prefers the live API value and falls back to the catalog snapshot.
Inputs: lcsc (required).
jlcpcb_list_categoriesA
List the component categories and subcategories available in the local catalog, each with a component count. Optionally filter to a single top-level category. Useful for discovering valid category filter values for searches.
Inputs: category.
jlcpcb_official_component_feedA
Official JLCPCB Parts API (authenticated): cursor-paginated bulk feed of the component catalog. Pass the lastKey returned by a previous call to page through the entire library. Requires API credentials.
Inputs: last_key.
jlcpcb_official_component_libraryA
Official JLCPCB Parts API (authenticated): browse the full assembly component library, paginated. Requires API credentials.
Inputs: page, page_size.
jlcpcb_official_get_component_detailA
Official JLCPCB Parts API (authenticated): authoritative details — specs, stock, pricing, and attributes — for one or more LCSC part codes. More complete than the public live endpoint. Requires API credentials.
Inputs: codes (required).
jlcpcb_official_private_libraryA
Official JLCPCB Parts API (authenticated): list YOUR account's private / consigned component library (parts you hold at JLCPCB), paginated. Only available with API credentials.
Inputs: page, page_size.
jlcpcb_pcb_calculate_priceA
Official PCB API: calculate price and lead time for a PCB / SMT-stencil order (a quote, no order is placed). Pass a params object with keys such as orderType, fileKey, pcbParam (layers, dimensions, quantity, ...), smtStencilParam, country, postCode, city, shippingMethod. Requires API credentials.
Inputs: params (required).
jlcpcb_pcb_create_orderA
Official PCB API: CREATE A REAL, PAID PCB / SMT-stencil order. Disabled unless JLCPCB_ENABLE_ORDERS=true. Pass a params object (typically built from a prior jlcpcb_pcb_calculate_price quote) with keys such as fileKey, batchNum, orderType, pcbParam, shippingAddress, billingAddress, shippingMethod. Requires API credentials.
Inputs: params (required).
jlcpcb_pcb_get_audit_infoB
Official PCB API: get engineering audit (review) info for an uploaded design by key. Requires API credentials.
Inputs: key (required), language.
jlcpcb_pcb_get_order_detailA
Official PCB API: get order details by batch number. Requires API credentials.
Inputs: batch_num (required).
jlcpcb_pcb_get_wip_processA
Official PCB API: get the work-in-progress production status for an order. Requires API credentials.
Inputs: order_uuid (required).
jlcpcb_pcb_impedance_template_listA
Official PCB API: list impedance template settings for given stackup parameters (stencilLayer, cuprumThickness, plateType, etc.). Requires API credentials.
Inputs: params.
jlcpcb_pcb_stencil_price_configA
Official PCB API: get the SMT stencil (steel) price configuration. Requires API credentials.
Inputs: no named parameters.
jlcpcb_pcb_upload_blind_via_hole_imgA
Official PCB API: upload a blind/buried-via stackup image for boards that need one. Requires API credentials.
Inputs: file_path (required), file_name.
jlcpcb_pcb_upload_gerberA
Official PCB API: upload a Gerber archive (zip) for quoting/ordering. Returns a fileKey to pass to jlcpcb_pcb_calculate_price / jlcpcb_pcb_create_order. Requires API credentials.
Inputs: file_path (required), file_name.
jlcpcb_refresh_databaseA
Download and rebuild the local component catalog from the latest yaqwsx/jlcparts snapshot. Downloads ~50MB and may take several minutes. Use occasionally to pick up newly added components (live stock/pricing is always current regardless).
Inputs: no named parameters.
jlcpcb_search_componentsA
Search the JLCPCB component catalog by keyword and/or parametric filters, enriched with live pricing. The catalog (descriptions, packages, attributes, categories) comes from a local SQLite snapshot. Each result reports jlc_assembly_stock (catalog — the figure that matters for PCBA) and lcsc_retail_stock (live LCSC retail, a different pool; a 0 here is NOT an assembly shortage). Ranked Basic-first, then by assembly stock, then unit price. Examples: '10k resistor 0805', 'STM32F4', 'ceramic capacitor'.
Inputs: query (required), package, category, min_stock, +9 more.
jlcpcb_tdp_calculate_priceA
Official 3D-printing API: calculate price for a 3D-printing job (a quote, no order is placed). Pass a params object with keys such as fileAccessId, materialAccessId, materialColorAccessId, itemCount, surfaceTreatmentProcess, shippingAddress, freightMode. Requires API credentials.
Inputs: params (required).
jlcpcb_tdp_create_orderA
Official 3D-printing API: CREATE A REAL, PAID 3D-printing order. Disabled unless JLCPCB_ENABLE_ORDERS=true. Pass a params object (typically from a prior jlcpcb_tdp_calculate_price quote) with keys such as fileAccessId, materialAccessId, itemCount, shippingAddress, billingAddress, freightMode. Requires API credentials.
Inputs: params (required).
jlcpcb_tdp_file_analysis_resultA
Official 3D-printing API: fetch the analysis result (dimensions/volume/printability) for an uploaded model by its fileAccessId. Requires API credentials.
Inputs: file_access_id (required).
jlcpcb_tdp_order_detailA
Official 3D-printing API: get a 3D-printing order's details by batch number. Requires API credentials.
Inputs: batch_num (required).
jlcpcb_tdp_order_listA
Official 3D-printing API: list your 3D-printing orders, paginated/filterable. Pass an optional params object (currentPage, pageRows, orderStatus, searchKey, ...). Requires API credentials.
Inputs: params.
jlcpcb_tdp_order_processA
Official 3D-printing API: get production progress for a 3D-printing order by order number. Requires API credentials.
Inputs: order_no (required).
jlcpcb_tdp_upload_modelA
Official 3D-printing (TDP) API: upload a 3D model file (e.g. STL/STEP) for analysis and quoting. Returns a fileAccessId used by the other TDP tools. Requires API credentials.
Inputs: file_path (required), file_name.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 28 tools
Most tools have distinct purposes, but there is clear overlap among component info tools: jlcpcb_get_component_details, jlcpcb_get_component_stock, jlcpcb_get_component_pricing, and jlcpcb_official_get_component_detail all return similar data. The official/public split adds confusion. TDP and PCB tools are well-separated.
Names consistently use the jlcpcb_ prefix with subdomain (official_, tdp_, pcb_) and mostly follow a verb_noun structure. However, several tools are noun phrases (official_component_library, database_status, tdp_file_analysis_result, pcb_impedance_template_list) and the official component tools mix verbs and nouns (official_get_component_detail vs official_component_feed).
28 tools is high, but the server covers three distinct services (components, PCB, 3D printing), each with around 9 tools. This makes the count defensible, though slightly heavy for a single surface.
The major lifecycle flows are covered: search/details/price/order for components and TDP, upload/quote/order/track for PCB. The only notable gap is the lack of a PCB order list (only detail by batch number).
Maintenance
Related MCP Connectors
Public MCP server for discovering open jobs. Search, filter, and get application links.
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
MCP server for accessing curated awesome list documentation
Related MCP Servers
- AlicenseAqualityFmaintenanceA Model Context Protocol (MCP) server for the Mouser Electronics API. Enables searching electronic components, managing shopping carts, and tracking orders directly through Claude or other MCP clients.95MIT
- AlicenseBqualityCmaintenanceRead-only MCP server for finding, comparing, and shortlisting engineering parts from distributor and marketplace APIs.6MIT
- AlicenseAqualityDmaintenanceA read-only MCP server for electronics engineers to search DigiKey parts, get detailed product information, plan and validate BOMs, and export order lists, using the official DigiKey API.7Apache 2.0
- AlicenseAqualityCmaintenanceAn MCP server that picks JLCPCB/LCSC parts for KiCad circuits with assembly cost in mind, automating part selection, stock risk checks, and quantity-tiered pricing.84MIT