Skip to main content
ClaudeWave
MCP ServersRegistry oficial0 estrellas0 forksJavaScriptActualizado yesterday
Install in Claude Code / Claude Desktop
Method: Manual
Claude Code CLI
git clone https://github.com/zvmzaretsky/fabtally-mcp
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "fabtally-mcp": {
      "command": "node",
      "args": ["/path/to/fabtally-mcp/dist/index.js"]
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
💡 Clone https://github.com/zvmzaretsky/fabtally-mcp and follow its README for install instructions.
Casos de uso

Resumen de MCP Servers

# FabTally MCP Server

The **first [MCP](https://modelcontextprotocol.io) server for real FDM 3D-printing
slicing, quoting, and DFM / printability analysis.** Every other 3D-printing MCP just
drives a printer (OctoPrint, Bambu). None of them *slice*, *quote*, or run
*design-for-manufacturability* checks — FabTally does.

It fronts the **FabTally agent API** (https://fabtally.com), which runs a **production
slicing engine** against **12 calibrated FDM printer profiles** and **12 filament
materials**, and exposes it as MCP tools so any MCP-capable agent (Claude Desktop,
Cursor, custom agents) can discover and call it.

- **Two-angle design.** A human at a keyboard (Claude Desktop, ChatGPT Desktop — no crypto
  wallet) gets **real answers with zero payment** from the everyday tools: `list_printers`,
  `check_printability`, `analyze_model`, `get_print_quote`. These call FabTally's free,
  rate-limited public endpoints. An autonomous agent with a wallet gets the heavier/exact
  tools — `optimize_orientation`, `slice_model`, and the full (`full=true`) DFM report —
  metered over [x402](https://www.x402.org) (USDC on Base). With no payment supplied, those
  return the x402 *challenge* (price, network, asset, `payTo`) so the calling agent knows the
  cost and can pay and retry.
- This server holds **no private key** and **persists no models**. It only relays calls to
  `https://fabtally.com/...`; uploaded models are streamed to the slicer, never stored.

## Tools

| Tool | Price | What it does |
|---|---|---|
| `list_printers` | **free** | Live 12-printer fleet (id, bed, nozzle), 12 materials, and x402 pricing tiers. **Call this first.** |
| `check_printability` | **free** / premium $0.01 | DFM/printability report. Free geometry preview: printable verdict, watertight, wall-thickness estimate, overhang/support heuristic, fits-on-bed. `full=true` → premium, x402-metered full report with **exact** slice-derived support & material deltas. |
| `analyze_model` | **free** | Geometry preview, no payment: bounding box (mm), volume (cm³), triangle count, watertight, fits-on-bed, plus a printable-so-far verdict as a bonus. |
| `get_print_quote` | **free** (rate-limited) | Slicer-accurate FDM price quote: print time, filament grams, priced quote with volume discounts. Supports optional bring-your-own pricing (`currency`, `machine_rate_per_hour`, `margin`, `setup_fee`, `minimum_price`, `material_cost_per_kg`, `markup_percent`) — omit for FabTally's hobbyist defaults. |
| `optimize_orientation` | premium, x402-metered $0.02 | Slices up to 4 orientations and recommends the one using the **least support material** (exact), with savings vs as-is. For autonomous agents with a wallet — unlimited, machine-speed. |
| `slice_model` | premium, x402-metered $0.005–$0.02 | Full slice on any printer: time, filament, layers, geometry. Optional preview PNG (+$0.005) and/or G-code (+$0.01). For autonomous agents with a wallet. |

The free tools are rate-limited public endpoints — fine for a human exploring a design, not for
high-volume or production integrations. For unlimited, machine-speed access, an autonomous
agent with a wallet can pay per call via x402: the premium tools above, or `check_printability`
with `full=true` for the exact (slice-derived) DFM report.

## The 12 printers

| id | printer | bed X×Y×Z (mm) | nozzle |
|---|---|---|---|
| `elegoo-neptune4-max` | Elegoo Neptune 4 Max | 420×420×480 | 0.4 |
| `bambu-a1` | Bambu Lab A1 | 256×256×256 | 0.4 |
| `bambu-a1-mini` | Bambu Lab A1 mini | 180×180×180 | 0.4 |
| `bambu-p1s` | Bambu Lab P1S | 256×256×250 | 0.4 |
| `bambu-x1c` | Bambu Lab X1 Carbon | 256×256×250 | 0.4 |
| `prusa-mk4` | Prusa MK4 | 250×210×220 | 0.4 |
| `prusa-mini` | Prusa MINI | 180×180×180 | 0.4 |
| `ender3-v3` | Creality Ender-3 V3 | 220×220×250 | 0.4 |
| `creality-k1` | Creality K1 | 220×220×250 | 0.4 |
| `creality-k1-max` | Creality K1 Max | 300×300×300 | 0.4 |
| `voron-24-350` | Voron 2.4 350 | 350×350×325 | 0.4 |
| `anycubic-kobra2` | Anycubic Kobra 2 | 220×220×250 | 0.4 |

**Materials:** `pla`, `pla-cf`, `petg`, `petg-cf`, `abs`, `abs-cf`, `asa`, `asa-cf`,
`nylon`, `pc`, `pet`, `tpu` (PLA/PETG/ABS/ASA + carbon-fiber variants, Nylon, PC, PET, TPU).
`list_printers` always returns the authoritative live list.

## Supplying a model file

MCP tools can't take raw file uploads, so every model-consuming tool accepts the model **two
ways** — pick one:

- **`model_url`** (preferred for local files) — a public `https` URL to an `STL` / `3MF` /
  `OBJ` / `PLY` / `STEP` file. The server fetches it. (Try
  `https://fabtally.com/sample-cube-20mm.stl`.) Got a file on your machine — Claude Desktop,
  ChatGPT Desktop? Drop it at **https://fabtally.com/upload** (no account, drag-and-drop) to get
  a short-lived URL back (auto-deletes in ~2 hours, nothing kept), then pass that URL as
  `model_url`. That page also has a "Get quote now" button for an instant human-readable quote
  with zero MCP involved.
- **`model_base64`** + **`filename`** — the raw file bytes, base64-encoded, plus a filename
  (e.g. `"cube.stl"`) so the file type is known. **Only reliable for small files (roughly
  <50KB).** MCP clients truncate large inline tool-call arguments, so a real STL sent this way
  can silently arrive as a corrupted fragment and produce garbage results (wrong dimensions,
  bogus quotes) with no error. For anything bigger, use `model_url` via the upload bridge above.

## Example tool calls

```jsonc
// 1) Discover printers/materials/pricing (free)
{ "name": "list_printers", "arguments": {} }

// 2) Free printability check on a hosted model
{ "name": "check_printability",
  "arguments": { "model_url": "https://fabtally.com/sample-cube-20mm.stl" } }

// 3) Full DFM report (premium, x402-metered; returns x402 challenge unless x_payment is supplied)
{ "name": "check_printability",
  "arguments": { "model_url": "https://example.com/bracket.stl",
                 "full": true, "printer": "bambu-p1s", "material": "petg" } }

// 4) Price quote, base64 model, 10 parts (free, real result, no payment)
{ "name": "get_print_quote",
  "arguments": { "model_base64": "<...>", "filename": "part.stl",
                 "material": "pla", "quantity": 10 } }

// 5) Least-support orientation (premium, x402-metered, $0.02)
{ "name": "optimize_orientation",
  "arguments": { "model_url": "https://example.com/handle.stl", "printer": "prusa-mk4" } }

// 6) Slice with a preview PNG (premium, x402-metered tier, $0.01)
{ "name": "slice_model",
  "arguments": { "model_url": "https://example.com/gear.stl",
                 "printer": "voron-24-350", "material": "abs",
                 "quality": "standard", "include_preview": true } }
```

## Install

```bash
cd fabtally-mcp-server
npm install
```

## Run (stdio — primary)

```bash
node index.js
# or, after `npm install -g .`:  fabtally-mcp
```

The server speaks MCP over stdio. Point your MCP client at it.

### Claude Desktop / MCP client config

```json
{
  "mcpServers": {
    "fabtally": {
      "command": "node",
      "args": ["/absolute/path/to/fabtally-mcp-server/index.js"]
    }
  }
}
```

## Run (Streamable HTTP — optional)

```bash
MCP_HTTP_PORT=8103 node http.js
# POST MCP JSON-RPC messages to http://127.0.0.1:8103/mcp   (stateless)
```

## Configuration

| Env var | Default | Purpose |
|---|---|---|
| `FABTALLY_BASE` | `https://fabtally.com` | Base origin of the FabTally API. |
| `MCP_HTTP_PORT` | `8103` | Port for the optional HTTP transport (`http.js`). |
| `MCP_HTTP_HOST` | `127.0.0.1` | Bind address for the HTTP transport. |

## How paid calls work (x402)

1. Call a paid tool (or `check_printability` with `full: true`) **without** `x_payment`.
   You get `{ "payment_required": true, "http_status": 402, "challenge": { ... } }` containing
   the x402 `accepts` entry (scheme `exact`, network `eip155:8453` = Base, asset USDC, atomic
   `amount`, `payTo`).
2. Build an x402 payment authorization (EIP-3009 `transferWithAuthorization` to `payTo`) for
   that entry using your x402 client / wallet.
3. Call the tool again with the resulting token in the **`x_payment`** argument. The server
   forwards it as the `X-PAYMENT` header and returns the actual result.

Free discovery is always at `GET https://fabtally.com/agent/overview`; the OpenAPI contract at
`https://fabtally.com/openapi.json`; x402 discovery at `https://fabtally.com/.well-known/x402`.

## Test

```bash
node smoke-test.mjs   # lists tools, calls list_printers + check_printability, checks paid 402s
```

## License

MIT · Sunstone Soft · https://fabtally.com

Lo que la gente pregunta sobre fabtally-mcp

¿Qué es zvmzaretsky/fabtally-mcp?

+

zvmzaretsky/fabtally-mcp es mcp servers para el ecosistema de Claude AI con 0 estrellas en GitHub.

¿Cómo se instala fabtally-mcp?

+

Puedes instalar fabtally-mcp clonando el repositorio (https://github.com/zvmzaretsky/fabtally-mcp) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.

¿Es seguro usar zvmzaretsky/fabtally-mcp?

+

zvmzaretsky/fabtally-mcp aún no ha sido auditado por nuestro agente de seguridad. Revisa el repositorio original en GitHub antes de usarlo en producción.

¿Quién mantiene zvmzaretsky/fabtally-mcp?

+

zvmzaretsky/fabtally-mcp es mantenido por zvmzaretsky. La última actividad registrada en GitHub es de yesterday, con 0 issues abiertos.

¿Hay alternativas a fabtally-mcp?

+

Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.

Despliega fabtally-mcp en tu cloud

Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.

¿Mantienes este repo? Añade un badge a tu README

Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.

Featured on ClaudeWave: zvmzaretsky/fabtally-mcp
[![Featured on ClaudeWave](https://claudewave.com/api/badge/zvmzaretsky-fabtally-mcp)](https://claudewave.com/repo/zvmzaretsky-fabtally-mcp)
<a href="https://claudewave.com/repo/zvmzaretsky-fabtally-mcp"><img src="https://claudewave.com/api/badge/zvmzaretsky-fabtally-mcp" alt="Featured on ClaudeWave: zvmzaretsky/fabtally-mcp" width="320" height="64" /></a>

Más MCP Servers

Alternativas a fabtally-mcp