Skip to main content
Glama

@whatic/mcp

Local stdio MCP proxy for the whatic.io IC-discovery MCP server.

whatic.io runs a remote MCP server (streamable-http) at https://whatic.io/mcp exposing IC-discovery tools (find_parts, get_specs, compare_parts, search, lookup, get, get_image). Many MCP clients only support launching a local process over stdio. This package is that local process: it forwards everything to the remote server. It contains no tool logic of its own.

Usage

Once published, add to your MCP client config:

{
  "mcpServers": {
    "whatic": {
      "command": "npx",
      "args": ["-y", "@whatic/mcp"]
    }
  }
}

For Claude Code:

claude mcp add whatic -- npx -y @whatic/mcp

Until published to npm, run from a local checkout instead:

git clone https://github.com/pitkonst/whatic-mcp.git
cd whatic-mcp
npm install
npm run build
node dist/index.js

and point your client's command/args at node / ["<path-to-repo>/dist/index.js"].

Related MCP server: jlcpcb-mcp

Configuration

  • WHATIC_MCP_URL — override the remote MCP server URL (defaults to https://whatic.io/mcp). Useful for pointing at a local or staging what-ic server during development.

Development

npm install
npm run build   # compile TypeScript to dist/
npm run smoke   # verify the live remote server end-to-end

There is no unit test suite: this package has no business logic beyond forwarding requests to the remote server, so npm run smoke (a real round-trip against the live endpoint) is the meaningful check.

Available Tools

7 tools
compare_partsA

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
partsYesTwo or more IC part numbers to rank relatively; needs >=2 priced parts for a verdict.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden, and it does disclose the key trait: the result is a relative ranking based on a distributor snapshot, not a live quote. This manages expectations about freshness and absolute accuracy. It does not discuss auth or errors, but for a read-only comparison tool the main caveat is present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One compact sentence delivers the output dimensions first and the important caveat in a parenthetical. There is no filler or repeated schema content; every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with a full output schema, the description covers what is compared, what dimensions are returned, and the snapshot/live-quote caveat. It does not explicitly guide selection among siblings like find_parts or get_specs, but the input contract is fully specified in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already explains that parts must be two or more IC part numbers with at least two priced for a verdict. The description only restates the concept of a set and adds no syntactic or formatting value, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the input resource (a set of IC part numbers) and the outputs (relative price tier, stock posture, library class), making the tool's function recognizable. It lacks an explicit verb and does not differentiate from siblings like get_specs or lookup, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'from a distributor snapshot, not a live quote' gives useful context and an implied exclusion, and the schema adds the requirement of at least two priced parts. However, no alternative sibling tools are named and there is no explicit when-to-use statement, so usage guidance is mostly implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_partsA

Shortlist IC part numbers by parametric spec constraints, ranked by how many constraints each part satisfies, then by headroom past those thresholds, and spread across device families. Each constraint is {canonical, op: gte|lte|eq|range, value, unit?}. Returns per-constraint pass/fail/unknown, plus matched (parts that qualified) vs returned (parts in this response) — when they differ this is a ranked page, not the full set. canonical MUST be one of the exact names below (case-sensitive): abs_max_current, abs_max_voltage, 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, dynamic_range, 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, sector_erase_time, sensitivity, settling_time, slew_rate, standby_current, supply_voltage_range, switching_frequency, switching_voltage, vgs_threshold, zener_voltage

ParametersJSON Schema
NameRequiredDescriptionDefault
top_kNoMaximum number of parts to return, best first.
constraintsYesSpec constraints; a part is ranked by how many it satisfies.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden, and it is very transparent: it explains ranking by constraint satisfaction and headroom, the matched vs. returned distinction, per-constraint pass/fail/unknown output, and the case-sensitive canonical-name requirement. It also notes that `unit` is informational only, which prevents a common misuse.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The prose is tight and front-loaded, with key behavioral details packed into the first two sentences. The long canonical-name list is redundant with the schema's enum but is presented as a direct requirement, so it is justified; still, it makes the description bulkier than necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a complex constraint model, the description covers the essential semantics: input shape, canonical names, operator set, ranking behavior, paging nuance, and output semantics. The presence of an output schema means return-value documentation is not required from the description, and nothing critical for calling the tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers all parameter details at 100% coverage, so the baseline is 3. The description adds some behavioral context around constraints (ranking, headroom, matched vs. returned) but does not materially add new meaning to the parameters themselves beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Shortlist IC part numbers by parametric spec constraints') and a distinctive resource, making the tool's purpose obvious. It does not explicitly name sibling tools or contrast itself with search/lookup, but the parametric-constraint phrasing is enough to separate it from generic search tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The opening sentence gives a clear context for use: when you need to shortlist IC parts based on parametric constraints. However, it does not state when not to use this tool or explicitly point to alternatives such as search, get_specs, or compare_parts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_imageA

