Pure, bounded analysis of an explicit bill-of-materials graph: validates structure, finds missing references, duplicate IDs, duplicate edges, and cycles (whole graph, even parts unreachable from the root), and - when the graph is completely clean - exactly explodes root quantity through every assembly level with exact-decimal arithmetic, aggregating shared components reached via different branches. No network access and no manufacturing/supplier certification: this checks the data you supply, not the real world.
0.05 per analysis
Requires x402 capable MCP client with wallet for payment settlement.
{
"type": "object",
"required": [
"root",
"quantity",
"parts"
],
"additionalProperties": false,
"properties": {
"root": {
"type": "string",
"description": "ID of the part to explode from. Must match one of parts[].id.",
"minLength": 1,
"maxLength": 128
},
"quantity": {
"type": "string",
"description": "Positive exact decimal, <=12 integer digits, <=6 fraction digits.",
"pattern": "^(?!0+(?:\\.0{1,6})?$)\\d{1,12}(\\.\\d{1,6})?$"
},
"parts": {
"type": "array",
"maxItems": 500,
"items": {
"type": "object",
"required": [
"id",
"unit"
],
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"unit": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"components": {
"type": "array",
"maxItems": 100,
"items": {
"type": "object",
"required": [
"part_id",
"quantity"
],
"additionalProperties": false,
"properties": {
"part_id": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"quantity": {
"type": "string",
"pattern": "^(?!0+(?:\\.0{1,6})?$)\\d{1,12}(\\.\\d{1,6})?$"
}
}
}
}
}
}
}
}
}
{
"root": "bike",
"quantity": "2",
"parts": [
{
"id": "bike",
"unit": "each",
"components": [
{
"part_id": "wheel",
"quantity": "2"
},
{
"part_id": "frame",
"quantity": "1"
}
]
},
{
"id": "wheel",
"unit": "each",
"components": [
{
"part_id": "spoke",
"quantity": "16"
},
{
"part_id": "tire",
"quantity": "1"
},
{
"part_id": "bolt",
"quantity": "2"
}
]
},
{
"id": "frame",
"unit": "each",
"components": [
{
"part_id": "bolt",
"quantity": "4"
}
]
},
{
"id": "spoke",
"unit": "each"
},
{
"id": "tire",
"unit": "each"
},
{
"id": "bolt",
"unit": "each"
}
]
}
{
"ok": true,
"issues": [],
"summary": {
"parts": 6,
"assemblies": 3,
"leaves": 3,
"issues": 0,
"reachable_parts": 6
},
"explosion": [
{
"part_id": "bike",
"unit": "each",
"quantity": "2"
},
{
"part_id": "wheel",
"unit": "each",
"quantity": "4"
},
{
"part_id": "frame",
"unit": "each",
"quantity": "2"
},
{
"part_id": "spoke",
"unit": "each",
"quantity": "64"
},
{
"part_id": "tire",
"unit": "each",
"quantity": "4"
},
{
"part_id": "bolt",
"unit": "each",
"quantity": "16"
}
],
"scope": "supplied_bom_only"
}
Add to your MCP client configuration:
{
"mcpServers": {
"bill-of-materials-integrity": {
"type": "http",
"url": "https://mcp-factory.bowling-anthony.workers.dev/bill-of-materials-integrity/mcp"
}
}
}
Price: 0.05 USDC per analysis
This tool requires an x402-capable MCP client with wallet support. Tool listing and initialization are free. Actual completed job analysis is paid in USDC on the Base network.
Payment flow: