OpenFab

Instant parametric cost estimates for custom manufacturing: CNC, molding, sheet metal, 3DP, PCB.

Should I use this

Quality & Safety

B
Description quality
93%
Schema completeness
65%
Naming quality
83%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'dfm_feedback' description lacks action verbin dfm_feedback

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,176Tokens (tool definitions)
~1.5 KBTypical response size
Moderate attention impact (0.92% of 128k context)

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": {
    "openfab": {
      "url": "https://openfab-22100483453.us-central1.run.app/mcp/"
    }
  }
}

Remote endpoints

https://openfab-22100483453.us-central1.run.app/mcp/streamable-http

What it can do

Tool inventory

Tools (7)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢discover_capabilities

List supported manufacturing processes, materials, and the fields an estimate accepts.

Input Schema

{
  "type": "object",
  "properties": {},
  "title": "tool_discover_capabilitiesArguments"
}
🟢request_quote(process, quantity, material, bounding_box_mm, tolerance_mm, ...)

Get an instant cost estimate for a custom manufactured part. Returns unit price, total, lead time, and assumptions. Indicative and non-binding.

Input Schema

{
  "type": "object",
  "properties": {
    "process": {
      "title": "Process",
      "type": "string"
    },
    "quantity": {
      "title": "Quantity",
      "type": "integer"
    },
    "material": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Material"
    },
    "bounding_box_mm": {
      "anyOf": [
        {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Bounding Box Mm"
    },
    "tolerance_mm": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Tolerance Mm"
    },
    "finish": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Finish"
    },
    "cad_reference": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Cad Reference"
    },
    "notes": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Notes"
    }
  },
  "required": [
    "process",
    "quantity"
  ],
  "title": "tool_request_quoteArguments"
}
⚪refine_quote(token, process, quantity, material, bounding_box_mm, ...)

Refine a previous estimate (change quantity, material, tolerance, finish) by passing its quote_token.

Input Schema

{
  "type": "object",
  "properties": {
    "token": {
      "title": "Token",
      "type": "string"
    },
    "process": {
      "title": "Process",
      "type": "string"
    },
    "quantity": {
      "title": "Quantity",
      "type": "integer"
    },
    "material": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Material"
    },
    "bounding_box_mm": {
      "anyOf": [
        {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Bounding Box Mm"
    },
    "tolerance_mm": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Tolerance Mm"
    },
    "finish": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Finish"
    },
    "cad_reference": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Cad Reference"
    },
    "notes": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Notes"
    }
  },
  "required": [
    "token",
    "process",
    "quantity"
  ],
  "title": "tool_refine_quoteArguments"
}
🟢get_lead_time(process, quantity)

Estimated production lead time in days, by process and quantity.

Input Schema

{
  "type": "object",
  "properties": {
    "process": {
      "title": "Process",
      "type": "string"
    },
    "quantity": {
      "title": "Quantity",
      "type": "integer"
    }
  },
  "required": [
    "process",
    "quantity"
  ],
  "title": "tool_get_lead_timeArguments"
}
⚪dfm_feedback(process, quantity, material, bounding_box_mm, tolerance_mm, ...)

Rule-based design-for-manufacturability feedback for a part specification.

Input Schema

{
  "type": "object",
  "properties": {
    "process": {
      "title": "Process",
      "type": "string"
    },
    "quantity": {
      "title": "Quantity",
      "type": "integer"
    },
    "material": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Material"
    },
    "bounding_box_mm": {
      "anyOf": [
        {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Bounding Box Mm"
    },
    "tolerance_mm": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Tolerance Mm"
    },
    "finish": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Finish"
    },
    "cad_reference": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Cad Reference"
    },
    "notes": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Notes"
    }
  },
  "required": [
    "process",
    "quantity"
  ],
  "title": "tool_dfm_feedbackArguments"
}
⚪estimate_bom(parts)

Estimate costs for a multi-part bill of materials in one call. Each part: {process, quantity, material?, bounding_box_mm?, tolerance_mm?, finish?}. Returns per-line estimates, a BOM total, and the longest lead time. Indicative and non-binding. Max 50 lines.

Input Schema

{
  "type": "object",
  "properties": {
    "parts": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Parts",
      "type": "array"
    }
  },
  "required": [
    "parts"
  ],
  "title": "tool_estimate_bomArguments"
}
⚪compare_processes(processes, quantity, material, bounding_box_mm, tolerance_mm, ...)

Compare cost and lead time for one part across manufacturing processes. Provide 2-8 process names and a quantity; returns per-process estimates sorted by total cost, plus a lowest-cost / shortest-lead-time note. Indicative and non-binding.

Input Schema

{
  "type": "object",
  "properties": {
    "processes": {
      "items": {
        "type": "string"
      },
      "title": "Processes",
      "type": "array"
    },
    "quantity": {
      "title": "Quantity",
      "type": "integer"
    },
    "material": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Material"
    },
    "bounding_box_mm": {
      "anyOf": [
        {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Bounding Box Mm"
    },
    "tolerance_mm": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Tolerance Mm"
    },
    "finish": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Finish"
    }
  },
  "required": [
    "processes",
    "quantity"
  ],
  "title": "tool_compare_processesArguments"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded7 tools
verifiedversion not recorded7 tools