Check a part against models
check_part_fitsYes/no: do these part numbers fit these specific models? Example: "does 01FR025 or 5B10W13905 fit my T490 and T495?". Use get_part_fits instead to list every model one part fits. Use get_model_parts instead for a model's parts. Give part_number, part_numbers, or both (merged, duplicates dropped). At most 100 part×model pairs, else an error result. Parts match as in get_part; models resolve like get_model_parts, once each. One part: results in model order; an unknown part is an error result. Several parts: side-by-side comparison (parts list plus flat results in part-then-model order); unknown or ambiguous parts are flagged in their entry and their rows have fits null. fits true includes constraints, source_url, confidence; fits false is fit_status no_documented_fit (no document, not incompatibility); fits null for an ambiguous or unknown model. Per-row field details are in the output schema.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"models": "<models>"
},
"name": "check_part_fits"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| client | No | Optional: your agent or app name (letters and digits), used only for anonymous usage counts. | |
| models | Yes | Required. 1 to 20 model slugs or full names, e.g. ["lenovo-thinkpad-t490", "ThinkPad T495"]. | |
| part_number | No | One OEM part number, with or without dashes or spaces, e.g. "01FR025" or "7K4PW". Give this, part_numbers, or both. | |
| part_numbers | No | Several OEM part numbers to compare, e.g. ["01FR025", "5B10W13905", "L78555-005"]. Merged after part_number; parts x models must be at most 100. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| mode | No | ||
| name | No | ||
| note | No | ||
| type | No | ||
| brand | No | ||
| match | No | ||
| parts | No | ||
| query | No | ||
| status | No | ||
| api_url | No | ||
| license | No | ||
| lpf_url | No | ||
| message | No | ||
| outcome | No | Always present. One field to branch on for every tool: found | no_documented_fit (identified, but no OEM-documented fit; never means incompatible) | needs_clarification (ask the user; see clarifying_question/candidates) | not_found (nothing LPF covers matches). Full contract: /api/states | |
| results | No | ||
| terms_url | No | ||
| candidates | No | ||
| fit_status | No | no_documented_fit: there is no fit or no result: LPF has no OEM document for it. Never means incompatible. not_asserted: a did-you-mean suggestion; no fit claim is made. | |
| fits_count | No | ||
| part_count | No | ||
| source_url | No | ||
| attribution | No | ||
| part_number | No | ||
| absence_note | No | ||
| display_name | No | Short human label; not an identifier | |
| checked_count | No | ||
| data_revision | No |