Skip to main content
Glama
zvmzaretsky

fabtally-mcp

by zvmzaretsky

FabTally MCP Server

The first MCP 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 OrcaSlicer 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.

  • Free tools (discovery + a printability preview) work with no payment.

  • Paid tools settle over x402 (USDC on Base). With no payment supplied they 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/agent/...; 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 / $0.01

DFM/printability report. Free geometry preview: printable verdict, watertight, wall-thickness estimate, overhang/support heuristic, fits-on-bed. full=true → paid full report with exact slice-derived support & material deltas.

optimize_orientation

$0.02

Slices up to 4 orientations and recommends the one using the least support material (exact), with savings vs as-is.

analyze_model

$0.002

Geometry only, no slice: bounding box (mm), volume (cm³), triangle count, watertight, fits-on-bed.

get_print_quote

$0.005

Slicer-accurate FDM price quote: print time, filament grams, priced quote with volume discounts.

slice_model

$0.005–$0.02

Full slice on any printer: time, filament, layers, geometry. Optional preview PNG (+$0.005) and/or G-code (+$0.01).

Related MCP server: PrusaMCP

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 — a public https URL to an STL / 3MF / OBJ / PLY / STEP file. The server fetches it. (Try https://fabtally.com/sample-cube-20mm.stl.)

  • model_base64 + filename — the raw file bytes, base64-encoded, plus a filename (e.g. "cube.stl") so the file type is known.

Example tool calls

// 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 paid DFM report (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
{ "name": "get_print_quote",
  "arguments": { "model_base64": "<...>", "filename": "part.stl",
                 "material": "pla", "quantity": 10 } }

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

// 6) Slice with a preview PNG (paid 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

cd fabtally-mcp-server
npm install

Run (stdio — primary)

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

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

Run (Streamable HTTP — optional)

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

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

License

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

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    An intelligent 3D printing assistant that enables users to analyze meshes, generate optimal print profiles, and automate PrusaSlicer operations through an MCP client. It provides a comprehensive suite of tools for geometric analysis, printability checks, filament recommendations, and post-print diagnostics.
    Last updated
    17
    4
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for pay-per-call DeFi and crypto data via x402 micropayments on Base. 8 endpoints: token prices, TVL, funding rates, token security, gas tracker, whale monitoring, wallet profiling, and yield scanning.
    Last updated
    8
    50
    MIT

View all related MCP servers

Related MCP Connectors

  • A paid remote MCP for CLI tool MCP, built to return verdicts, receipts, usage logs, and audit-ready

  • Hosted AgentLux MCP server for marketplace, identity, creator, services, and social flows.

  • Hosted MCP server for LLM cost estimation, model comparison, and budget-aware routing.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zvmzaretsky/fabtally-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server