Fetch datasheet figure images (PNG/JPEG) for opaque ref tokens obtained from search/lookup/get_segments. Returns each image plus its caption/description/page metadata. Only type='image' segments have image data; a ref that is not one comes back as an error record whose available_images lists the document's figures nearest that ref's page and section, closest first.

ParametersJSON Schema
NameRequiredDescriptionDefault
refsYesOpaque `ref` tokens (from search/lookup/get_segments) of image segments; non-image segments return an error record.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully carries behavioral disclosure. It states what is returned (image plus caption/description/page metadata), explicitly warns that non-image refs produce an error record, and explains the fallback behavior with `available_images` and closest-first ordering. This is rich edge-case disclosure for a simple tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences front-load the core action and then pack in return metadata, the image-segment constraint, and error behavior without fluff. Every clause earns its place, and the structure is easy for an agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no output schema and no annotations, this description is unusually complete: it covers input provenance, valid input type, return contents, and invalid-input behavior. There is no missing information that an agent needs to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents that `refs` are opaque tokens from search/lookup/get_segments of image segments and that non-image segments return an error record. The description largely restates this, adding no meaningful parameter-level meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Fetch datasheet figure images (PNG/JPEG)' for opaque `ref` tokens. It clearly distinguishes this from siblings by scoping it to image segments and by naming the source tools (search/lookup/get_segments) rather than describing general segment retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states that refs must come from search/lookup/get_segments and that only `type='image'` segments have image data, giving an explicit when-to-use boundary. It does not name an alternative tool for non-image segments, but the error behavior makes the intended use clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_segmentsA

Expand opaque ref tokens (from search/lookup) into full datasheet segment content.

ParametersJSON Schema
NameRequiredDescriptionDefault
refsYesOpaque `ref` tokens from search/lookup hit records, to expand into full segment content.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the burden of explaining behavior. It conveys the expansion/resolution behavior and the source of the refs, but does not explicitly state non-mutation, behavior on invalid refs, ordering, or other operational traits. The 'expand' wording implies a read-type operation, but explicit safety/error details are absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loads the core operation ('Expand'), and provides the essential provenance of the input tokens. Every phrase earns its place, and there is no redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one required parameter, a fully documented schema, and an output schema present, the description covers the core contract well. It could additionally specify edge cases like invalid ref tokens or batch size limits, but for a straightforward expansion endpoint the current level of detail is nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides a 100% descriptive description for the only parameter, refs. The tool description essentially repeats the same concept without adding new detail about format, limits, or examples, so it adds no meaningful semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb, 'Expand,' and a specific resource: opaque ref tokens from search/lookup into full datasheet segment content. This clearly differentiates the tool from siblings like get_specs or get_image by tying it directly to expanding search/lookup outputs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description strongly implies the usage context: call this when you have opaque ref tokens produced by search/lookup and need the underlying segment content. It does not explicitly enumerate alternatives or exclusion cases, but the context is clear enough for an agent to select this over siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_specsA

Read canonical extracted specs (min/typ/max, unit, conditions) for known IC part numbers from a pre-extracted parametric index — not from datasheet text. This is the cheapest and most precise source for numeric parameters where it has coverage. Optionally restrict to specific canonical parameter names. A part absent from results (with a "No specs found" warning) means no index coverage, not that the datasheet lacks the parameter — fall back to lookup for that part.

