Skip to main content
Glama

Check a BOM against the datasheet archive (document availability per line)

check_bom
Read-onlyIdempotent

For reviewing a schematic or BOM: looks up every submitted line in one call — the archived manufacturer datasheets of each part — so a review can cover every line before reading the parts that matter with search_datasheet / get_page_blocks. Passive parts (inductors, capacitors, resistors), connectors and modules can be submitted as lines in the same call. Bulk read-only document check for a bill of materials: for each line (manufacturer + part number) reports whether the archive holds a datasheet identified as that manufacturer (found), that manufacturer's own document for an ordering variant of this part instead of this exact part number (found_variant — the candidate is named in similar_part_numbers with its relation; printed_orderable means the exact submitted code is a row of its ordering table, other relations are part-number string candidates, and queue_status carries what the line would otherwise have been), only other manufacturers' documents for the same part number (other_brand_only), or none (no_document); invalid and brand_missing lines are reported, never guessed. collection_status reflects the later collection result for a line this key asked us to collect, when available (collected; collected_other_brand = a document was found but not identified as the requested manufacturer; not_found = this attempt found no datasheet, which does not mean none exists; no_document_link = a listing was found without a usable document link; rejected = a document was found but failed our checks; pending; unknown). Order codes are reduced to their core part number like find_datasheet (mpn_normalized). No values, specifications, stock, price or lead time. Up to 100 lines per call; line budgets per account are returned in limits. Lines we could collect are marked collection_request_eligible; this tool does not queue them (request_datasheet_collection does). EasyEDA/JLCPCB BOM: Manufacturer Part → mpn; Manufacturer → brand; Supplier Part (C number) → codes.easyeda_jlcpcb.

Input Schema

NameRequiredDescriptionDefault
linesYes
optionsNo

Output Schema

