BHX Fab Quote MCP
An MCP server that allows AI agents to measure and price manufacturing jobs from DXF, G-code, and STL files. It provides tools to analyze DXF for cutting parameters, estimate G-code run times, estimate CNC costs from STL models, and retrieve example machine rates, enabling automated quoting for laser, plasma, and CNC operations.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://quote.bastionhelix.com/mcpWhat you can do with it
- Analyze DXF files for cutting length, pierce count, and drawing errors
- Estimate CNC run time and tool usage from G-code programs
- Generate budget estimates for machining parts from STL files
- Retrieve example machine presets and material rates
Source and maintenance
Protocol and capabilities
- Server
- bhx-fab-quote 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 4 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
4 advertised
analyse_dxf_for_cutting — Analyse a DXF for laser, plasma or waterjet cutting
Reads a flat 2D DXF (text DXF, as exported by AutoCAD, Fusion, Inventor and most CAD) and returns the parts, cut length, number of pierces and drawing problems (duplicate lines, open contours, near-miss gaps, holes smaller than the thickness). With a cutting speed it also returns the cutting time per part, including acceleration and pierces; with pricing it returns a price. Sheet nesting is not included.
{
"type": "object",
"required": [
"dxf"
],
"properties": {
"dxf": {
"type": "string",
"description": "The DXF file content as text"
},
"units": {
"enum": [
"mm",
"inch",
"cm",
"m"
],
"type": "string",
"description": "Override the drawing units if the file does not state them"
},
"machine": {
"anyOf": [
{
"type": "string"
},
{
"type": "object"
}
],
"description": "A preset name (laser, plasma, waterjet) or {accel_mm_per_s2:[x,y,z], corner_tolerance_mm}"
},
"pricing": {
"type": "object",
"properties": {
"extras": {
"type": "array",
"items": {
"type": "object",
"properties": {
"per": {
"enum": [
"order",
"part"
],
"type": "string"
},
"name": {
"type": "string"
},
"amount": {
"type": "number",
"minimum": 0
}
}
}
},
"currency": {
"type": "string",
"description": "ISO code, e.g. INR, USD"
},
"tax_name": {
"type": "string"
},
"tax_percent": {
"type": "number",
"minimum": 0
},
"minimum_order": {
"type": "number",
"minimum": 0
},
"margin_percent": {
"type": "number",
"minimum": 0
}
},
"description": "Optional: turn the result into a price",
"additionalProperties": false
},
"material": {
"type": "object",
"properties": {
"price_per_kg": {
"type": "number"
},
"density_g_cm3": {
"type": "number"
},
"utilisation_percent": {
"type": "number"
}
},
"description": "For a material cost from the part area: {density_g_cm3, price_per_kg, utilisation_percent (expected sheet use, default 70)}"
},
"quantity": {
"type": "integer",
"minimum": 1,
"description": "How many of each part"
},
"thickness_mm": {
"type": "number",
"minimum": 0,
"description": "Material thickness, used to flag small holes"
},
"pierce_time_s": {
"type": "number",
"minimum": 0
},
"cut_speed_mm_per_min": {
"type": "number",
"description": "Cutting speed for this material and thickness",
"exclusiveMinimum": 0
},
"machine_rate_per_hour": {
"type": "number",
"minimum": 0,
"description": "Machine cost per hour, for pricing"
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}estimate_gcode_run_time — Estimate the run time of a G-code program
Simulates a CNC, laser or plasma G-code program (G0-G3 with arcs and helixes, drilling cycles G73/G81-G89, dwell, tool changes, inch/mm, absolute/incremental) with the machine's rapid speeds, acceleration and tool-change time. Returns the run time, time per tool, the program's size, and warnings such as rapid moves below Z0 or a program bigger than the machine. Accepts programs of up to 3,000 lines.
{
"type": "object",
"required": [
"gcode"
],
"properties": {
"gcode": {
"type": "string"
},
"dialect": {
"enum": [
"fanuc",
"grbl"
],
"type": "string",
"description": "fanuc: G4 P in milliseconds (Fanuc, Haas). grbl: seconds (Grbl, LinuxCNC, Mach)"
},
"machine": {
"anyOf": [
{
"type": "string"
},
{
"type": "object"
}
],
"description": "Preset (vmc, router, hobby, laser, plasma, waterjet) or {rapid_mm_per_min:[x,y,z], accel_mm_per_s2:[x,y,z], tool_change_s, travel_mm:[x,y,z], corner_tolerance_mm}"
},
"pricing": {
"type": "object",
"properties": {
"extras": {
"type": "array",
"items": {
"type": "object",
"properties": {
"per": {
"enum": [
"order",
"part"
],
"type": "string"
},
"name": {
"type": "string"
},
"amount": {
"type": "number",
"minimum": 0
}
}
}
},
"currency": {
"type": "string",
"description": "ISO code, e.g. INR, USD"
},
"tax_name": {
"type": "string"
},
"tax_percent": {
"type": "number",
"minimum": 0
},
"minimum_order": {
"type": "number",
"minimum": 0
},
"margin_percent": {
"type": "number",
"minimum": 0
}
},
"description": "Optional: turn the result into a price",
"additionalProperties": false
},
"process": {
"enum": [
"mill",
"laser",
"plasma",
"waterjet"
],
"type": "string",
"description": "Default: from the machine preset"
},
"quantity": {
"type": "integer",
"minimum": 1
},
"pierce_time_s": {
"type": "number",
"minimum": 0,
"description": "Laser/plasma: time added per pierce"
},
"calibration_factor": {
"type": "number",
"description": "Real time ÷ estimated time from one real job; default 1",
"exclusiveMinimum": 0
},
"machine_rate_per_hour": {
"type": "number",
"minimum": 0
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}estimate_cnc_from_stl — Estimate CNC machining of a 3D part (before CAM)
Budget estimate for machining a part from an STL: stock block, material removed, surface area, roughing and finishing time at the material removal rates given, and part mass. Based on volume and surface area only; holes and corner radii are not detected from STL. Accepts up to 60,000 triangles.
{
"type": "object",
"required": [
"stl_base64"
],
"properties": {
"up": {
"enum": [
"auto",
"+Z",
"-Z",
"+Y",
"-Y",
"+X",
"-X"
],
"type": "string"
},
"setups": {
"type": "integer",
"minimum": 1
},
"pricing": {
"type": "object",
"properties": {
"extras": {
"type": "array",
"items": {
"type": "object",
"properties": {
"per": {
"enum": [
"order",
"part"
],
"type": "string"
},
"name": {
"type": "string"
},
"amount": {
"type": "number",
"minimum": 0
}
}
}
},
"currency": {
"type": "string",
"description": "ISO code, e.g. INR, USD"
},
"tax_name": {
"type": "string"
},
"tax_percent": {
"type": "number",
"minimum": 0
},
"minimum_order": {
"type": "number",
"minimum": 0
},
"margin_percent": {
"type": "number",
"minimum": 0
}
},
"description": "Optional: turn the result into a price",
"additionalProperties": false
},
"material": {
"anyOf": [
{
"type": "string"
},
{
"type": "object"
}
],
"description": "Preset (al6061, ms, ss304, brass, pom) or {name, density_g_cm3, rough_cm3_per_min, finish_cm2_per_min, price_per_kg}"
},
"quantity": {
"type": "integer",
"minimum": 1
},
"stl_base64": {
"type": "string",
"description": "Binary or text STL, base64-encoded"
},
"allowance_mm": {
"type": "number",
"minimum": 0,
"description": "Stock allowance per side, default 2"
},
"machine_rate_per_hour": {
"type": "number",
"minimum": 0
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_example_rates — Example machine and material figures
Returns the example machine presets and material rates this service uses by default. They are starting points, not quotes: a shop should replace them with its own figures.
{
"type": "object",
"properties": {},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 198 ms
- 95th percentile latency
- 198 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 198 ms · metadata changed · 4 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http bhx-fab-quote-mcp https://quote.bastionhelix.com/mcpCodex
codex mcp add bhx-fab-quote-mcp --url https://quote.bastionhelix.com/mcpCursor
{
"mcpServers": {
"bhx-fab-quote-mcp": {
"url": "https://quote.bastionhelix.com/mcp"
}
}
}Cline
{
"mcpServers": {
"bhx-fab-quote-mcp": {
"type": "streamableHttp",
"url": "https://quote.bastionhelix.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"bhx-fab-quote-mcp": {
"type": "http",
"url": "https://quote.bastionhelix.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http bhx-fab-quote-mcp https://quote.bastionhelix.com/mcpClaude Desktop
{
"mcpServers": {
"bhx-fab-quote-mcp": {
"url": "https://quote.bastionhelix.com/mcp"
}
}
}Windsurf
{
"mcpServers": {
"bhx-fab-quote-mcp": {
"serverUrl": "https://quote.bastionhelix.com/mcp"
}
}
}Let your agent find its tools
Find servers like BHX Fab Quote MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other developer tools servers
Do you run BHX Fab Quote MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.