compare_parts
Compare 2-5 electronic components side by side, merging pricing, stock, and datasheet summaries from multiple providers. Use specific MPNs only.
Instructions
Compare 2-5 electronic components side by side in a single call. For each part, returns merged provider data (pricing, stock, structured parameters, package) plus the cached datasheet summary if one exists, plus datasheet_status ('ready', 'extracting', or 'not_extracted').
Use this instead of calling get_part_details in a loop — it fans out provider queries in parallel and merges by MPN. For discovering candidates, use search_parts or find_alternative first; compare_parts assumes you already know which MPNs you want to compare.
Behavior:
Uses only cached datasheet summaries — does not trigger extraction. Call prefetch_datasheets first if you need summaries for parts that haven't been extracted yet.
Validates every MPN upfront. If any input is not a real part number (value, description, reference designator), the whole call is rejected with a 'rejected' map listing the offenders — other parts are not compared. Filter your list before calling.
If a valid MPN is not found at any provider, that part still appears in the response with an 'error' field; the other parts are compared normally.
IMPORTANT — part_numbers must be specific manufacturer part numbers (e.g. 'TPS54302DDCR', 'STM32F446RCT6') or LCSC numbers (e.g. 'C2837938'). Do NOT pass component values ('100nF', '10K'), descriptions ('buck converter'), or reference designators ('U3', 'R1').
Example: compare_parts(['TPS54302', 'LM2596', 'MP2359'])
DATASHEET STATUS VALUES:
'ready' — extracted and indexed; call read_datasheet, search_datasheets, or analyze_image.
'extracting' / 'in_progress' / 'queued' / 'pending' — extraction running or scheduled. Poll check_extraction_status every 5-10s until 'ready' or 'failed'. Typical time: 30s-2min.
'not_extracted' — known part but datasheet hasn't been fetched yet. Trigger it via prefetch_datasheets (cheapest) or by calling read_datasheet (auto-triggers on first read).
'no_source' — we couldn't find a public datasheet URL for this MPN. First, retry prefetch_datasheets in 10-30s (the URL resolver re-runs and often finds a source on the second pass). If still 'no_source', the agent can upload the PDF manually via request_datasheet_upload + confirm_datasheet_upload (see those tools). Org-uploaded datasheets are private to the org.
'unsupported' — PDF exists but can't be extracted (scanned image-only, encrypted, or corrupted). Upload a clean text-based PDF via request_datasheet_upload to override.
'failed' / 'error' — extraction errored. The response includes the error reason. Retry via prefetch_datasheets or escalate to support.
'rejected' — input wasn't a real MPN (bare value like '100nF', description, or reference designator). Fix the input and re-call.
'deduplicated' — another part in the family already has this datasheet; same content is returned under the primary MPN.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| part_numbers | Yes | 2-5 specific manufacturer part numbers or LCSC numbers to compare head-to-head. Must be real MPNs — the call is rejected upfront if any entry is a value, description, or reference designator. |