# Agent Guidance for Fabworks

How AI agents work with Fabworks, and where to look for everything else.

This page is the starting point for AI agents that work with Fabworks through the [Fabworks MCP server](/resources/developers/mcp). It covers how to work, and links to the pages that hold the details. Load those only when a question needs them. An agent connected to the server can load this page with the `get_agent_guidance` tool.

## Rules

- Live tool results are the answer for a quote: catalog IDs, prices, DFM, bend data, and delivery dates. Do not invent capabilities, tolerances, prices, or lead times. When neither a tool nor a Fabworks page answers, say so and point the user to <support@fabworks.com>.
- Report every DFM error and warning, quoting the message. Never call a part clean unless `dfm.errors` and `dfm.warnings` are both 0, and never call a quote complete while `failed_files` lists a file: those files are not in its parts or price.
- Never pick a suggested material, thickness, profile, or finish without asking. Suggestions are alternatives, not matches.
- Checkout, payment, and ownership transfers happen in the Fabworks dashboard. Give the user the link, and never imply a quote was ordered or paid.

## Quote parts

1. Confirm the STEP files, quantities, names, material, and finish. A missing finish means No Deburring.
2. `find_materials` for exact material and finish IDs.
3. `create_upload` for each STEP file, then PUT the raw bytes to the returned URL. Inline base64 also works, but it fills your context, so keep it for small files.
4. `create_quote` once, with an `idempotency_key` you generate. If `status` is `processing`, call `get_quote` instead of creating it again.
5. Report the price, every DFM issue, and the links in the result.
6. When `get_manufacturability` is enabled for the account, call it for the engine's review and fix what it reports before calling the part ready (see below).

Each tool's description says what it does and returns. Read those rather than guessing.

## Fix what the engine finds

- `get_manufacturability` returns the DFM engine's findings and the press brake simulation. When a bend fails, it names the step, the bend line (`BL2`), and which flange (`F3`) or formed bend hits the punch or die, with measured fixes in millimetres: lengthen or shorten a flange, or stop a bend short of a lip. Ask for `files: ["svg"]` to see the flat and a side view of the failing bend.
- Fix amounts are enough for the reported bend order and punch, not the least possible. After a change, upload again: the solver re-checks every step and may pick another order.
- Flange labels (`F0`…) follow your model's axes and usually stay put between uploads. Bend line numbers (`BL1`…) can change, so find each bend by the flanges it joins (`bend_simulation.bends[].model`) and check both against `flanges[].model` each time.
- It carries the same catalog rules as `get_quote` as `rule_issues`, so checkout needs both clean of errors. `checkout_blocked_reason` says why checkout is blocked: `errors` (fix them), `checking` (wait and call again), or `not_ready`.

## Weld bent parts

1. Confirm which seams the user wants welded, whether continuous or stitched, and whether to grind them flush.
2. `find_weld_seams` with the quote ID lists the bent parts that can be welded. With a `part_id`, it lists that part's numbered seams, longest first, with their end points in the STEP file's coordinates.
3. Match the user's description (for example "the four corners") to seam numbers using the lengths and end points. Mirror-image seams have the same length. Ask when the match is unclear.
4. `update_quote_parts` with `welds`, then report the new price and give the user `welding_url` to review the welds in 3D.

## Hand-offs

- Quote links open in the account that owns the quote. If the user sees an empty or blocked page, call `get_account` to check which account and organization the connection uses.
- Send the user to `quote_url` to review the part, or `bending_url` to watch the bend sequence in 3D.

## Where to look next

Use `search_docs` and `read_doc` to load these pages when a question depends on them, and cite the page you used.

| Question                                                      | Start here                                                                                        |
| ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| What Fabworks makes and how each service works                | [Services](/services/laser-cutting) and the [guidelines overview](/resources/guidelines/overview) |
| Whether a design can be cut, bent, tapped, or coated as drawn | [Guidelines](/resources/guidelines/overview), one page per process                                |
| Which materials and thicknesses are available                 | [Materials](/resources/materials/sheet/aluminum), then `find_materials` for the exact catalog     |
| When parts arrive and what shipping costs                     | `get_delivery_options`, then the [shipping](/resources/general/shipping) page                     |
| Common customer questions                                     | [FAQ](/faq)                                                                                       |