IC datasheet search: parametric part finding, spec lookup, price comparison — grounded in real PDFs.
MCP Server: io.whatic/datasheets
The io.whatic/datasheets MCP server provides IC datasheet search capabilities, including parametric part finding and spec lookup. It also supports price comparison and is described as being grounded in real PDFs, indicating the underlying results are based on actual datasheet documents.
🛠️ Key Features
IC datasheet search
Parametric part finding
Spec lookup
Price comparison
Results grounded in real PDFs
🚀 Use Cases
Find electronic components by parametric criteria
Look up specifications from datasheet content
Compare pricing for identified IC parts
⚡ Developer Benefits
Datasheet search workflows informed by real PDF sources
Enables structured retrieval for part identification and specification lookup
⚠️ Limitations
Only the server’s described functions are specified; no additional tool details are provided.
Captured live from the server via tools/list.
find_parts
Shortlist IC part numbers by parametric spec constraints, ranked by how many constraints each part satisfies. Each constraint is {canonical, op: gte|lte|eq|range, value, unit?}. Returns per-constraint pass/fail/unknown. `canonical` MUST be one of the exact names below (case-sensitive):
adc_resolution, block_erase_time, breakdown_voltage_ds, channel_count, clamping_voltage, clock_frequency, cmrr, cmti, coil_power, coil_resistance, coil_voltage, collector_emitter_voltage, contact_current, contact_resistance, core_size, cpu_speed, current_rating, dark_current, data_rate, data_retention, dc_resistance, drain_current, driver_count, dropout_voltage, eeprom_size, emitter_base_voltage, fall_time, forward_current, forward_voltage, gain_bandwidth, gate_charge, impedance, input_bias_current, input_capacitance, input_offset_current, input_offset_current_drift, input_offset_voltage, input_offset_voltage_drift, input_voltage_noise_density, insertion_loss, io_count, isolation_voltage, junction_capacitance, load_capacitance, memory_size, operate_time, operating_frequency, operating_temperature, output_capacitance, output_count, output_current, output_noise_voltage, output_power, output_voltage, output_voltage_high, output_voltage_low, page_program_time, peak_pulse_current, power_dissipation, program_erase_cycles, program_memory_size, propagation_delay, psrr, quiescent_current, ram_size, rds_on, receiver_count, rectified_current, release_time, response_time, reverse_leakage_current, reverse_recovery_time, reverse_transfer_capacitance, reverse_voltage, rise_time, sample_rate, sensitivity, settling_time, slew_rate, standby_current, supply_voltage_range, switching_frequency, switching_voltage, vgs_threshold, zener_voltage
Parameters2
constraints
array
required
Spec constraints; a part is ranked by how many it satisfies.
top_k
integer
optional
Maximum number of parts to return, best first.
Raw schema
{
"type": "object",
"properties": {
"constraints": {
"description": "Spec constraints; a part is ranked by how many it satisfies.",
"items": {
"$ref": "#/$defs/Constraint"
},
"title": "Constraints",
"type": "array"
},
"top_k": {
"default": 50,
"description": "Maximum number of parts to return, best first.",
"title": "Top K",
"type": "integer"
}
},
"required": [
"constraints"
],
"$defs": {
"Constraint": {
"description": "One parametric spec constraint for find_parts.",
"properties": {
"canonical": {
"description": "Canonical parameter name (see the whatic://parametric/canonicals resource or this tool's description for the exact set), e.g. supply_voltage_range.",
"title": "Canonical",
"type": "string"
},
"op": {
"description": "Comparison: gte (>=), lte (<=), eq (==), or range (value within [low, high]).",
"enum": [
"gte",
"lte",
"eq",
"range"
],
"title": "Op",
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"items": {
"type": "number"
},
"type": "array"
}
],
"description": "A single number for gte/lte/eq; a two-element [low, high] array for range.",
"title": "Value"
},
"unit": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Informational unit only, e.g. 'V', 'A' — comparison uses the stored SI value.",
"title": "Unit"
}
},
"required": [
"canonical",
"op",
"value"
],
"title": "Constraint",
"type": "object"
}
},
"title": "find_partsArguments"
}
get_specs
Read canonical extracted specs (min/typ/max, unit, conditions) for known
IC part numbers. Optionally restrict to specific canonical parameter names.
Parameters2
part_numbers
array
required
Exact IC part numbers / MPNs, e.g. ['NE5532', 'LM358']. Family fallback is applied (e.g. TL084CDT -> TL084C).
canonicals
any
optional
Optional: restrict to these canonical parameter names; omit to return all available specs.
Raw schema
{
"type": "object",
"properties": {
"part_numbers": {
"description": "Exact IC part numbers / MPNs, e.g. ['NE5532', 'LM358']. Family fallback is applied (e.g. TL084CDT -> TL084C).",
"items": {
"type": "string"
},
"title": "Part Numbers",
"type": "array"
},
"canonicals": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional: restrict to these canonical parameter names; omit to return all available specs.",
"title": "Canonicals"
}
},
"required": [
"part_numbers"
],
"title": "get_specsArguments"
}
compare_parts
Relative price tier, stock posture, and library class for a set of IC part
numbers (a ranking from a distributor snapshot, not a live quote).
Parameters1
parts
array
required
Two or more IC part numbers to rank relatively; needs >=2 priced parts for a verdict.
Raw schema
{
"type": "object",
"properties": {
"parts": {
"description": "Two or more IC part numbers to rank relatively; needs >=2 priced parts for a verdict.",
"items": {
"type": "string"
},
"title": "Parts",
"type": "array"
}
},
"required": [
"parts"
],
"title": "compare_partsArguments"
}
search
Search the datasheet corpus; returns hit records (metadata + snippet, each
with an opaque `ref`). Pass a ref list to `get` for full content.
For part-specific queries, pass scope='device:<MPN>' (e.g. scope='device:NE5532')
to restrict hits to that part and avoid cross-part contamination.
Parameters3
q
string
required
Free-text query, e.g. 'input voltage noise density'.
scope
any
optional
Optional filter, e.g. 'device:NE5532', to restrict hits to one part and avoid cross-part matches.
k
integer
optional
Maximum number of hit records to return.
Raw schema
{
"type": "object",
"properties": {
"q": {
"description": "Free-text query, e.g. 'input voltage noise density'.",
"title": "Q",
"type": "string"
},
"scope": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional filter, e.g. 'device:NE5532', to restrict hits to one part and avoid cross-part matches.",
"title": "Scope"
},
"k": {
"default": 5,
"description": "Maximum number of hit records to return.",
"title": "K",
"type": "integer"
}
},
"required": [
"q"
],
"title": "searchArguments"
}
lookup
One-shot spec/section retrieval: full content of the most relevant datasheet
segments for one or more parts (fuses search+get). Already groups results per
part (via `parts`), so prefer `lookup` over `search` when you know the part(s).
Parameters2
query
string
required
What to retrieve, e.g. 'supply voltage' or 'absolute maximum ratings'.
parts
any
optional
Part numbers to scope and group the retrieval by; results are returned per part.
Raw schema
{
"type": "object",
"properties": {
"query": {
"description": "What to retrieve, e.g. 'supply voltage' or 'absolute maximum ratings'.",
"title": "Query",
"type": "string"
},
"parts": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Part numbers to scope and group the retrieval by; results are returned per part.",
"title": "Parts"
}
},
"required": [
"query"
],
"title": "lookupArguments"
}
get
Expand opaque `ref` tokens (from search/lookup) into full datasheet segment
content.
Parameters1
refs
array
required
Opaque `ref` tokens from search/lookup hit records, to expand into full segment content.
Raw schema
{
"type": "object",
"properties": {
"refs": {
"description": "Opaque `ref` tokens from search/lookup hit records, to expand into full segment content.",
"items": {
"type": "string"
},
"title": "Refs",
"type": "array"
}
},
"required": [
"refs"
],
"title": "getArguments"
}
get_image
Fetch datasheet figure images (PNG/JPEG) for opaque `ref` tokens obtained
from search/lookup/get. Returns each image plus its caption/description/page
metadata. Only `type='image'` segments have image data.
Parameters1
refs
array
required
Opaque `ref` tokens (from search/lookup/get) of image segments; non-image segments return an error record.