# Fabworks MCP Server

Connect an AI agent to Fabworks to quote laser-cut sheet metal and tube parts from STEP files.

The Fabworks MCP server connects AI agents to Fabworks online laser cutting. An agent can search the manufacturing catalog, upload STEP files, create quotes, review pricing and DFM results, update quote parts, and check orders. It works with Claude Code, Codex, Cursor, and any client that supports remote MCP servers.

Quotes cover laser-cut flat sheet, bent sheet, and tube parts. Signed uploads keep STEP file bytes out of the agent context.

## Connect an agent

Copy this prompt into an agent that supports remote MCP servers:

```text [Prompt for an AI agent]
Add the Fabworks remote MCP server to this agent.

Name: Fabworks
URL: https://api.fabworks.com/mcp
Transport: Streamable HTTP
Authentication: OAuth

Configure the server and start OAuth. If you cannot edit your MCP
configuration, give me the exact steps for this client. Then list
the Fabworks tools to verify the connection.
```

OAuth opens a Fabworks sign-in page. MCP clients that support custom headers can also use a Fabworks user or organization API key:

```text [Authorization header]
Authorization: Bearer $FABWORKS_API_KEY
```

Keep API keys in an environment variable or secret store. Do not paste a key into chat or commit it to a repository.

## Generate an API key

Use OAuth when your client supports it. For an automated client that requires a Bearer token, create and manage a Fabworks API key below.

:mcp-api-keys

If an organization is active in Fabworks, Clerk creates an organization API key. Otherwise, it creates a personal API key.

## Set up your client

### Claude Code

Add Fabworks for your user so it is available in every project:

```text [Terminal]
claude mcp add --transport http --scope user fabworks https://api.fabworks.com/mcp
```

Open `/mcp` in Claude Code, select Fabworks, and complete the browser sign-in. Use `/mcp` again to confirm that the Fabworks tools are connected.

### Codex

Add the remote server, then start OAuth:

```text [Terminal]
codex mcp add fabworks --url https://api.fabworks.com/mcp
codex mcp login fabworks
```

After sign-in, start a new Codex session and ask it to list the Fabworks tools.

### OpenClaw

Save Fabworks as a Streamable HTTP server and start OAuth:

```text [Terminal]
openclaw mcp add fabworks \
  --url https://api.fabworks.com/mcp \
  --transport streamable-http \
  --auth oauth
openclaw mcp login fabworks
openclaw mcp doctor fabworks --probe
```

The final command checks the connection and lists any authorization problem.

### Hermes Agent

Add Fabworks and sign in:

```text [Terminal]
hermes mcp add fabworks --url https://api.fabworks.com/mcp --auth oauth
hermes mcp login fabworks
hermes mcp test fabworks
```

Hermes adds the Fabworks tools to later agent sessions after the connection test succeeds.

## Install the Fabworks plugin

Install the MCP configuration and the Fabworks Agent Skill together:

```text [Terminal]
npx plugins add FabworksHQ/fabworks-plugin
```

Install the Fabworks Agent Skill by itself:

```text [Terminal]
npx skills add FabworksHQ/fabworks-plugin --skill fabworks
```

The [`fabworks` Agent Skill](https://github.com/FabworksHQ/fabworks-plugin/tree/main/skills/fabworks){rel="&#x22;nofollow&#x22;"} runs the quoting workflow and answers Fabworks fabrication questions. It covers exact catalog IDs, signed STEP uploads, idempotent quote updates, services, laser cutting, bending, hole operations, materials, finishes, DFM, suggestions, and failures. It works with or without a live MCP connection.

View the [Fabworks plugin source on GitHub](https://github.com/FabworksHQ/fabworks-plugin){rel="&#x22;nofollow&#x22;"}.

## Quote STEP files

Use this workflow:

1. Call `find_materials` to get exact material and finish IDs.
2. Call `create_upload` for each STEP file and upload the file to the returned signed URL.
3. Call `create_quote` with the upload IDs, quantities, names, material ID, and finish ID.
4. If processing continues, call `get_quote`. It waits for a result by default.
5. Review the price, manufacturing configuration, DFM results, and checkout URL with the user.

Do not send STEP files as base64. The signed upload keeps file bytes out of the agent context. Do not select a suggested material without user confirmation. Exact tube searches treat `box`, `square`, and `rectangular` as the same profile family.

## Tools

| Tool                 | Use                                                                 |
| -------------------- | ------------------------------------------------------------------- |
| `find_materials`     | Find exact sheet, tube, and finish IDs.                             |
| `create_upload`      | Create a temporary signed upload URL for one STEP file.             |
| `create_quote`       | Create and price a quote from one or more uploaded files.           |
| `get_quote`          | Read status, pricing, DFM results, configuration, and checkout URL. |
| `list_quotes`        | Find recent quotes by name or quote number.                         |
| `update_quote_parts` | Rename parts or change quantities, materials, and finishes.         |
| `check_order_status` | Read production and shipment status for an order.                   |

## Example requests

```text [Things to ask your agent]
Quote 25 of bracket.step in 0.125-inch 5052 aluminum.

Quote these square-tube STEP files in A513 steel and name the parts.

Open my latest quote and explain its price and DFM results.

Change every part in this quote to quantity 50 and show the new total.

Check order 26-12345 and summarize its production and shipping status.
```