MCP server for searching JLCPCB components with live stock and pricing
Project description
JLCPCB Search MCP Server
A Model Context Protocol (MCP) server that provides AI assistants with powerful search capabilities for JLCPCB's electronic component catalog. Search 450,000+ components with real-time stock levels and pricing.
Built on top of yaqwsx/jlcparts - huge thanks to Jan Mrazek for doing the hard work of downloading JLCPCB XLS sheets, converting them to structured JSON, and hosting them for the community!
Features
- Fast Local Search: SQLite database with 450K+ components for instant searches
- Live Data: Real-time stock levels and pricing from JLCPCB API
- Smart Filtering: Filter by package type, category, Basic/Extended parts, minimum stock
- Detailed Information: Full specifications, datasheets, pricing tiers, and images
- Easy Integration: Works with Claude Desktop, VSCode, and any MCP-compatible client
Example Usage
Ask Claude natural questions about components:
You: "Can you find a good 10uF SMD capacitor that can support 10V or less?"
Claude's Response:
Based on my search, here are some good 10uF SMD capacitors that can support 10V or less:
Recommended Options (Aluminum Electrolytic SMD):
Best Choice - C4747968 (RST10UF16V013)
- Rating: 10uF, 16V
- Package: SMD, D4xL5.4mm
- Stock: 76,080 units (excellent availability)
- Price: $0.0248 (20+), $0.0170 (600+)
- Link: https://jlcpcb.com/partdetail/C4747968
Alternative - C970654 (RVT1C100M0405)
- Rating: 10uF, 16V
- Package: SMD, D4xL5.4mm
- Stock: 7,360 units
- Price: $0.0293 (20+), $0.0202 (600+)
- Link: https://jlcpcb.com/partdetail/C970654
All of these are aluminum electrolytic SMD capacitors rated for 16V, which gives you plenty of margin for a 10V application. The C4747968 is my top recommendation due to its excellent stock levels and lower price.
Note: These are all Extended parts (not Basic), so they will incur additional assembly fees if you're using JLCPCB assembly.
Installation
From PyPI
# Install for current user (recommended for Claude Desktop)
pip install --user jlcpcb-search-mcp
# Or use pipx for isolated installation (best for CLI tools)
pipx install jlcpcb-search-mcp
# Or install in a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install jlcpcb-search-mcp
# Or install with uv in a project (uv is my fav!)
uv add jlcpcb-search-mcp
From Source
git clone https://github.com/peterb154/jlcpcb-search-mcp.git
cd jlcpcb-search-mcp
pip install -e .
Important: When using Claude Code, the MCP server must be accessible from your project's environment:
- For uv projects: Install with
uv add jlcpcb-search-mcpand useuv run claudecommands - For system-wide use: Install with
pip install --user jlcpcb-search-mcporpipx install jlcpcb-search-mcp - For venv projects: Install in your venv and activate it before starting your editor
Quick Start
Claude Code Configuration
Option 1: Automatic Setup (Recommended)
Use the setup utility to automatically configure the MCP server:
# For current workspace (creates .mcp.json)
# Uses shared database in user's application data directory - RECOMMENDED
jlcpcb-mcp-setup --workspace
# Or if using uv project
uv run jlcpcb-mcp-setup --workspace
# For development of THIS package only (uses ./data/ directory)
# This creates a separate 900MB+ database in your project - avoid unless needed
jlcpcb-mcp-setup --workspace --dev
# Globally for Claude Desktop (also uses shared database)
jlcpcb-mcp-setup --global
After running the setup:
-
Reload your editor window (Cmd+Shift+P → Developer: Reload Window)
-
Check that the MCP server is connected:
# If using uv project: uv run claude mcp list
should return something like the following - notice that the mcp server is connected:
Checking MCP server health... jlcpcb-search: jlcpcb-mcp - ✓ Connected
# Otherwise if not using uv: claude mcp list
-
You should see:
jlcpcb-search: jlcpcb-mcp - ✓ Connected -
Start searching for components!
Option 2: Manual Configuration
Create .mcp.json in your workspace root:
{
"mcpServers": {
"jlcpcb-search": {
"command": "jlcpcb-mcp"
}
}
}
Or for global configuration in Claude Desktop:
macOS: ~/Library/Application Support/Claude/mcp.json
Windows: %APPDATA%\Claude\mcp.json
Linux: ~/.config/claude/mcp.json
Note for uv projects: The same simple config works! When you run uv run claude, it automatically uses the environment where jlcpcb-mcp is installed. No special configuration needed.
First Run & Database Setup
The database will be automatically built on your first component search. However, you can pre-download it to avoid waiting:
# Pre-download the database (recommended)
jlcpcb-mcp-setup --refresh-db
# Or with uv
uv run jlcpcb-mcp-setup --refresh-db
What to expect:
- Download: ~50MB compressed data (1,268 categories)
- Final size: ~917MB SQLite database uncompressed
- Time: ~3 minutes on fast internet connection (500Mbps), up to 10 minutes on slower connections
- Progress: Real-time updates showing download progress and category processing
If you don't pre-download, your first Claude query will trigger the download automatically, so expect a 3-10 minute wait.
Database Location
The database is shared across all your projects by default (recommended):
- macOS:
~/Library/Application Support/jlcpcb-mcp/components.sqlite - Linux:
~/.local/share/jlcpcb-mcp/components.sqlite - Windows:
%LOCALAPPDATA%\jlcpcb-mcp\components.sqlite
Why shared?
- One 900MB database serves all your projects
- Saves disk space
- Faster setup for new projects
- Easier to keep updated
Dev mode (--dev): Only use this if you're developing the jlcpcb-mcp package itself. It creates a separate database in ./data/ which is useful for testing but wastes space for normal usage.
License
MIT License - see LICENSE file for details
Acknowledgments
- yaqwsx/jlcparts by Jan Mrazek - Component data source and inspiration
- JLC Parts Web Search - If you want a great search UI without AI
- FastMCP - MCP server framework
- JLCPCB - Component data and API
Support
- Issues: GitHub Issues
- Documentation: docs/
- MCP Protocol: Model Context Protocol
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jlcpcb_search_mcp-1.1.4.tar.gz.
File metadata
- Download URL: jlcpcb_search_mcp-1.1.4.tar.gz
- Upload date:
- Size: 26.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e29a84c929945811fe02f30aefc4c7ed620466467a0ff3e2fe5fa1f362f52d0d
|
|
| MD5 |
c51a6d0e5d314bb93529c09eee2315e7
|
|
| BLAKE2b-256 |
2cb32002190e4d6a94d8a64f12a8114a9126cacd17e9549edca823a44727cae4
|
Provenance
The following attestation bundles were made for jlcpcb_search_mcp-1.1.4.tar.gz:
Publisher:
publish.yaml on peterb154/jlcpcb-search-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jlcpcb_search_mcp-1.1.4.tar.gz -
Subject digest:
e29a84c929945811fe02f30aefc4c7ed620466467a0ff3e2fe5fa1f362f52d0d - Sigstore transparency entry: 715852931
- Sigstore integration time:
-
Permalink:
peterb154/jlcpcb-search-mcp@5aa3d9bed025c707c3d11ddd9076dcdd56c2e74b -
Branch / Tag:
refs/heads/main - Owner: https://github.com/peterb154
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@5aa3d9bed025c707c3d11ddd9076dcdd56c2e74b -
Trigger Event:
push
-
Statement type:
File details
Details for the file jlcpcb_search_mcp-1.1.4-py3-none-any.whl.
File metadata
- Download URL: jlcpcb_search_mcp-1.1.4-py3-none-any.whl
- Upload date:
- Size: 18.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e510d6255823a428788d9031f711ff3f5d4e363e47a9639964b28258939cc25
|
|
| MD5 |
275e3558aa9fe448449bf8c601f0d219
|
|
| BLAKE2b-256 |
2ccdb5b5662724c2ae10986b683f7b5359764a1b5edd24d1545f84e9d37ab235
|
Provenance
The following attestation bundles were made for jlcpcb_search_mcp-1.1.4-py3-none-any.whl:
Publisher:
publish.yaml on peterb154/jlcpcb-search-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jlcpcb_search_mcp-1.1.4-py3-none-any.whl -
Subject digest:
2e510d6255823a428788d9031f711ff3f5d4e363e47a9639964b28258939cc25 - Sigstore transparency entry: 715852936
- Sigstore integration time:
-
Permalink:
peterb154/jlcpcb-search-mcp@5aa3d9bed025c707c3d11ddd9076dcdd56c2e74b -
Branch / Tag:
refs/heads/main - Owner: https://github.com/peterb154
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@5aa3d9bed025c707c3d11ddd9076dcdd56c2e74b -
Trigger Event:
push
-
Statement type: