Context-hub electronics-sourcing

Guide for AI agents to source electronic components using parts-mcp — tool sequencing, decision patterns, and multi-step workflows

install
source · Clone the upstream repo
git clone https://github.com/andrewyng/context-hub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/andrewyng/context-hub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/content/sourceparts/skills/electronics-sourcing" ~/.claude/skills/andrewyng-context-hub-electronics-sourcing && rm -rf "$T"
manifest: content/sourceparts/skills/electronics-sourcing/SKILL.md
source content

Electronics Sourcing Skill

This skill teaches you how to source electronic components effectively using parts-mcp tools. It covers tool sequencing, decision patterns, and how to handle common scenarios.

When to Use Which Search Tool

search_parts
— Use when you have a part number, description, or general keywords. This is your default starting point.

"Find me a 100nF capacitor" → search_parts(query="100nF capacitor")
"Look up STM32F411" → search_parts(query="STM32F411")

search_by_parameters
— Use when you need to match specific electrical parameters within a category. More precise than keyword search.

"I need a 50V 100nF X7R 0402 cap" → search_by_parameters(
  parameters={"capacitance": "100nF", "voltage": "50V", "dielectric": "X7R", "package": "0402"},
  category="capacitor"
)

Decision rule: If the user gives you 3+ specific parameters, use

search_by_parameters
. For part numbers or general queries, use
search_parts
.

The Search → Price → Availability → Alternative Pattern

This is the core sourcing workflow. Follow this sequence:

1. SEARCH → Find the part
2. DETAILS → Get full specifications (if needed for validation)
3. PRICE → Compare across suppliers
4. AVAILABILITY → Check stock levels
5. ALTERNATIVE → Find replacements (only if price is too high or stock is insufficient)

Do not skip steps 3 and 4. A part that exists in the database may be out of stock or prohibitively expensive.

When the user asks to "source" or "find" a part, they expect pricing and availability — not just search results. Always follow through to at least step 4.

BOM Processing Pattern

BOM processing is asynchronous. Always follow this exact sequence:

1. upload_bom(file_path=path)           → Get job_id
2. check_bom_status(job_id=job_id)      → Poll until status is "complete"
3. Review matched_parts and unknown_parts
4. For unmatched: search_parts() to resolve manually
5. calculate_bom_cost() with all resolved parts

Polling: Call

check_bom_status
and check the
status
field. If
"in_progress"
, wait and poll again. Do not assume instant completion.

Handling unmatched parts: When

unknown_parts
is not empty, try
search_parts
with the
value
and
footprint
fields as the query. If still unmatched, report them to the user — do not silently skip them.

Datasheet Reading Strategy

Datasheets can be hundreds of pages. Always use this two-step approach:

1. list_datasheet_sections(sku="PART-NUMBER")
   → See the table of contents
   → Identify which sections contain what you need

2. read_datasheet(sku="PART-NUMBER", query="relevant keywords")
   → Read only matching chunks
   → Saves significant context window

Never call

read_datasheet
without a
query
parameter unless the datasheet is short (< 20 pages). An unfiltered read of a 200-page datasheet will consume excessive context.

Keyword tips: Use specific technical terms. "maximum input voltage absolute ratings" is better than "voltage". Multiple keywords narrow the results.

Manufacturing Pipeline

Manufacturing operations (DFM, fab quoting, assembly) are all asynchronous:

submit_dfm() → check_dfm_status()       # DFM analysis
quote_fabrication() → check_manufacturing_status()  # Fab quote
quote_assembly() → polls internally      # Combined fab + assembly

DFM first: Always run DFM analysis before requesting a fabrication quote. DFM may reveal issues that affect manufacturability or cost.

Assembly quotes combine fabrication and BOM costing in one call. Use

quote_assembly
when the user wants a complete per-unit cost including both PCB fabrication and component assembly.

Handling Partial Failures

Real-world sourcing often has partial results. Handle gracefully:

Some parts not found in BOM:

  • Report the unmatched count clearly
  • Attempt
    search_parts
    for each unmatched part
  • If still unmatched, list them for the user with their reference designators and values
  • Calculate cost for matched parts, noting the incomplete total

Some parts unavailable:

  • Report which parts are out of stock
  • Automatically call
    find_alternatives
    for each unavailable part
  • Present alternatives with their specifications and pricing
  • Let the user decide on substitutions

Price comparison with missing suppliers:

  • Report how many suppliers were checked
  • Note if key suppliers (the user's preferred ones) returned no results
  • Present available pricing data without waiting for all suppliers

KiCad Project Workflow

When working with KiCad projects:

1. find_kicad_projects()                    → Discover available projects
2. analyze_kicad_project(project_path=...)  → Understand project structure
3. extract_bom_from_kicad(project_path=...) → Get component list
4. match_components_to_parts(components=...) → Match to real parts
5. Follow the BOM processing pattern above for unmatched components

KiCad CLI requirement: BOM extraction may invoke

kicad-cli
if no existing BOM file is found in the project. Ensure KiCad 8+ is installed.

Local mode only: All KiCad tools require local mode (stdio transport). They are not available in hosted/HTTP mode.

Cost Optimization Tips

When helping users optimize costs:

  1. Check quantity breaks: Call
    compare_prices
    with different quantities (1, 10, 100, 1000) to show price break curves
  2. Suggest alternatives: If a part is expensive, call
    find_alternatives
    and compare pricing
  3. Preferred suppliers: Use
    preferred_suppliers
    in
    calculate_bom_cost
    to bias toward the user's existing supplier relationships
  4. Consolidation: When multiple parts come from the same supplier, note the potential for consolidated shipping

Response Patterns

When a user asks to "source a part": →

search_parts
get_part_details
compare_prices
check_availability
Present: part details, best price, stock status, and any concerns.

When a user provides a BOM file: →

upload_bom
→ poll
check_bom_status
→ report matched/unmatched →
calculate_bom_cost
Present: match rate, unmatched items, total cost, per-line breakdown.

When a user asks "is this in stock?": →

check_availability
with quantities Present: stock levels, number of suppliers with stock, whether quantity is meetable.

When a user asks about a datasheet: →

list_datasheet_sections
read_datasheet
with targeted query Present: the specific information requested, citing page numbers.

When a user asks for a manufacturing quote: →

submit_dfm
(if not already done) →
quote_fabrication
or
quote_assembly
Present: DFM issues (if any), estimated cost, lead time.