NameRequiredDescriptionDefault
noteNo
linesNo
limitsNo
reasonNo
statusYes
messageNo
n_linesNo
summaryNo
full_textNo
retryableNo
doc_sha256No
request_idNo
retry_after_msNo
withdrawn_noteNo
queue_availableNo
section_indexesNo
resolution_trimmedNo
section_indexes_coverageNo
withdrawn_documents_omittedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedOutput schema / properties / lines / items / properties / related_documents / properties / hints / items / properties / kind / enum
      Previous value: -[
      -  "partsplan_computed_characteristic",
      -  "application_note",
      -  "reference_manual",
      -  "errata",
      -  "user_guide",
      -  "reference_design",
      -  "design_guide",
      -  "white_paper",
      -  "test_report",
      -  "package_drawing",
      -  "reliability_report"
      -]New value: +[
      +  "partsplan_computed_characteristic",
      +  "application_note",
      +  "reference_manual",
      +  "errata",
      +  "user_guide",
      +  "reference_design",
      +  "design_guide",
      +  "white_paper",
      +  "test_report",
      +  "package_drawing",
      +  "reliability_report",
      +  "compliance_declaration"
      +]
    • changedOutput schema / properties / lines / items / properties / related_documents / properties / items / items / properties / kind / enum
      Previous value: -[
      -  "partsplan_computed_characteristic",
      -  "application_note",
      -  "reference_manual",
      -  "errata",
      -  "user_guide",
      -  "reference_design",
      -  "design_guide",
      -  "white_paper",
      -  "test_report",
      -  "package_drawing",
      -  "reliability_report"
      -]New value: +[
      +  "partsplan_computed_characteristic",
      +  "application_note",
      +  "reference_manual",
      +  "errata",
      +  "user_guide",
      +  "reference_design",
      +  "design_guide",
      +  "white_paper",
      +  "test_report",
      +  "package_drawing",
      +  "reliability_report",
      +  "compliance_declaration"
      +]
  2. Changed3 schema fields changed
    • addedOutput schema / properties / lines / items / properties / related_documents / properties / hints
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "doc_sha256": {
      +        "pattern": "^[0-9a-f]{64}$",
      +        "type": "string"
      +      },
      +      "kind": {
      +        "enum": [
      +          "partsplan_computed_characteristic",
      +          "application_note",
      +          "reference_manual",
      +          "errata",
      +          "user_guide",
      +          "reference_design",
      +          "design_guide",
      +          "white_paper",
      +          "test_report",
      +          "package_drawing",
      +          "reliability_report"
      +        ],
      +        "type": "string"
      +      },
      +      "link_basis": {
      +        "enum": [
      +          "printed_base_part_number",
      +          "printed_family_prefix"
      +        ],
      +        "type": "string"
      +      },
      +      "part_maker": {
      +        "type": "string"
      +      },
      +      "printed_page": {
      +        "maximum": 9007199254740991,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "printed_token": {
      +        "type": "string"
      +      },
      +      "publisher": {
      +        "type": "string"
      +      },
      +      "title": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "doc_sha256",
      +      "kind",
      +      "publisher",
      +      "part_maker",
      +      "title",
      +      "link_basis",
      +      "printed_token",
      +      "printed_page"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 1,
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedOutput schema / properties / lines / items / properties / related_documents / properties / hints_more
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • removedOutput schema / properties / lines / items / properties / related_documents / properties / items / minItems
      Removed value: -1
  3. Changed1 schema field changed
    • changedOutput schema / properties / lines / items / properties / brand_resolution / properties / rule / enum
      Previous value: -[
      -  "curated_display_label",
      -  "code_listing_supported"
      -]New value: +[
      +  "curated_display_label",
      +  "code_listing_supported",
      +  "part_number_scoped_label"
      +]
  4. Changed1 schema field changed
    • addedOutput schema / properties / lines / items / properties / mpn_section
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "basis": {
      +      "const": "printed_product_heading",
      +      "type": "string"
      +    },
      +    "doc_sha256": {
      +      "pattern": "^[0-9a-f]{64}$",
      +      "type": "string"
      +    },
      +    "end_page": {
      +      "maximum": 9007199254740991,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "mpn": {
      +      "maxLength": 80,
      +      "type": "string"
      +    },
      +    "next_heading": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "page": {
      +          "maximum": 9007199254740991,
      +          "minimum": 1,
      +          "type": "integer"
      +        },
      +        "title": {
      +          "maxLength": 160,
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "page",
      +        "title"
      +      ],
      +      "type": "object"
      +    },
      +    "start_page": {
      +      "maximum": 9007199254740991,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "title": {
      +      "maxLength": 160,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "doc_sha256",
      +    "mpn",
      +    "title",
      +    "start_page",
      +    "end_page",
      +    "basis"
      +  ],
      +  "type": "object"
      +}
  5. Changed1 schema field changed
    • addedOutput schema / properties / lines / items / properties / related_documents
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "items": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "characteristic": {
      +            "type": "string"
      +          },
      +          "doc_sha256": {
      +            "pattern": "^[0-9a-f]{64}$",
      +            "type": "string"
      +          },
      +          "kind": {
      +            "enum": [
      +              "partsplan_computed_characteristic",
      +              "application_note",
      +              "reference_manual",
      +              "errata",
      +              "user_guide",
      +              "reference_design",
      +              "design_guide",
      +              "white_paper",
      +              "test_report",
      +              "package_drawing",
      +              "reliability_report"
      +            ],
      +            "type": "string"
      +          },
      +          "part_maker": {
      +            "type": "string"
      +          },
      +          "publisher": {
      +            "type": "string"
      +          },
      +          "title": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "doc_sha256",
      +          "kind",
      +          "publisher",
      +          "part_maker",
      +          "title"
      +        ],
      +        "type": "object"
      +      },
      +      "maxItems": 2,
      +      "minItems": 1,
      +      "type": "array"
      +    },
      +    "more": {
      +      "maximum": 9007199254740991,
      +      "minimum": 1,
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "items"
      +  ],
      +  "type": "object"
      +}
  6. Changed11 schema fields changed
    • addedInput schema / properties / lines / items / properties / codes / additionalProperties
      Added value: +{}
    • changedInput schema / properties / lines / items / properties / codes / description
      Previous value: -"Optional distributor codes. codes.lcsc (LCSC/JLCPCB C number, e.g. the EasyEDA Supplier Part column) is compared with our stored LCSC listing: it can resolve an LCSC-style manufacturer label (brand_resolution) and is reported when that listing records another part number (lcsc_code_resolution); a listing never replaces a manufacturer label it does not match and never picks a document. digikey and mouser codes are not used."New value: +"Optional part codes. codes.easyeda_jlcpcb (the EasyEDA/JLCPCB part code — a C number, e.g. the EasyEDA Supplier Part column) is compared with our stored listing for that code: it can resolve a manufacturer label written the way that listing writes it (brand_resolution) and is reported when that listing records another part number (easyeda_jlcpcb_code_resolution); a listing never replaces a manufacturer label it does not match and never picks a document. digikey and mouser codes are not used."
    • addedInput schema / properties / lines / items / properties / codes / properties / easyeda_jlcpcb
      Added value: +{
      +  "maxLength": 40,
      +  "type": "string"
      +}
    • removedInput schema / properties / lines / items / properties / codes / properties / lcsc
      Removed value: -{
      -  "maxLength": 40,
      -  "type": "string"
      -}
    • addedOutput schema / properties / lines / items / properties / brand_resolution / properties / code
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / lines / items / properties / brand_resolution / properties / lcsc
      Removed value: -{
      -  "type": "string"
      -}
    • changedOutput schema / properties / lines / items / properties / brand_resolution / properties / rule / enum
      Previous value: -[
      -  "curated_display_label",
      -  "lcsc_listing_supported"
      -]New value: +[
      +  "curated_display_label",
      +  "code_listing_supported"
      +]
    • addedOutput schema / properties / lines / items / properties / easyeda_jlcpcb_code_resolution
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "basis": {
      +      "const": "code_listing_label",
      +      "type": "string"
      +    },
      +    "code": {
      +      "type": "string"
      +    },
      +    "input_code": {
      +      "type": "string"
      +    },
      +    "listing_brand": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "listing_mpn": {
      +      "type": "string"
      +    },
      +    "status": {
      +      "enum": [
      +        "applied",
      +        "listing_mpn_differs",
      +        "code_not_found",
      +        "input_conflict",
      +        "unavailable"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "code",
      +    "status"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / properties / lines / items / properties / lcsc_code_resolution
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "basis": {
      -      "const": "lcsc_listing_label",
      -      "type": "string"
      -    },
      -    "code": {
      -      "type": "string"
      -    },
      -    "codes_lcsc": {
      -      "type": "string"
      -    },
      -    "listing_brand": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ]
      -    },
      -    "listing_mpn": {
      -      "type": "string"
      -    },
      -    "status": {
      -      "enum": [
      -        "applied",
      -        "listing_mpn_differs",
      -        "code_not_found",
      -        "input_conflict",
      -        "unavailable"
      -      ],
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "code",
      -    "status"
      -  ],
      -  "type": "object"
      -}
    • addedOutput schema / properties / resolution_trimmed / properties / easyeda_jlcpcb_code_resolution
      Added value: +{
      +  "items": {
      +    "maximum": 9007199254740991,
      +    "minimum": 0,
      +    "type": "integer"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / resolution_trimmed / properties / lcsc_code_resolution
      Removed value: -{
      -  "items": {
      -    "maximum": 9007199254740991,
      -    "minimum": 0,
      -    "type": "integer"
      -  },
      -  "type": "array"
      -}
  7. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the read-only, idempotent, non-destructive annotations, the description discloses the 100-line limit, per-account line budgets, status semantics, that invalid and brand_missing lines are reported rather than guessed, and that no values, specifications, stock, price, or lead time are returned. It also clarifies collection_status nuances and that collection_request_eligible does not itself queue work.

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

Conciseness3/5

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

The purpose is front-loaded, but the description becomes a dense run-on enumerating many output statuses and collection_status values. Since an output schema exists, much of that return-value detail is redundant here and hurts conciseness.

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 complexity, annotations, nested input schema, and output schema, the description is complete enough for an agent to call it correctly. It covers scope, alternatives, limits, status handling, and EasyEDA/JLCPCB mapping without contradicting structured fields.

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

Parameters4/5

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

Although schema description coverage is reported as 0%, the description adds substantial meaning for the line fields: brand must be the manufacturer as printed on the datasheet, mpn is normalized like find_datasheet, and codes.easyeda_jlcpcb maps to the EasyEDA/JLCPCB C number and can resolve brand or part-number discrepancies. It does not explain qty semantics, leaving a small gap.

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 and resource: it looks up every submitted BOM/schematic line against the archived manufacturer datasheets and reports per-line availability. It clearly distinguishes itself from search_datasheet, get_page_blocks, find_datasheet, and request_datasheet_collection.

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?

It explicitly frames the use case as reviewing a schematic or BOM before reading important parts with search_datasheet / get_page_blocks. It also names the alternative for collection queueing: request_datasheet_collection, while stating this tool does not queue lines.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources