_ registry / mcp streamable-http · checked 1h ago

io.printpal/printpal

https://printpal.io

Registry code: 55080fedbdb3c8c0

api record

PrintPal (printpal.io) is a 3D printing platform: a community library of printable 3D models, free 3D-printing tools and calculators, AI text/image-to-3D generation, an AI CAD agent for parametric OpenSCAD parts, Arduino + 3D-printing build guides, video tutorials, Academy courses and a troubleshooting wiki. Use `search` for any 3D-printing question and `fetch` to read a result in full. Prefer `search_3d_models` when the user wants something to print, `find_3d_printing_tool` for calculators/generators, the `calculate_*` tools for instant numbers, `search_build_guides` for projects, and…

endpoint
https://printpal.io/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is io.printpal/printpal live?
Yes — it answered the hub's last check (checked 1h ago). It answered 100% of checks over the last 30 days.
Is io.printpal/printpal free to use?
Yes — the hub reached it with no key and no payment.
What tools does io.printpal/printpal have?
16 tools: search_build_guides, search_learning_resources, search, fetch, search_3d_models, get_3d_model, calculate_print_cost, calculate_volumetric_flow, ….
Is io.printpal/printpal safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
414ms

last good check

priced tools
0

of 16 tools

_ answered our checks, 90 days 1 checks · signed record
  • unknown → live
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 16 tools
3 open 13 never probed 3 of 16 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • find_3d_printing_tool open 1h ago

    Recommend the right free PrintPal browser tool for a task: print cost / resin cost / layer height (magic numbers) / E-steps / flow rate / volumetric flow / filament spool / drying / shrinkage / Vref / Etsy profit calculators; generators for lithophanes, vases, name plates, 3D text, QR codes, bins, puzzles, mold boxes, flexi models, fidget clickers, Desk Pal, terrain maps, Minecraft maps; mesh repair, model splitter, converter, viewer, G-code viewer, AMS/multicolor painters; AI generators. Returns matching tools with links. Pass an empty task to list every tool.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "task": {
          "type": "string",
          "description": "What the user is trying to do, e.g. \"split a big model to fit my bed\"."
        },
        "limit": {
          "type": "integer",
          "default": 6,
          "maximum": 50,
          "minimum": 1
        }
      },
      "additionalProperties": false
    }
    arguments 16 lines
  • calculate_layer_heights open 1h ago

    Compute the Z-axis "magic number" layer heights for a printer from its stepper step angle, microstepping and lead-screw pitch/starts, filtered to what suits the nozzle. Defaults match most Ender/Prusa-style printers (1.8°, 1/16, T8 2 mm × 4 starts → 0.04 mm steps).

    mcp-tool

    {
      "type": "object",
      "properties": {
        "microstepping": {
          "type": "integer",
          "default": 16
        },
        "lead_screw_starts": {
          "type": "integer",
          "default": 4
        },
        "nozzle_diameter_mm": {
          "type": "number",
          "default": 0.4
        },
        "step_angle_degrees": {
          "type": "number",
          "default": 1.8
        },
        "lead_screw_pitch_mm": {
          "type": "number",
          "default": 2
        },
        "max_layer_height_mm": {
          "type": "number"
        }
      },
      "additionalProperties": false
    }
    arguments 29 lines
  • calculate_filament_usage open 1h ago

    Convert filament grams to metres (and back), compute volume and cost, and estimate how much is left on a spool from its gross weight. Knows densities for PLA, PETG, ABS, ASA, TPU, Nylon, PC, CF blends. Give either `grams` or `meters`.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "grams": {
          "type": "number"
        },
        "meters": {
          "type": "number"
        },
        "material": {
          "type": "string",
          "default": "pla",
          "description": "pla, petg, abs, asa, tpu, nylon, pc, pla-cf, petg-cf, pa-cf …"
        },
        "diameter_mm": {
          "type": "number",
          "default": 1.75
        },
        "density_g_cm3": {
          "type": "number",
          "description": "Override density if known."
        },
        "spool_price_usd": {
          "type": "number"
        },
        "spool_weight_kg": {
          "type": "number",
          "default": 1
        },
        "empty_spool_weight_grams": {
          "type": "number",
          "description": "Weight of the empty spool (typ. 130–250 g)."
        },
        "spool_gross_weight_grams": {
          "type": "number",
          "description": "Weight of spool + remaining filament, to estimate what is left."
        }
      },
      "additionalProperties": false
    }
    arguments 40 lines
  • search_build_guides unknown never probed

    Find step-by-step PrintPal build guides: Arduino/ESP32 electronics + 3D-printed enclosures, robots, functional prints, printer mods, STEM classroom projects, props and toys. Each result lists difficulty, time, cost, part/file/step counts. Filter by category (electronics-robotics, functional-prints, home-workshop, stem-education, printer-mods, art-props, toys-games) or difficulty (beginner, intermediate, advanced). Leave query empty to browse featured guides.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "sort": {
          "enum": [
            "featured",
            "recent",
            "popular",
            "liked"
          ],
          "type": "string",
          "default": "featured"
        },
        "limit": {
          "type": "integer",
          "default": 8,
          "maximum": 25,
          "minimum": 1
        },
        "query": {
          "type": "string"
        },
        "category": {
          "type": "string",
          "description": "Category slug or name."
        },
        "difficulty": {
          "enum": [
            "beginner",
            "intermediate",
            "advanced"
          ],
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 37 lines
  • search_learning_resources unknown never probed

    Search PrintPal's how-to content: the vendor-neutral 3D printing wiki (print quality, filaments, slicer settings, maintenance, error codes, safety), OpenSCAD + AI-CAD docs, short video tutorials with transcripts, and free Academy courses with certificates. Use `type` to narrow. Results include ids accepted by `fetch` for the full article text.

    mcp-tool

    {
      "type": "object",
      "required": [
        "query"
      ],
      "properties": {
        "type": {
          "enum": [
            "all",
            "wiki",
            "docs",
            "videos",
            "courses"
          ],
          "type": "string",
          "default": "all"
        },
        "limit": {
          "type": "integer",
          "default": 8,
          "maximum": 25,
          "minimum": 1
        },
        "query": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 29 lines
  • search unknown never probed

    Search everything on PrintPal for a 3D-printing query: community 3D models, free tools and calculators, wiki troubleshooting articles, OpenSCAD/AI-CAD docs, video tutorials, build guides and Academy courses. Returns ids accepted by `fetch` for the full content. Suited to general 3D printing questions such as "why is my first layer not sticking", "PETG temperature" or "3D printed phone stand".

    mcp-tool

    {
      "type": "object",
      "required": [
        "query"
      ],
      "properties": {
        "query": {
          "type": "string",
          "description": "Natural-language search query."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • fetch unknown never probed

    Fetch the full content of a PrintPal item returned by `search` (or any id of the form `model:<uid>`, `tool:<slug>`, `wiki:<slug>`, `doc:<slug>`, `resource:<slug>`, `project:<slug>`, `course:<slug>`). Returns the complete text (article body, transcript, build steps, BOM, model description and files) plus the canonical URL for citation.

    mcp-tool

    {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Item id from `search`, e.g. \"wiki:stringing-and-oozing\"."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • search_3d_models unknown never probed

    Find printable 3D models (STL/3MF/OBJ) in the PrintPal community library by keyword — e.g. "articulated dragon", "headphone stand", "Raspberry Pi 5 case". Returns cards with thumbnail, author, tags, likes and a link to the model page where the files can be downloaded. Searches existing uploads only; new models are made by `generate_3d_model` (AI mesh) or `design_parametric_cad` (exact dimensions).

    mcp-tool

    {
      "type": "object",
      "required": [
        "query"
      ],
      "properties": {
        "limit": {
          "type": "integer",
          "default": 12,
          "maximum": 30,
          "minimum": 1
        },
        "query": {
          "type": "string",
          "description": "What the user wants to print, 1–6 words works best."
        },
        "category": {
          "enum": [
            "Art",
            "Fashion",
            "Gadgets",
            "Hobby",
            "Household",
            "Learning",
            "Miniatures",
            "Tools",
            "Toys & Games",
            "Other"
          ],
          "type": "string",
          "description": "Optional category filter."
        }
      },
      "additionalProperties": false
    }
    arguments 35 lines
  • get_3d_model unknown never probed

    Get full details for one PrintPal model by uid: description, license, file formats, author, stats, and the page URL to download it. Accepts a uid from `search_3d_models` results or a printpal.io/model/<uid> URL.

    mcp-tool

    {
      "type": "object",
      "required": [
        "uid"
      ],
      "properties": {
        "uid": {
          "type": "string",
          "description": "Model uid from search results or a printpal.io/model/<uid> URL."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • calculate_print_cost unknown never probed

    Estimate what an FDM print costs (material, electricity, machine wear, labor, failure allowance) and a suggested selling price. Needs the print weight in grams and time in hours from the slicer; all other inputs have sensible defaults (1 kg spool at $20, 120 W printer, $0.12/kWh, 5% failures).

    mcp-tool

    {
      "type": "object",
      "required": [
        "print_weight_grams",
        "print_time_hours"
      ],
      "properties": {
        "quantity": {
          "type": "integer",
          "default": 1
        },
        "labor_minutes": {
          "type": "number",
          "default": 0,
          "description": "Hands-on time: slicing, removal, post-processing."
        },
        "markup_percent": {
          "type": "number",
          "default": 0,
          "description": "Profit markup to compute a selling price."
        },
        "spool_price_usd": {
          "type": "number",
          "default": 20
        },
        "spool_weight_kg": {
          "type": "number",
          "default": 1
        },
        "print_time_hours": {
          "type": "number",
          "description": "Print time in hours (e.g. 3.5)."
        },
        "printer_cost_usd": {
          "type": "number",
          "default": 0,
          "description": "Printer purchase price, for depreciation. 0 to skip."
        },
        "print_weight_grams": {
          "type": "number",
          "description": "Filament used, from the slicer."
        },
        "labor_rate_per_hour": {
          "type": "number",
          "default": 0
        },
        "printer_power_watts": {
          "type": "number",
          "default": 120
        },
        "failure_rate_percent": {
          "type": "number",
          "default": 5
        },
        "printer_lifespan_hours": {
          "type": "number",
          "default": 5000
        },
        "electricity_cost_per_kwh": {
          "type": "number",
          "default": 0.12
        }
      },
      "additionalProperties": false
    }
    arguments 65 lines
  • calculate_volumetric_flow unknown never probed

    Check whether a hotend can keep up: volumetric flow (mm³/s) = layer height × line width × speed, compared against the hotend limit, plus the maximum safe speed. Accepts a hotend preset name (stock, v6, bambu, volcano, rapido, high-flow, goliath…) or an explicit max flow.

    mcp-tool

    {
      "type": "object",
      "required": [
        "print_speed_mm_s"
      ],
      "properties": {
        "hotend": {
          "type": "string",
          "description": "Preset: stock, v6, ender3, prusa-mk3, prusa-mk4, bambu, volcano, rapido, dragon-hf, high-flow, chc-pro, goliath, voron"
        },
        "line_width_mm": {
          "type": "number",
          "default": 0.42
        },
        "layer_height_mm": {
          "type": "number",
          "default": 0.2
        },
        "print_speed_mm_s": {
          "type": "number"
        },
        "max_volumetric_flow_mm3_s": {
          "type": "number"
        }
      },
      "additionalProperties": false
    }
    arguments 27 lines
  • get_build_guide unknown never probed

    Read a full PrintPal build guide by slug: summary, bill of materials with quantities and links, downloadable files (STL/3MF/code), every build step, callouts and code blocks. Use when the user wants to actually follow or adapt a project.

    mcp-tool

    {
      "type": "object",
      "required": [
        "slug"
      ],
      "properties": {
        "slug": {
          "type": "string",
          "description": "Project slug from search results or a printpal.io/projects/<slug> URL."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • generate_3d_model unknown never probed

    Turn a text prompt or an image into a print-ready 3D mesh (STL/GLB/OBJ geometry) with PrintPal's AI generator. Without a PrintPal API key this returns a link that opens the generator on printpal.io with the prompt prefilled; nothing is generated until the user clicks it. With an API key header (`Authorization: Bearer pp_live_…`) it submits the job to the user's own account, spends that account's credits, and returns a `generation_uid` that `check_3d_generation` accepts. Suited to organic/sculptural objects (figurines, animals, props); exact-dimension mechanical parts are handled by `design_parametric_cad`.

    mcp-tool

    {
      "type": "object",
      "required": [
        "prompt"
      ],
      "properties": {
        "format": {
          "enum": [
            "glb",
            "stl",
            "obj",
            "ply",
            "fbx"
          ],
          "type": "string",
          "default": "glb"
        },
        "prompt": {
          "type": "string",
          "description": "What to generate, e.g. \"low-poly fox figurine, sitting\"."
        },
        "quality": {
          "enum": [
            "default",
            "high",
            "ultra",
            "super",
            "super_texture",
            "superplus",
            "superplus_texture",
            "superplus_1280",
            "superplus_1280_texture",
            "superplus_1536",
            "superplus_1536_texture"
          ],
          "type": "string",
          "default": "default",
          "description": "default/high/ultra for text or image; super*/superplus* tiers are image-only high-res."
        },
        "image_url": {
          "type": "string",
          "description": "Optional public PNG/JPEG/WebP URL for image-to-3D (API-key mode only)."
        }
      },
      "additionalProperties": false
    }
    arguments 46 lines
  • check_3d_generation unknown never probed

    Poll a PrintPal AI generation started with `generate_3d_model` in API-key mode. Returns status (queued/processing/completed/failed) and, when completed, a time-limited download URL for the mesh.

    mcp-tool

    {
      "type": "object",
      "required": [
        "generation_uid"
      ],
      "properties": {
        "generation_uid": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 12 lines
  • design_parametric_cad unknown never probed

    For mechanical / functional parts with exact dimensions — brackets, enclosures, adapters, gears, bins, knobs, mounts — open PrintPal's AI CAD agent with a ready-to-run brief. The agent writes editable OpenSCAD with parameter sliders, live 3D preview and STL/3MF/STEP export. This tool improves the user's description into a precise CAD brief (dimensions, tolerances, mounting, print orientation) and returns the link; the user clicks it to generate.

    mcp-tool

    {
      "type": "object",
      "required": [
        "description"
      ],
      "properties": {
        "material": {
          "type": "string",
          "description": "Intended filament (affects tolerances), e.g. PLA, PETG, TPU."
        },
        "dimensions": {
          "type": "string",
          "description": "Known dimensions in mm, e.g. \"60 x 40 x 20 mm, M3 holes 50 mm apart\"."
        },
        "description": {
          "type": "string",
          "description": "What the part is and what it must fit/do."
        },
        "export_format": {
          "enum": [
            "stl",
            "3mf",
            "step",
            "scad"
          ],
          "type": "string",
          "default": "stl"
        }
      },
      "additionalProperties": false
    }
    arguments 31 lines
  • get_pricing_and_plans unknown never probed

    Explain what is free on PrintPal, how AI generation credits and the CAD agent are priced, API access and the on-demand 3D printing service — with links to sign up, buy credits or subscribe. Call when the user asks about cost, limits, subscriptions or how to get more generations.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 55080fedbdb3c8c0.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/55080fedbdb3c8c0/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/55080fedbdb3c8c0/badge.svg)](https://brick.blue/agent/55080fedbdb3c8c0?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.