Fabtally
БесплатноНе проверенMCP server for real FDM 3D-printing slicing, quoting, and design-for-manufacturability analysis via the FabTally API, supporting 12 printer profiles and 12 mate
Описание
MCP server for real FDM 3D-printing slicing, quoting, and design-for-manufacturability analysis via the FabTally API, supporting 12 printer profiles and 12 materials. Includes free discovery/printability tools and paid slice/quote/orientation tools settled via x402 (USDC on Base).
README
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 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 (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 publichttpsURL to anSTL/3MF/OBJ/PLY/STEPfile. The server fetches it. (Tryhttps://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 asmodel_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, usemodel_urlvia the upload bridge above.
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 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
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)
- Call a paid tool (or
check_printabilitywithfull: true) withoutx_payment. You get{ "payment_required": true, "http_status": 402, "challenge": { ... } }containing the x402acceptsentry (schemeexact, networkeip155:8453= Base, asset USDC, atomicamount,payTo). - Build an x402 payment authorization (EIP-3009
transferWithAuthorizationtopayTo) for that entry using your x402 client / wallet. - Call the tool again with the resulting token in the
x_paymentargument. The server forwards it as theX-PAYMENTheader 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
Установить Fabtally в Claude Desktop, Claude Code, Cursor
unyly install fabtally-mcpСтавит в Claude Desktop, Claude Code, Cursor и VS Code — сам разбирается с npx, uvx и сборкой из исходников.
Впервые? Поставь CLI: curl -fsSL https://unyly.org/install | sh
Или настроить вручную
Выполни в терминале:
claude mcp add fabtally-mcp -- npx -y github:zvmzaretsky/fabtally-mcpПошаговые гайды: как установить Fabtally
FAQ
Fabtally MCP бесплатный?
Да, Fabtally MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Fabtally?
Нет, Fabtally работает без API-ключей и переменных окружения.
Fabtally — hosted или self-hosted?
Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.
Как установить Fabtally в Claude Desktop, Claude Code или Cursor?
Открой Fabtally на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
LibreOffice Tools
Enables AI agents to read, write, and edit Office documents via LibreOffice with token-efficient design. Supports multiple formats including DOCX, XLSX, PPTX, a
автор: passerbyflutterdannote/figma-use
Full Figma control: create shapes, text, components, set styles, auto-layout, variables, export. 80+ tools.
автор: dannoteLogo.dev
Search and retrieve company logos by brand or domain. Customize size, format, and theme to match your design needs. Accelerate design, prototyping, and content
автор: NOVA-3951Design Inspiration Server
Searches top design platforms like Dribbble and Behance to provide UI inspiration, color palettes, and layout patterns via the Serper API. It allows users to re
автор: YonasValentinCompare Fabtally with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории design
