Costable — Parametric Should-Cost Analysis
Parametric should-cost: P50/P80/P90 estimates, 801 materials, 25 countries, quote review.
Should I use this
Quality & Safety
Findings (1)
- LOWin compare_manufacturing_countries
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"costable": {
"url": "https://costable.ai/api/mcp"
}
}
}Remote endpoints
https://costable.ai/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (10)
⚪estimate_part(description, countryCode, batchQty)
Instantly estimate the should-cost of a manufactured part using natural language. Returns P50 (median), P80 and P90 cost-at-risk per unit based on Monte Carlo simulation of material price variance, labour rate variance and cycle time uncertainty. Use this for quick feasibility checks before building a full cost model.
Input Schema
{
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "Natural language description, e.g. '500 ABS injection moulded phone cases 0.08 kg' or 'CNC milled aluminium bracket 0.45 kg, 100 units'."
},
"countryCode": {
"type": "string",
"description": "ISO 3166-1 alpha-2 manufacturing country code. Defaults to 'US'. Supported: US, CN, DE, JP, UK, MX, IN, VN, TH, PL, BR, FR, IT, KR, TW, CA, SE, SG, MY, ID, CZ, TR, ZA, ES, AU.",
"default": "US"
},
"batchQty": {
"type": "number",
"description": "Batch / order quantity. Affects Wright's Law learning curve factor. Defaults to 100.",
"default": 100
}
},
"required": [
"description"
]
}🟢search_materials(query, category, limit)
Search the Costable materials database (37 materials with LME-sourced pricing). Returns material name, category, price per kg, density, and strength properties.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search query, e.g. 'aluminium', 'stainless', 'ABS', 'titanium'."
},
"category": {
"type": "string",
"description": "Filter by category: Metals - Aluminium, Metals - Steel, Metals - Titanium, Metals - Copper Alloys, Polymers - Thermoplastic, Polymers - Thermoset, Composites, Timber, Rubber & Elastomers."
},
"limit": {
"type": "number",
"description": "Maximum results to return. Defaults to 20.",
"default": 20
}
}
}🟢search_processes(query, category, limit)
Search the Costable manufacturing process database (41 processes). Returns process name, category, machine rate ($/hr), and cycle time model.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search query, e.g. 'CNC', 'injection moulding', 'laser cutting', 'anodising'."
},
"category": {
"type": "string",
"description": "Filter by category: CNC Machining, Sheet Metal, Casting, Polymer Processing, Additive Manufacturing, Composites, Welding & Joining, Surface Finishing, Assembly."
},
"limit": {
"type": "number",
"description": "Maximum results to return. Defaults to 20.",
"default": 20
}
}
}🟢get_labour_rates(countryCode)
Get manufacturing labour rates ($/hr) for all skill levels in a given country. Data covers 16 skill levels across 25 countries (ILO/BLS/ABS sourced).
Input Schema
{
"type": "object",
"properties": {
"countryCode": {
"type": "string",
"description": "ISO 3166-1 alpha-2 country code, e.g. 'US', 'CN', 'DE', 'VN'."
}
},
"required": [
"countryCode"
]
}🟡create_cost_model(name, countryCode, batchQty, overheadRate, marginRate)
Create a new parametric cost model in Costable. Returns the model ID which is used by add_material_to_model, add_process_to_model, calculate_cost_model, and compare_manufacturing_countries.
Input Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Descriptive name for the cost model, e.g. 'Aluminium Enclosure Rev2'."
},
"countryCode": {
"type": "string",
"description": "Primary manufacturing country code (ISO 3166-1 alpha-2)."
},
"batchQty": {
"type": "number",
"description": "Batch / order quantity. Affects Wright's Law learning curve."
},
"overheadRate": {
"type": "number",
"description": "Factory overhead as a decimal fraction (e.g. 0.25 = 25%). Defaults to 0.25.",
"default": 0.25
},
"marginRate": {
"type": "number",
"description": "Profit margin as a decimal fraction (e.g. 0.15 = 15%). Defaults to 0.15.",
"default": 0.15
}
},
"required": [
"name",
"countryCode",
"batchQty"
]
}🟡add_material_to_model(modelId, materialQuery, massKg, qty, scrapFactor)
Add a material (BOM line) to an existing cost model. Searches the materials database by name query — no need for exact IDs.
Input Schema
{
"type": "object",
"properties": {
"modelId": {
"type": "number",
"description": "Cost model ID returned by create_cost_model."
},
"materialQuery": {
"type": "string",
"description": "Material name to search for, e.g. 'ABS', 'Aluminium 6061', 'Stainless 304'."
},
"massKg": {
"type": "number",
"description": "Mass of material per unit in kilograms."
},
"qty": {
"type": "number",
"description": "Number of this material per unit assembly. Defaults to 1.",
"default": 1
},
"scrapFactor": {
"type": "number",
"description": "Scrap/yield factor (e.g. 1.05 = 5% material waste). Defaults to 1.05.",
"default": 1.05
}
},
"required": [
"modelId",
"materialQuery",
"massKg"
]
}🟡add_process_to_model(modelId, processQuery, countryCode, skillLevel, cycleTimeHrs, ...)
Add a manufacturing process step to an existing cost model. Searches the process database by name query — no need for exact IDs.
Input Schema
{
"type": "object",
"properties": {
"modelId": {
"type": "number",
"description": "Cost model ID returned by create_cost_model."
},
"processQuery": {
"type": "string",
"description": "Process name to search for, e.g. 'CNC 3-Axis', 'Injection Moulding', 'TIG Welding'."
},
"countryCode": {
"type": "string",
"description": "Country where this process step is performed (ISO 3166-1 alpha-2)."
},
"skillLevel": {
"type": "string",
"description": "Worker skill level. Options: cnc_machinist, machine_operator, welder, composite_tech, assembly_tech, quality_inspector, toolmaker, engineer, general_labour, painter, electrician, plumber, driver, warehouse, admin, manager."
},
"cycleTimeHrs": {
"type": "number",
"description": "Cycle time per unit in decimal hours (e.g. 0.5 = 30 minutes)."
},
"stepOrder": {
"type": "number",
"description": "Step sequence number (1 = first). Defaults to 1.",
"default": 1
}
},
"required": [
"modelId",
"processQuery",
"countryCode",
"skillLevel",
"cycleTimeHrs"
]
}🟢calculate_cost_model(modelId)
Run the Monte Carlo should-cost calculation on a cost model. Returns P50 (median), P80 and P90 cost-at-risk per unit, plus a full cost breakdown (material, labour, machine, overhead, margin).
Input Schema
{
"type": "object",
"properties": {
"modelId": {
"type": "number",
"description": "Cost model ID returned by create_cost_model."
}
},
"required": [
"modelId"
]
}⚪compare_manufacturing_countries(modelId, countries)
Run the cost model across multiple manufacturing countries simultaneously to identify the optimal sourcing location. Returns P50/P80/P90 per country and % delta vs baseline.
Input Schema
{
"type": "object",
"properties": {
"modelId": {
"type": "number",
"description": "Cost model ID returned by create_cost_model."
},
"countries": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of ISO 3166-1 alpha-2 country codes to compare, e.g. ['US','CN','VN','MX','DE']. Maximum 6."
}
},
"required": [
"modelId",
"countries"
]
}🟢review_supplier_quote(supplierName, countryCode, items)
Analyse a supplier quote against Costable's should-cost benchmarks. Returns a line-by-line delta (% over/under should-cost), verdict (LOW / COMPETITIVE / HIGH / VERY HIGH), and a list of the top items to challenge in negotiation.
Input Schema
{
"type": "object",
"properties": {
"supplierName": {
"type": "string",
"description": "Name of the supplier (for labelling the report)."
},
"countryCode": {
"type": "string",
"description": "Supplier's manufacturing country (ISO 3166-1 alpha-2)."
},
"items": {
"type": "array",
"description": "Quote line items.",
"items": {
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "Part description."
},
"quotedPrice": {
"type": "number",
"description": "Quoted unit price in USD."
},
"qty": {
"type": "number",
"description": "Order quantity."
},
"materialHint": {
"type": "string",
"description": "Optional material name hint for better matching."
},
"processHint": {
"type": "string",
"description": "Optional process name hint for better matching."
}
},
"required": [
"description",
"quotedPrice",
"qty"
]
}
}
},
"required": [
"supplierName",
"countryCode",
"items"
]
}Community
Evidence