For developers & AI teams

Give your agent a parts database it can cite.

Five tools, served over MCP, sitting on top of 935,000+ industrial products and 7.5M+ verified spec facts. Built so a procurement copilot, BOM generator, or engineering assistant can look up a real part instead of hallucinating one.

Private access

Current Tools

What's exposed

MCP (Model Context Protocol) is the open standard for connecting a model to external tools and data. These five tools are the current surface — query-shaped, not a SQL dump.

meta

Call this first. Category slugs, the spec keys actually observed per category (with units and five-language labels), and live totals — not documentation that drifts from reality. Guessing category and key names blind, before this tool existed, got 4 of 13 slugs and 7 of 14 keys right. This is why you don't have to.

requestmeta
meta()

// live response, abbreviated — full payload covers all 161 categories
{
  "vocab_version": "0.30.0",
  "generated_at": "2026-10-23 14:17:48.711613-04:00",
  "totals": { "products": 935534, "facts": 7591309,
              "manufacturers": 229, "categories_with_data": 161 },
  "categories": [
    { "slug": "power_contactors",
      "labels": { "en": "Power contactors", "zh-TW": "功率接觸器",
                  "es": "Contactores de potencia",
                  "fr": "Contacteurs de puissance", "th": "คอนแทคเตอร์กำลัง" },
      "products": 12905,
      "typed_products": 12198,
      "spec_keys": [
        { "key": "rated_current_ac3_a", "unit": "A", "type": "number" }
      ] }
  ]
}

find_equivalents

Cross-brand alternates for a given part number — a deterministic, per-spec comparison on the category's required keys. A disagreement on a key both sides publish rules a candidate out; a key a candidate doesn't publish never does, and is reported as not_published. Every candidate says where its data came from and what its lifecycle status rests on, and every compared spec carries the source type and verification of both sides.

requestfind_equivalents
find_equivalents(mpn="3RT20262AL24")

// live response, abbreviated — 3 brands, up to 3 candidates each; two brands shown
{
  "target": { "mpn": "3RT20262AL24", "brand": "Siemens",
              "category": "power_contactors",
              "data_origin": "manufacturer_source",
              "spec_provenance": { ... } },
  "compared_on": ["rated_current_ac3_a", "coil_voltage_v", "poles", "voltage_max_v"],
  "tolerance": 0.25,
  "brands_found": 3,
  "equivalents": {
    "schneider_electric": [{ "mpn": "LC1D25P7",
      "spec_comparison": {
        "rated_current_ac3_a": { "target": 25.0, "candidate": "25 A AC",
          "delta_pct": 0.0, "status": "match",
          "candidate_provenance": { "tier": "manufacturer_stated",
            "verification": "manufacturer_url_confirmed",
            "verified_against": "https://www.se.com/us/en/product/LC1D25P7/..." },
          "target_provenance": { ... } },
        "coil_voltage_v": { "target": "230 V AC", "candidate": "230 V AC",
          "delta_pct": 0.0, "status": "match", ... }
      },
      "match_basis": { "compared": 4, "of": 4 },
      "lifecycle_status": "Active", "lifecycle_basis": "distributor", "orderable": null,
      "data_origin": "distributor_source" }],
    "abb": [{ "mpn": "AFC26-30-00-34",
      "spec_comparison": {
        "rated_current_ac3_a": { "target": 25.0, "candidate": 26.0,
          "delta_pct": 4.0, "status": "match", ... },
        "coil_voltage_v": { "target": "230 V AC", "candidate": 208.0,
          "delta_pct": -9.6, "status": "match", ... }
      },
      "differences": [{ "key": "power_kw", "target": "11 kW AC",
                        "candidate": 15.0, "delta_pct": 36.4 }, ...],
      "match_basis": { "compared": 4, "of": 4 },
      "lifecycle_status": "Active", "lifecycle_basis": "defaulted", "orderable": null,
      "data_origin": "manufacturer_source" }]
  }
}

Note the Schneider match shows data_origin: distributor_source and a distributor-based lifecycle, yet its rated current is already confirmed against Schneider's own page. The labels are per fact, and that is the real, current state for this record, not smoothed over. Differences outside the compared keys (power, depth, weight, temperature range) are listed, not hidden. See Coverage.

get_product

Full typed profile of one MPN — headline specs plus the fully qualified fact table (voltage/temperature derating rows distributors don't show), with every fact labeled by source type, verification status, the page it was checked against, and confidence. Lifecycle says where the status came from and asserts orderable only on manufacturer evidence.

requestget_product
get_product(mpn="3RT20262AL24")

// live response, headline_specs abbreviated (all_facts carries the full derating table)
{
  "mpn": "3RT20262AL24",
  "manufacturer": "Siemens",
  "family": "SIRIUS 3RT contactors, 3-pole, up to 250 kW",
  "category": "power_contactors",
  "lifecycle_status": "Active",
  "lifecycle": { "status": "Active", "basis": "declared",
                 "source": "siemens_sieportal", "region": "us", "orderable": true },
  "source_link": {
    "url": "https://sieportal.siemens.com/en-us/products-services/detail/3RT20262AL24",
    "points_at": "product_page", "basis": "importer_declared" },
  "data_origin": "manufacturer_source",
  "headline_specs": {
    "rated_current_ac3_a": { "value": 25.0, "unit": "A",
      "qualifiers": { "standard": "iec", "at_voltage_v": 400, "utilisation_category": "ac3" },
      "source": "siemens_sieportal", "provenance_tier": "manufacturer_stated",
      "verification_status": "manufacturer_url_confirmed",
      "verified_against": "https://sieportal.siemens.com/en-us/products-services/detail/3RT20262AL24",
      "confidence": 0.95 },
    "coil_voltage_v": { "value": 230.0, "unit": "V", "qualifiers": { "current_kind": "ac" },
      "source": "digikey", "provenance_tier": "distributor_stated",
      "verification_status": "unverified", "verified_against": null, "confidence": 0.85 },
    "mechanical_life_cycles": { "value": 10000000.0,
      "source": "siemens_sieportal", "provenance_tier": "manufacturer_stated",
      "verification_status": "manufacturer_url_confirmed",
      "verified_against": "https://sieportal.siemens.com/en-us/products-services/detail/3RT20262AL24",
      "confidence": 0.95 }
  },
  "vocabulary": "canonical_keys.yaml v0.30.0"
}

search_products

Query by category and spec constraints — min / max / eq objects evaluated across headline, qualified, text and range facts, not free-text search. Returns the true total alongside the page.

requestsearch_products
search_products(
  category="power_contactors",
  constraints={
    "rated_current_ac3_a": {"min": 25},
    "coil_voltage_v": {"eq": 230}
  },
  limit=5
)

// live response: 5 of 167 matches returned; first result shown
{ "count": 5, "total": 167,
  "results": [{
    "mpn": "3RT20261AP001AA0", "brand": "Siemens",
    "lifecycle_basis": "declared", "orderable": true,
    "data_origin": "manufacturer_source",
    "specs": { "rated_current_ac3_a": 25.0,
               "coil_voltage_v": 230.0 },
    "spec_provenance": {
      "rated_current_ac3_a": {
        "tier": "manufacturer_stated",
        "verification": "manufacturer_url_confirmed",
        "verified_against": "https://sieportal.siemens.com/..." },
      "coil_voltage_v": {
        "tier": "distributor_stated",
        "verification": "unverified",
        "verified_against": null } } }, ...] }

get_datasheet

Document pointers for a part — manufacturer asset URLs, plus locally archived PDFs where we've kept a copy. 3.0M+ document and image links are indexed — datasheets; operating, installation, programming and design guides; and product images.

requestget_datasheet
get_datasheet(mpn="3RT20262AL24")

// live response, abbreviated
{
  "mpn": "3RT20262AL24",
  "manufacturer": "Siemens",
  "data_origin": "manufacturer_source",
  "documents": [
    { "type": "datasheet",
      "hosted_by": "manufacturer",
      "url": "https://mall.industry.siemens.com/
        teddatasheet/?format=PDF&mlfbs=
        3RT2026-2AL24&language=en&
        caller=SiePortal" },
    { "type": "datasheet",
      "hosted_by": "third_party",
      "url": "https://media.distributordatasolutions.com/
        siemenscomplete/2023q3/documents/
        03cd75a6c8e3624feae10591789d37ca37b458f2.pdf" }
  ],
  "local_pdfs": []
}

Why It's Hard

Why teams don't just scrape it themselves

  • 33+ manufacturers means 33+ different site structures, 33+ different vocabularies for the same physical spec, and at least one JavaScript-rendered SPA that breaks plain scrapers.
  • Normalization is the actual cost. Getting to a shared schema across brands means building and maintaining a reviewed mapping dictionary per source — not a one-time script.
  • Cross-brand equivalence is a standalone hard problem. Knowing that a Schneider contactor and a Siemens contactor are real substitutes, with per-spec justification, is expertise-gated work today.
  • Provenance has to be structural, not promised. Every fact here is tagged with its source and a confidence score at write time, not asserted after the fact.
Roadmap

Four more tools, built on what already exists

Not speculative additions — each one sits on infrastructure the database already has (versioning, cross-referenced identifiers, category taxonomy). Scoped, not shipped.

Discovery

list_categories()

A lightweight listing — slug and product count only — so an agent can find the right category without pulling the full meta payload before it can call search_products.

Change tracking

get_history(mpn)

Every fact is already versioned — this returns the actual diff: old value, new value, manufacturer link, timestamp. The engine behind the spec-change monitoring on our distributor roadmap.

Identity resolution

resolve_identifier()

Go from a barcode scan (gtin=) or a distributor's internal SKU (distributor_sku=) straight to the canonical MPN. Built on 985K+ identifiers already cross-referenced in the database.

Efficiency

batch_get_products(mpns=[…])

Full spec sheets for a whole BOM in one call instead of one get_product request per line item.

Workflows

What these look like chained together

Current tools and roadmap tools (marked) combined into actual workflows.

When a part goes EOL

Three calls, not a support ticket

get_product shows a lifecycle_status that's moved off Active. get_history (roadmap) pulls the actual change — old status, new status, manufacturer notice, date. find_equivalents immediately proposes verified substitutes.

Spec to BOM

"15HP compressor, 380V, needs a contactor"

search_products turns the constraint into real candidates. batch_get_products (roadmap) pulls full spec sheets for the shortlist in one call. get_datasheet attaches the manufacturer PDF for sign-off.

Incumbent BOM cross-reference

A customer's parts list, mixed brands

resolve_identifier (roadmap) turns barcodes scanned off installed equipment into canonical MPNs. find_equivalents checks each one against what a distributor actually stocks, brand by brand.

Get Access

Request early access

We're onboarding a small number of teams directly before opening broader access. Tell us what you're building and we'll follow up.

We'll follow up at the email you provide — no account or key is created automatically.