| name | check-inventory |
| description | Query a user-defined MCP-connected inventory system to check live stock for a project's BOM. Use this when the user has a real inventory backend (warehouse management system, parts database, home-lab inventory) wired up via MCP, rather than a static on-hand list. |
Check Inventory (MCP-backed)
Query a live inventory system for BOM coverage.
Prerequisites
- User has run
onboard and set inventory_source.type = "mcp" with an mcp_alias pointing to a configured MCP server.
- The MCP server exposes some form of search/get tool against the user's inventory (e.g.
search_items, get_item, list_items). Schemas vary by inventory system — discover the available tools at runtime.
Flow
- Read
config.json and resolve the MCP alias. If unset or the MCP server isn't reachable, fall back to check-onhand-coverage and tell the user.
- Discover the MCP server's available tools. Identify the search/lookup tool by name and description.
- For each BOM line, query the inventory:
- Try exact part number first.
- Then try category + key attributes (e.g. "0.1uF capacitor 0603").
- Capture qty on hand and storage location if the inventory exposes it.
- Apply the same exact-match / substitute / no-match classification as
check-onhand-coverage.
Output
Write <projects_dir>/<slug>/coverage.md with:
- Have (exact match) — qty available, storage location if returned by the MCP server.
- Have (substitute) — with trade-off note.
- Need to order.
The storage location is what makes this skill more valuable than the static variant — the user can walk straight to the right bin/drawer.
Failure modes
- MCP server unreachable → tell the user, suggest
check-onhand-coverage as fallback.
- Tool schema doesn't match expectations → fall back to listing all items and grepping locally; warn the user the integration may need adjustment.