ParametersJSON Schema
NameRequiredDescriptionDefault
canonicalsNoOptional: restrict to these canonical parameter names; omit to return all available specs.
part_numbersYesExact IC part numbers / MPNs, e.g. ['NE5532', 'LM358']. Family fallback is applied (e.g. TL084CDT -> TL084C).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden, and it does so thoroughly: it discloses that results come from a pre-extracted index, that absence of a part in `results` means no index coverage rather than absence in the datasheet, and that the tool issues a 'No specs found' warning. It also clarifies it does not read datasheet text, which is a key behavioral limitation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences, each serving a distinct purpose: what it reads, when to prefer it, how to restrict output, and what absence means with fallback. The 'cheapest and most precise' phrasing is mildly promotional, but the overall structure is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity, no annotations, and an output schema, the description covers all essential context: data source, content shape, cost/precision trait, optional filtering, missing-coverage semantics, and fallback routing. An agent has enough to correctly invoke it and interpret an empty result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description does reinforce meaning by calling out 'canonical parameter names' and 'known IC part numbers,' but it mostly restates what the schema already explains (optional restriction, exact MPNs). It adds no new syntax or format details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Read') and resource ('canonical extracted specs ... from a pre-extracted parametric index'), which is clearly distinct from the datasheet-text source and from siblings like lookup. It also defines the spec contents (min/typ/max, unit, conditions), giving the agent a precise mental model of the tool's scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance: 'This is the cheapest and most precise source for numeric parameters where it has coverage,' and explicit when-not-to-use by saying it is 'not from datasheet text.' It names the fallback alternative directly: 'fall back to `lookup` for that part,' so the agent is told exactly what to do when coverage is absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lookupA

One-shot spec/section retrieval: full content of the most relevant datasheet segments for one or more parts (fuses search+get_segments). Already groups results per part (via parts), so prefer lookup over search when you know the part(s).

ParametersJSON Schema
NameRequiredDescriptionDefault
partsNoPart numbers to scope and group the retrieval by; results are returned per part.
queryYesWhat to retrieve, e.g. 'supply voltage' or 'absolute maximum ratings'.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It discloses that this is a combined one-shot operation, returns full content of relevant segments, and groups results per part. It does not discuss side effects or permissions, but for a retrieval tool the disclosed behavior is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two focused sentences: the first defines what the tool does, and the second gives routing guidance. No wasted words, and the most important scoping detail is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has only two parameters, full schema coverage, an output schema, and the description clarifies its relationship to key siblings. An agent has enough information to invoke it correctly and understand its grouping behavior without ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds little beyond the schema beyond reinforcing the grouping behavior tied to parts, which the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise action: one-shot retrieval of full datasheet segment content for one or more parts. It also differentiates itself from siblings by noting it fuses search and get_segments and groups results per part.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises preferring lookup over search when the part(s) are known, giving a clear usage condition relative to a sibling. It does not enumerate exclusions or alternative comparisons for all siblings, but the guidance is actionable and specific.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv0.1.1
    • Removedget
    • Changedget_image1 field changed
      • changedInput schema / properties / refs / description
        Previous value: -"Opaque `ref` tokens (from search/lookup/get) of image segments; non-image segments return an error record."New value: +"Opaque `ref` tokens (from search/lookup/get_segments) of image segments; non-image segments return an error record."
    • Addedget_segments
  2. 7 tool updatesv0.1.0
    • First observedcompare_parts
    • First observedfind_parts
    • First observedget
    • First observedget_image
    • First observedget_specs
    • First observedlookup
    • First observedsearch

TDQS

A4.2/5.0

Scored across 7 tools

Disambiguation4/5

find_parts, get_specs, compare_parts, and get_image are clearly distinct, while search, lookup, and get_segments overlap in the retrieval workflow but have explicit descriptions that differentiate triage, fused retrieval, and ref expansion. Minor boundary ambiguity remains between get_specs and lookup, but the descriptions provide enough guidance.

Naming Consistency4/5

Most tools follow a predictable verb_noun pattern: find_parts, get_specs, compare_parts, get_segments, get_image. The bare-verb names search and lookup are minor deviations that remain readable and do not obscure their purpose.

Tool Count5/5

Seven tools form a well-scoped toolkit for IC parametric discovery and datasheet retrieval. Each tool earns its place by covering a distinct step in the workflow without unnecessary duplication or bloat.

Completeness5/5

The toolset covers the full read-only datasheet research lifecycle: parametric discovery, normalized spec lookup, distributor comparison, corpus search, full segment retrieval, and figure extraction. There are no obvious dead ends or missing operations for the stated domain.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A minimal and extensible local MCP server that provides core utilities like ping and echo alongside a file search tool integrated with the Everything CLI. It enables fast local file searching and service testing through a standardized stdio transport layer.
    -
  • A
    license
    A
    quality
    C
    maintenance
    MCP server for JLCPCB/LCSC component search, live stock and pricing, datasheets, and PCB/3D printing ordering via authenticated API.
    28
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Search and explore a catalog of 2,000+ MCP servers — full-text search, trending, hot, categories, and side-by-side comparison — from any MCP client. A zero-dependency stdio bridge over the hosted awesome-mcp.tools endpoint.
    8
    16 npm
    MIT