Electronic component datasheets for AI agents: pinouts, specs, package info and design checks.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Costs 5¢ per call. Reads a datasheet image with vision AI: a graph, package drawing, pin diagram or schematic that read_datasheet returned. Pass the image_key from that response (the storage path in the image URL), optionally with a question. For exact electrical values prefer read_datasheet's text tables; use this for what only the picture shows (package dimensions, pin assignments, curve trends, approximate values off a curve). Example: analyze_image(part_number='IRFZ44N', image_key='images/abc123.png', question='What is the drain current at Vgs=5V?')
Image storage path from read_datasheet output (e.g. 'images/abc123.png')
MPN of the component
Optional question about the image (e.g. 'What are the package dimensions?')
Costs 5¢ per call. Reads a datasheet image with vision AI: a graph, package drawing, pin diagram or schematic that read_datasheet returned. Pass the image_key from that response (the storage path in the image URL), optionally with a question. For exact electrical values prefer read_datasheet's text tables; use this for what only the picture shows (package dimensions, pin assignments, curve trends, approximate values off a curve). Example: analyze_image(part_number='IRFZ44N', image_key='images/abc123.png', question='What is the drain current at Vgs=5V?')
| Argument | Type | Description |
|---|---|---|
| question | string | Optional question about the image (e.g. 'What are the package dimensions?') |
| image_key* | string | Image storage path from read_datasheet output (e.g. 'images/abc123.png') |
| part_number* | string | MPN of the component |
{
"type": "object",
"required": [
"part_number",
"image_key"
],
"properties": {
"question": {
"type": "string",
"description": "Optional question about the image (e.g. 'What are the package dimensions?')"
},
"image_key": {
"type": "string",
"description": "Image storage path from read_datasheet output (e.g. 'images/abc123.png')"
},
"part_number": {
"type": "string",
"description": "MPN of the component"
}
}
}Costs 2¢ per call. Check up to 50 BOM lines for lifecycle, stock against quantity, observed single-distributor sourcing, datasheet status and stale/missing prices. Accepts MPNs or LCSC numbers; duplicate MPN quantities are aggregated. Uses exact identities, catalogue snapshots and available distributor details. Unknown remains unknown; single_source does not prove only one supplier exists. Compact columns/rows by default; verbose returns objects. No extraction.
| Argument | Type | Description |
|---|---|---|
| lines* | array | |
| verbose | boolean |
{
"type": "object",
"required": [
"lines"
],
"properties": {
"lines": {
"type": "array",
"items": {
"type": "object",
"required": [
"mpn",
"qty"
],
"properties": {
"mpn": {
"type": "string"
},
"qty": {
"type": "integer",
"maximum": 1000000000,
"minimum": 1
}
}
},
"maxItems": 50,
"minItems": 1
},
"verbose": {
"type": "boolean",
"default": false
}
}
}Costs 5¢ per call. Checks your operating conditions against the part's absolute maximum ratings and recommended operating conditions; returns PASS / WARNING / FAIL / INSUFFICIENT_DATA per condition and overall. Conditions by part type: converters and LDOs take input_voltage, output_voltage, output_current, ambient_temp, efficiency; MOSFETs take supply_voltage (VDS), output_current (ID), ambient_temp, power_dissipation; logic ICs take supply_voltage (VCC). Verdicts: - PASS: inside the recommended range, or at or below the derated limit. By default input_voltage and supply_voltage must stay at or below 80% of the absolute-maximum rating when no recommended maximum is known (inside a recommended range is a PASS), and output_current at or below 80% of its tightest rating; derating_pct changes this. Zero headroom on a rated current always warns. This is a screening policy; derating_reference cites the reliability guidance and its limits. Each check reports margin_pct against the raw limit, derating_pct and derated_limit. - WARNING: within the limit but above the derated limit, above the recommended maximum but below the absolute maximum, or within 10% of an absolute maximum that isn't derated. - FAIL: outside the range or over the limit. - INSUFFICIENT_DATA: not safely checkable, usually an ambient_temp that could not be turned into a junction-temperature check. It never counts as a PASS. Each check has limit_type (max / min / range / fixed); checks read from the datasheet text (source='llm') carry source_quote, the row the limit came from. A condition with no limit is listed in unmatched and holds the overall verdict at WARNING. If the ratings came from a different MPN than you asked for, resolved_as and data_quality_warning lead the response. Temperature: ambient_temp is never silently compared with a junction limit. When the part's own dissipation is known, the tool estimates Tj = Ta + Pd × RθJA (RθJA from the datasheet's thermal table) and judges Tj against the junction limits, reported as 'temperature (junction est.)'. Pd by part type: LDO (Vin - Vout) × Iout; switching converter Vout × Iout × (1/η - 1), which needs efficiency; anything else, pass power_dissipation (for a MOSFET, ID² × RDS(on)). Without these the check is INSUFFICIENT_DATA and its note says what to pass. Current ratings are read at ambient_temp (a MOSFET's 25 °C drain current is derated towards its maximum junction temperature). temperature_basis says which basis was used. Stored parameters answer instantly; anything else is read from the datasheet's ratings tables (validation_method says which). A part not yet extracted starts extraction and returns status='extracting' (not charged). A new datasheet takes about 2.5 minutes at the median and 6.5 minutes at the 90th percentile; a cold GPU start can take about 12 minutes. These are estimates, not deadlines. Not for: transient or full thermal analysis (the junction estimate is a steady-state screen), MOSFET SOA curves (analyze_image the SOA graph), passives with no ratings table. Example: check_design_fit('TPS54302', input_voltage=24, output_voltage=5, output_current=2.5, ambient_temp=70, efficiency=0.92)
Free. Extraction status of 1-20 parts. A part being read reports current_step, elapsed_seconds, estimated_remaining_seconds with a range, and poll_after_seconds; a failed one reports its error; a part that isn't ready may list related_ready part numbers whose datasheet is readable now. A new datasheet takes about 2.5 minutes at the median and 6.5 minutes at the 90th percentile; a cold GPU start can take about 12 minutes. These are estimates, not deadlines. A part whose PDF is still being looked for reads 'resolving'. Not final. Keep polling while the status is 'resolving', 'queued', 'pending' or 'extracting' (after poll_after_seconds); stop at 'ready', 'failed', 'no_source' or 'unsupported'. datasheet_status: 'ready' → read it; 'extracting' / 'queued' / 'pending' / 'resolving' → poll check_extraction_status; 'not_extracted' → prefetch_datasheets; 'no_source' / 'unsupported' → request_datasheet_upload. Full list in the server instructions.
| Argument | Type | Description |
|---|---|---|
| part_numbers* | array | 1-20 parts. Specific manufacturer part number (MPN) or LCSC number (e.g. 'TPS54302DDCR', 'C2837938'). Not a value ('100nF'), description or reference designator ('R1'). |
{
"type": "object",
"required": [
"part_numbers"
],
"properties": {
"part_numbers": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 20,
"minItems": 1,
"description": "1-20 parts. Specific manufacturer part number (MPN) or LCSC number (e.g. 'TPS54302DDCR', 'C2837938'). Not a value ('100nF'), description or reference designator ('R1')."
}
}
}Costs 2¢ per call. Compares 2-5 parts you already know side by side in one call (find candidates with search_parts or find_alternative first). Returns each part's details (per-provider specs, price breaks and links, the cached datasheet summary), a comparison table of parameters × parts built from each part's own provider data, and per-part flags: lifecycle (obsolete, NRND, last-time-buy), stock, datasheet_status, and resolved_as when a lookup landed on a different MPN. compact=true returns only the flags and the table, a much shorter answer; add include_summaries=true for the summaries. Never starts extraction: prefetch_datasheets first if you need summaries. If any input is not a real part number, the whole call is rejected with a 'rejected' map; a valid MPN no provider knows still gets a column, with an error. Example: compare_parts(['TPS54302', 'LM2596', 'MP2359']) datasheet_status: 'ready' → read it; 'extracting' / 'queued' / 'pending' / 'resolving' → poll check_extraction_status; 'not_extracted' → prefetch_datasheets; 'no_source' / 'unsupported' → request_datasheet_upload. Full list in the server instructions.
| Argument | Type | Description |
|---|---|---|
| compact | boolean | Return the shorter answer: per-part flags and the comparison table, without per-provider detail or summaries. Default false: the full answer. |
| part_numbers* | array | 2-5 parts. Specific manufacturer part number (MPN) or LCSC number (e.g. 'TPS54302DDCR', 'C2837938'). Not a value ('100nF'), description or reference designator ('R1'). |
| include_summaries | boolean | With compact=true, also return each part's cached datasheet summary (about 2-4k characters each). The full answer always has them. |
Costs 10¢ per call. That is the upload fee, charged only when the file passes its checks. Confirms an upload started with request_datasheet_upload: pass its upload_token. The server re-hashes the uploaded bytes, checks it is a PDF with the MPN on the first page, adds it to your organisation's private library and queues extraction. Success returns document_id, mpn, sha256, file_size_bytes and status='pending'; poll check_extraction_status with the MPN. A new datasheet takes about 2.5 minutes at the median and 6.5 minutes at the 90th percentile; a cold GPU start can take about 12 minutes. These are estimates, not deadlines. Failures (not charged): 'upload_not_found' (no bytes yet; retry the PUT), 'sha256_mismatch' (re-hash and re-request), 'invalid_pdf', 'mpn_not_in_pdf' (wrong file, or scanned image-only), 'token_expired' (older than 15 minutes; start again).
| Argument | Type | Description |
|---|---|---|
| upload_token* | string | Opaque token returned by request_datasheet_upload. |
{
"type": "object",
"required": [
"upload_token"
],
"properties": {
"upload_token": {
"type": "string",
"description": "Opaque token returned by request_datasheet_upload."
}
}
}Costs 2¢ per call. Finds alternative and second-source parts for an MPN that is out of stock, end of life or too expensive, ranked by match_score with match_notes. Candidates come from provider search and from parts with the same function in our own datasheet index; they must do the same job (an accelerometer is not offered for a 6-axis IMU) and are compared on named electrical specs. Each has a lifecycle, stock and datasheet_status; obsolete and NRND parts rank last. Constraints: 'same_package' (fuzzy: SOT-23 ≡ SOT23, SOIC-8 ≡ SOP-8), 'in_stock', 'jlcpcb'. They are never relaxed silently: a candidate that fails one is left out of alternatives, removed_by_constraints counts what each removed, and when that leaves too few, relaxed_matches lists the best ones with the constraints they failed. When nothing matches at all, the call returns error_type 'not_found' (not charged) with the parts that would match without the constraints, under matches_without_constraints. The part's own family is also searched among datasheets already read (e.g. CH340C for CH340G). A score is similarity, not verified pin or electrical compatibility: check pinout and limits before substituting. Eval boards and modules are excluded. compact=true gives shorter rows (no per-source data or price breaks) and leaves out the reference part's summary unless include_original_summary=true. For a head-to-head of candidates you already have, use compare_parts. Example: find_alternative('TPS54302', constraints=['same_package', 'in_stock']) datasheet_status: 'ready' → read it; 'extracting' / 'queued' / 'pending' / 'resolving' → poll check_extraction_status; 'not_extracted' → prefetch_datasheets; 'no_source' / 'unsupported' → request_datasheet_upload. Full list in the server instructions.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max alternatives to return (default 5, max 20). |
| compact | boolean | Return the shorter answer: one short row per candidate (identity, lifecycle, stock, cheapest price, providers, match notes) and no reference-part summary. Default false: the full answer. |
Free. Find candidates by function and numeric specs with units, package or stock. Example: query='buck converter', constraints=[{parameter:'vin_max',op:'>=',value:'24 V'}, {parameter:'iout',op:'>=',value:'2 A'}]. Also accepts vds, rds_on, canonical parameter names and text constraints (interface contains I2C). Uses catalogue/JLCPCB parameters and DigiKey parametric filters when configured. Ranks pass/fail/unknown evidence; unknown is unverified. Values retain sources and test conditions. Compact columns/rows by default; verbose returns objects. Does not validate design fit.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query* | string | Function, e.g. buck converter, N-channel MOSFET, 6-axis IMU |
| package | string | |
| verbose | boolean | |
| in_stock | boolean | Require positive stock observed within 24h; refresh at most six candidates. |
| constraints | array |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"default": 5,
"maximum": 20,
"minimum": 1
},
"query": {
"type": "string",
"description": "Function, e.g. buck converter, N-channel MOSFET, 6-axis IMU"
},
"package": {
"type": "string"
},
"verbose": {
"type": "boolean",
"default": false
},
"in_stock": {
"type": "boolean",
"default": false,
"description": "Require positive stock observed within 24h; refresh at most six candidates."
},
"constraints": {
"type": "array",
"items": {
"type": "object",
"required": [
"parameter",
"op",
"value"
],
"properties": {
"op": {
"enum": [
">=",
"<=",
">",
"<",
"=",
"contains"
],
"type": "string"
},
"value": {
"type": "string",
"description": "Number with units, e.g. 10 mΩ, or text"
},
"parameter": {
"type": "string"
}
}
},
"maxItems": 12
}
}
}Free. Full details for one part: provider specs, price, stock and lifecycle, the per-MPN structured values (specialized_specs), the cached datasheet summary, and datasheet_status with available_sections when ready. Known lifecycle risks carry lifecycle_warning. Discovered in-document errata_sections and application_circuit_sections include names for read_datasheet (use read_args when supplied); absence does not prove the manufacturer has no separate errata. If any of it is for a different MPN than you asked for (an orderable variant, a base part, a sibling's datasheet), resolved_as and data_quality_warning at the top of the response say so, and prose written for another part is labelled as such at the start of datasheet_summary (family_summary with compact=true): trust specialized_specs for numbers. prefetch_datasheet=true starts extraction at no extra charge. Use after search_parts to drill into one result. datasheet_status: 'ready' → read it; 'extracting' / 'queued' / 'pending' / 'resolving' → poll check_extraction_status; 'not_extracted' → prefetch_datasheets; 'no_source' / 'unsupported' → request_datasheet_upload. Full list in the server instructions.
| Argument | Type | Description |
|---|---|---|
| compact | boolean | Return the shorter answer: prose written for another part comes back as family_summary instead of a labelled datasheet_summary. Default false: the full answer. |
| verbose | boolean | Return every available_sections entry. By default the first 50 are returned, plus a '_truncated' entry saying how many more exist. |
| provider | string | Which provider's sources to show (default 'all'). |
| part_number* |
Free. Starts background extraction for up to 20 parts at once, e.g. a BOM, so they are ready before you read them. Returns immediately with each part's status. A new datasheet takes about 2.5 minutes at the median and 6.5 minutes at the 90th percentile; a cold GPU start can take about 12 minutes. These are estimates, not deadlines. Poll check_extraction_status (free). A part without a known datasheet comes back 'queued' while we look for its PDF, and reads 'resolving' until the search ends; only then is 'no_source' final: check the part number, or attach the PDF with request_datasheet_upload (org-private). The Free plan has a daily cap on new datasheets ('trial_limit'). MPNs or LCSC numbers only; resolve value-only BOM rows with search_parts first. Example: prefetch_datasheets(['TPS54302', 'ADS1115', 'LP5907']) datasheet_status: 'ready' → read it; 'extracting' / 'queued' / 'pending' / 'resolving' → poll check_extraction_status; 'not_extracted' → prefetch_datasheets; 'no_source' / 'unsupported' → request_datasheet_upload. Full list in the server instructions.
| Argument | Type | Description |
|---|---|---|
| part_numbers* | array | 1-20 parts. Specific manufacturer part number (MPN) or LCSC number (e.g. 'TPS54302DDCR', 'C2837938'). Not a value ('100nF'), description or reference designator ('R1'). |
{
"type": "object",
"required": [
"part_numbers"
],
"properties": {
"part_numbers": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 20,
"minItems": 1,
"description": "1-20 parts. Specific manufacturer part number (MPN) or LCSC number (e.g. 'TPS54302DDCR', 'C2837938'). Not a value ('100nF'), description or reference designator ('R1')."
}
}
}Costs 2¢ per call. Reads a part's datasheet. Section mode (default): start with section='summary' for an overview and available_sections, then ask for any section by name; names come from the datasheet's own headings (e.g. 'register_map', 'i2c_interface'); an unknown name returns the nearest section names and pages. Use max_chars and the returned next_offset to continue a long read. Search mode (mode='search' with a query): semantic search within this datasheet, for targeted questions such as a register bit field or an I2C address. Prefer specific sections to section='all', which can fill your context. The first read of a new part starts extraction and returns status='extracting' (not charged). A new datasheet takes about 2.5 minutes at the median and 6.5 minutes at the 90th percentile; a cold GPU start can take about 12 minutes. These are estimates, not deadlines. For microcontrollers, register-level programming detail usually lives in a separate reference manual, not the datasheet; available_sections shows what is present. datasheet_status: 'ready' → read it; 'extracting' / 'queued' / 'pending' / 'resolving' → poll check_extraction_status; 'not_extracted' → prefetch_datasheets; 'no_source' / 'unsupported' → request_datasheet_upload. Full list in the server instructions.
| Argument | Type | Description |
|---|---|---|
| mode | string | 'section' (default) returns a named section, 'search' does semantic search |
| limit | integer | Max search results in search mode (default 3). Each result includes adjacent context chunks. |
| query | string | Search query; required when mode='search', ignored otherwise. Example: 'charge voltage register', 'I2C address'. |
| format |
Free. The upload fee is charged by confirm_datasheet_upload, after the file is checked. Gives a signed URL to upload a datasheet PDF we don't have: use it when datasheet_status is 'no_source' (once the search has finished: not while it is 'resolving') or 'unsupported'. Three steps: 1. Call this with the MPN, the file's SHA-256 and its byte size; you get upload_url, upload_method ('PUT'), upload_headers and an upload_token. 2. Upload the bytes: `curl -X PUT -H 'Content-Type: application/pdf' --data-binary @file.pdf "$UPLOAD_URL"` (plus any upload_headers). 3. Call confirm_datasheet_upload with the upload_token. Checked at confirm (nothing charged if a check fails): a parseable PDF, the SHA-256 and size you declared, and the MPN or its stem on the first page (scanned image-only PDFs fail this). Max 50 MB; the part's datasheet, not a dev-kit manual, schematic or app note. Uploaded datasheets are private to your organisation. Tokens expire after 15 minutes; request a new one if needed.
| Argument | Type | Description |
|---|---|---|
| size_bytes* | integer | Size of the PDF in bytes (1,024 to 50,000,000). |
| part_number* | string | MPN the PDF belongs to. Not a value or description. |
| manufacturer | string | Optional manufacturer name (e.g. 'Texas Instruments') when the MPN alone is ambiguous. |
| expected_sha256* | string | Lowercase hex SHA-256 of the PDF bytes (64 chars), e.g. from `shasum -a 256 file.pdf`. |
{
"type": "object",
"required": [
"part_number",
"expected_sha256",
"size_bytes"
],
"properties": {
"size_bytes": {
"type": "integer",
"maximum": 50000000,
"minimum": 1024,
"description": "Size of the PDF in bytes (1,024 to 50,000,000)."
},
"part_number": {
"type": "string",
"description": "MPN the PDF belongs to. Not a value or description."
},
"manufacturer": {
"type": "string",
"description": "Optional manufacturer name (e.g. 'Texas Instruments') when the MPN alone is ambiguous."
},
"expected_sha256": {
"type": "string",
"pattern": "^[0-9a-f]{64}$",
"description": "Lowercase hex SHA-256 of the PDF bytes (64 chars), e.g. from `shasum -a 256 file.pdf`."
}
}
}Costs 2¢ per call. Semantic search across every datasheet already extracted (not every part that exists), for spec-based discovery such as 'low-noise LDO with PSRR above 70dB'. Returns matching chunks with part_number and a 0-100 relevance_score. To find a specific part by number, use search_parts.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max results (default 3) |
| query* | string | Natural language search query |
| section_type | string | Optional: limit search to a specific section type |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"default": 3,
"description": "Max results (default 3)"
},
"query": {
"type": "string",
"description": "Natural language search query"
},
"section_type": {
"enum": [
"all",
"electrical_characteristics",
"features",
"description",
"pin_configuration",
"absolute_maximum_ratings",
"application_information",
"recommended_operating_conditions"
],
"type": "string",
"default": "all",
"description": "Optional: limit search to a specific section type"
}
}
}Free. Start here. Searches components by part number or keyword (e.g. 'STM32F103', 'buck converter 3A') across JLCPCB, Mouser and DigiKey in parallel. Results are merged by MPN with indicative price and stock per source and a datasheet_status. For an MPN query, eval boards and dev kits come back separately as related_kits. Parts in your organisation's private library whose MPN, manufacturer, description, type, category or tag matches are appended with source='private_library' and their tags. For spec-based discovery in plain language, use search_datasheets. datasheet_status: 'ready' → read it; 'extracting' / 'queued' / 'pending' / 'resolving' → poll check_extraction_status; 'not_extracted' → prefetch_datasheets; 'no_source' / 'unsupported' → request_datasheet_upload. Full list in the server instructions.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max results per provider (default 20). With providers='all' the total can be up to 3× this. |
| query* | string | Search query (part number or keyword) |
| providers | string | Which providers to query (default 'all'). |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"default": 20,
"description": "Max results per provider (default 20). With providers='all' the total can be up to 3× this."
},
"query": {
"type": "string",
"description": "Search query (part number or keyword)"
},
"providers": {
"enum": [
"all",
"jlcpcb",
"mouser",
"digikey"
],
"type": "string",
"default": "all",
"description": "Which providers to query (default 'all')."
}
}
}| Argument | Type | Description |
|---|---|---|
| efficiency | number | Converter efficiency at this operating point, as a fraction (0.92) or a percentage (92). Lets the tool estimate a switching converter's junction temperature. |
| part_number* | string | Specific manufacturer part number (MPN) or LCSC number (e.g. 'TPS54302DDCR', 'C2837938'). Not a value ('100nF'), description or reference designator ('R1'). |
| ambient_temp | number | Ambient temperature TA (°C). |
| derating_pct | number | Percent below a rating a PASS must stay, for input_voltage, supply_voltage and output_current. Default 20 (run at no more than 80% of the rating). 0 turns optional derating off; no current headroom still warns. |
| input_voltage | number | Input voltage / VIN (V). For converters. |
| output_current | number | Output current / IOUT (A). For MOSFETs, this is drain current ID. |
| output_voltage | number | Output voltage / VOUT (V). For converters/LDOs. |
| supply_voltage | number | Supply voltage / VCC / VDD (V). For MOSFETs, VDS; compared against VDS(max) only. |
| power_dissipation | number | The part's own power dissipation (W), if you have worked it out (e.g. ID² × RDS(on) for a MOSFET). Used for the junction-temperature estimate. |
| switching_frequency | number | Switching frequency FSW (kHz). For converters. |
{
"type": "object",
"required": [
"part_number"
],
"properties": {
"efficiency": {
"type": "number",
"maximum": 100,
"description": "Converter efficiency at this operating point, as a fraction (0.92) or a percentage (92). Lets the tool estimate a switching converter's junction temperature.",
"exclusiveMinimum": 0
},
"part_number": {
"type": "string",
"description": "Specific manufacturer part number (MPN) or LCSC number (e.g. 'TPS54302DDCR', 'C2837938'). Not a value ('100nF'), description or reference designator ('R1')."
},
"ambient_temp": {
"type": "number",
"maximum": 200,
"minimum": -65,
"description": "Ambient temperature TA (°C)."
},
"derating_pct": {
"type": "number",
"maximum": 50,
"minimum": 0,
"description": "Percent below a rating a PASS must stay, for input_voltage, supply_voltage and output_current. Default 20 (run at no more than 80% of the rating). 0 turns optional derating off; no current headroom still warns."
},
"input_voltage": {
"type": "number",
"maximum": 1500,
"minimum": 0,
"description": "Input voltage / VIN (V). For converters."
},
"output_current": {
"type": "number",
"maximum": 500,
"minimum": 0,
"description": "Output current / IOUT (A). For MOSFETs, this is drain current ID."
},
"output_voltage": {
"type": "number",
"maximum": 1500,
"minimum": 0,
"description": "Output voltage / VOUT (V). For converters/LDOs."
},
"supply_voltage": {
"type": "number",
"maximum": 1500,
"minimum": 0,
"description": "Supply voltage / VCC / VDD (V). For MOSFETs, VDS; compared against VDS(max) only."
},
"power_dissipation": {
"type": "number",
"maximum": 1000,
"minimum": 0,
"description": "The part's own power dissipation (W), if you have worked it out (e.g. ID² × RDS(on) for a MOSFET). Used for the junction-temperature estimate."
},
"switching_frequency": {
"type": "number",
"maximum": 10000000,
"minimum": 0,
"description": "Switching frequency FSW (kHz). For converters."
}
}
}{
"type": "object",
"required": [
"part_numbers"
],
"properties": {
"compact": {
"type": "boolean",
"default": false,
"description": "Return the shorter answer: per-part flags and the comparison table, without per-provider detail or summaries. Default false: the full answer."
},
"part_numbers": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 5,
"minItems": 2,
"description": "2-5 parts. Specific manufacturer part number (MPN) or LCSC number (e.g. 'TPS54302DDCR', 'C2837938'). Not a value ('100nF'), description or reference designator ('R1')."
},
"include_summaries": {
"type": "boolean",
"default": false,
"description": "With compact=true, also return each part's cached datasheet summary (about 2-4k characters each). The full answer always has them."
}
}
}| constraints | array | Optional filters. 'in_stock' = known non-zero stock at some provider. 'same_package' = same footprint (fuzzy). 'jlcpcb' = orderable at JLCPCB (also limits the provider search to JLCPCB). |
| part_number* | string | Specific manufacturer part number (MPN) or LCSC number (e.g. 'TPS54302DDCR', 'C2837938'). Not a value ('100nF'), description or reference designator ('R1'). |
| include_original_summary | boolean | With compact=true, also return the reference part's cached datasheet summary (about 2-3k characters). The full answer always has it. |
{
"type": "object",
"required": [
"part_number"
],
"properties": {
"limit": {
"type": "integer",
"default": 5,
"maximum": 20,
"description": "Max alternatives to return (default 5, max 20)."
},
"compact": {
"type": "boolean",
"default": false,
"description": "Return the shorter answer: one short row per candidate (identity, lifecycle, stock, cheapest price, providers, match notes) and no reference-part summary. Default false: the full answer."
},
"constraints": {
"type": "array",
"items": {
"enum": [
"in_stock",
"same_package",
"jlcpcb"
],
"type": "string"
},
"default": [],
"description": "Optional filters. 'in_stock' = known non-zero stock at some provider. 'same_package' = same footprint (fuzzy). 'jlcpcb' = orderable at JLCPCB (also limits the provider search to JLCPCB)."
},
"part_number": {
"type": "string",
"description": "Specific manufacturer part number (MPN) or LCSC number (e.g. 'TPS54302DDCR', 'C2837938'). Not a value ('100nF'), description or reference designator ('R1')."
},
"include_original_summary": {
"type": "boolean",
"default": false,
"description": "With compact=true, also return the reference part's cached datasheet summary (about 2-3k characters). The full answer always has it."
}
}
}| string |
| Specific manufacturer part number (MPN) or LCSC number (e.g. 'TPS54302DDCR', 'C2837938'). Not a value ('100nF'), description or reference designator ('R1'). |
| prefetch_datasheet | boolean | Start background datasheet extraction (no extra charge). |
{
"type": "object",
"required": [
"part_number"
],
"properties": {
"compact": {
"type": "boolean",
"default": false,
"description": "Return the shorter answer: prose written for another part comes back as family_summary instead of a labelled datasheet_summary. Default false: the full answer."
},
"verbose": {
"type": "boolean",
"default": false,
"description": "Return every available_sections entry. By default the first 50 are returned, plus a '_truncated' entry saying how many more exist."
},
"provider": {
"enum": [
"all",
"jlcpcb",
"mouser",
"digikey"
],
"type": "string",
"default": "all",
"description": "Which provider's sources to show (default 'all')."
},
"part_number": {
"type": "string",
"description": "Specific manufacturer part number (MPN) or LCSC number (e.g. 'TPS54302DDCR', 'C2837938'). Not a value ('100nF'), description or reference designator ('R1')."
},
"prefetch_datasheet": {
"type": "boolean",
"default": false,
"description": "Start background datasheet extraction (no extra charge)."
}
}
}| string |
| For a named section, json returns tables as columns and rows plus remaining text, preserving source cells (useful for register_map). Paging and page citations still apply. |
| offset | integer | Continue a section using next_offset from the previous read. |
| section | string | Section name for section mode. Start with 'summary' to discover available sections. Common: summary, pinout, electrical, abs_max, register_map, timing, package. Any heading in the datasheet works (slugified). |
| max_chars | integer | Text budget; a whole sentence or table row may exceed it. |
| part_number* | string | Specific manufacturer part number (MPN) or LCSC number (e.g. 'TPS54302DDCR', 'C2837938'). Not a value ('100nF'), description or reference designator ('R1'). |
{
"type": "object",
"required": [
"part_number"
],
"properties": {
"mode": {
"enum": [
"section",
"search"
],
"type": "string",
"default": "section",
"description": "'section' (default) returns a named section, 'search' does semantic search"
},
"limit": {
"type": "integer",
"default": 3,
"description": "Max search results in search mode (default 3). Each result includes adjacent context chunks."
},
"query": {
"type": "string",
"description": "Search query; required when mode='search', ignored otherwise. Example: 'charge voltage register', 'I2C address'."
},
"format": {
"enum": [
"markdown",
"json"
],
"type": "string",
"default": "markdown",
"description": "For a named section, json returns tables as columns and rows plus remaining text, preserving source cells (useful for register_map). Paging and page citations still apply."
},
"offset": {
"type": "integer",
"default": 0,
"minimum": 0,
"description": "Continue a section using next_offset from the previous read."
},
"section": {
"type": "string",
"default": "summary",
"description": "Section name for section mode. Start with 'summary' to discover available sections. Common: summary, pinout, electrical, abs_max, register_map, timing, package. Any heading in the datasheet works (slugified)."
},
"max_chars": {
"type": "integer",
"maximum": 60000,
"minimum": 500,
"description": "Text budget; a whole sentence or table row may exceed it."
},
"part_number": {
"type": "string",
"description": "Specific manufacturer part number (MPN) or LCSC number (e.g. 'TPS54302DDCR', 'C2837938'). Not a value ('100nF'), description or reference designator ('R1')."
}
}
}