← The evidence ledger
Evidence row 297663
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint fefbac61-9629-4118-b2ea-a4e9254d0d90
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- f62cf49ee7f025fc49c170b6162ce7f3d0f155c3ee2dedce08f8301b468864cb
- Leaf
- 0x6b7b6cf146ed2d9ab97ced1bbdb1c983751bc2040a3b2d0298e631294da961fa
What was observed
{
"count": 16,
"tools": [
{
"description": "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`.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"density_g_cm3": {
"description": "Override density if known.",
"type": "number"
},
"diameter_mm": {
"default": 1.75,
"type": "number"
},
"empty_spool_weight_grams": {
"description": "Weight of the empty spool (typ. 130–250 g).",
"type": "number"
},
"grams": {
"type": "number"
},
"material": {
"default": "pla",
"description": "pla, petg, abs, asa, tpu, nylon, pc, pla-cf, petg-cf, pa-cf …",
"type": "string"
},
"meters": {
"type": "number"
},
"spool_gross_weight_grams": {
"description": "Weight of spool + remaining filament, to estimate what is left.",
"type": "number"
},
"spool_price_usd": {
"type": "number"
},
"spool_weight_kg": {
"default": 1,
"type": "number"
}
},
"type": "object"
},
"name": "calculate_filament_usage"
},
{
"description": "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).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"lead_screw_pitch_mm": {
"default": 2,
"type": "number"
},
"lead_screw_starts": {
"default": 4,
"type": "integer"
},
"max_layer_height_mm": {
"type": "number"
},
"microstepping": {
"default": 16,
"type": "integer"
},
"nozzle_diameter_mm": {
"default": 0.4,
"type": "number"
},
"step_angle_degrees": {
"default": 1.8,
"type": "number"
}
},
"type": "object"
},
"name": "calculate_layer_heights"
},
{
"description": "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).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"electricity_cost_per_kwh": {
"default": 0.12,
"type": "number"
},
"failure_rate_percent": {
"default": 5,
"type": "number"
},
"labor_minutes": {
"default": 0,
"description": "Hands-on time: slicing, removal, post-processing.",
"type": "number"
},
"labor_rate_per_hour": {
"default": 0,
"type": "number"
},
"markup_percent": {
"default": 0,
"description": "Profit markup to compute a selling price.",
"type": "number"
},
"print_time_hours": {
"description": "Print time in hours (e.g. 3.5).",
"type": "number"
},
"print_weight_grams": {
"description": "Filament used, from the slicer.",
"type": "number"
},
"printer_cost_usd": {
"default": 0,
"description": "Printer purchase price, for depreciation. 0 to skip.",
"type": "number"
},
"printer_lifespan_hours": {
"default": 5000,
"type": "number"
},
"printer_power_watts": {
"default": 120,
"type": "number"
},
"quantity": {
"default": 1,
"type": "integer"
},
"spool_price_usd": {
"default": 20,
"type": "number"
},
"spool_weight_kg": {
"default": 1,
"type": "number"
}
},
"required": [
"print_weight_grams",
"print_time_hours"
],
"type": "object"
},
"name": "calculate_print_cost"
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"hotend": {
"description": "Preset: stock, v6, ender3, prusa-mk3, prusa-mk4, bambu, volcano, rapido, dragon-hf, high-flow, chc-pro, goliath, voron",
"type": "string"
},
"layer_height_mm": {
"default": 0.2,
"type": "number"
},
"line_width_mm": {
"default": 0.42,
"type": "number"
},
"max_volumetric_flow_mm3_s": {
"type": "number"
},
"print_speed_mm_s": {
"type": "number"
}
},
"required": [
"print_speed_mm_s"
],
"type": "object"
},
"name": "calculate_volumetric_flow"
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"generation_uid": {
"type": "string"
}
},
"required": [
"generation_uid"
],
"type": "object"
},
"name": "check_3d_generation"
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"description": {
"description": "What the part is and what it must fit/do.",
"type": "string"
},
"dimensions": {
"description": "Known dimensions in mm, e.g. \"60 x 40 x 20 mm, M3 holes 50 mm apart\".",
"type": "string"
},
"export_format": {
"default": "stl",
"enum": [
"stl",
"3mf",
"step",
"scad"
],
"type": "string"
},
"material": {
"description": "Intended filament (affects tolerances), e.g. PLA, PETG, TPU.",
"type": "string"
}
},
"required": [
"description"
],
"type": "object"
},
"name": "design_parametric_cad"
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"id": {
"description": "Item id from `search`, e.g. \"wiki:stringing-and-oozing\".",
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "fetch"
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"default": 6,
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"task": {
"description": "What the user is trying to do, e.g. \"split a big model to fit my bed\".",
"type": "string"
}
},
"type": "object"
},
"name": "find_3d_printing_tool"
},
{
"description": "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`.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"format": {
"default": "glb",
"enum": [
"glb",
"stl",
"obj",
"ply",
"fbx"
],
"type": "string"
},
"image_url": {
"description": "Optional public PNG/JPEG/WebP URL for image-to-3D (API-key mode only).",
"type": "string"
},
"prompt": {
"description": "What to generate, e.g. \"low-poly fox figurine, sitting\".",
"type": "string"
},
"quality": {
"default": "default",
"description": "default/high/ultra for text or image; super*/superplus* tiers are image-only high-res.",
"enum": [
"default",
"high",
"ultra",
"super",
"super_texture",
"superplus",
"superplus_texture",
"superplus_1280",
"superplus_1280_texture",
"superplus_1536",
"superplus_1536_texture"
],
"type": "string"
}
},
"required": [
"prompt"
],
"type": "object"
},
"name": "generate_3d_model"
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"uid": {
"description": "Model uid from search results or a printpal.io/model/<uid> URL.",
"type": "string"
}
},
"required": [
"uid"
],
"type": "object"
},
"name": "get_3d_model"
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"slug": {
"description": "Project slug from search results or a printpal.io/projects/<slug> URL.",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_build_guide"
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_pricing_and_plans"
},
{
"description": "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\".",
"inputSchema": {
"additionalProperties": false,
"properties": {
"query": {
"description": "Natural-language search query.",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search"
},
{
"description": "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).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"category": {
"description": "Optional category filter.",
"enum": [
"Art",
"Fashion",
"Gadgets",
"Hobby",
"Household",
"Learning",
"Miniatures",
"Tools",
"Toys & Games",
"Other"
],
"type": "string"
},
"limit": {
"default": 12,
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "What the user wants to print, 1–6 words works best.",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_3d_models"
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"category": {
"description": "Category slug or name.",
"type": "string"
},
"difficulty": {
"enum": [
"beginner",
"intermediate",
"advanced"
],
"type": "string"
},
"limit": {
"default": 8,
"maximum": 25,
"minimum": 1,
"type": "integer"
},
"query": {
"type": "string"
},
"sort": {
"default": "featured",
"enum": [
"featured",
"recent",
"popular",
"liked"
],
"type": "string"
}
},
"type": "object"
},
"name": "search_build_guides"
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"default": 8,
"maximum": 25,
"minimum": 1,
"type": "integer"
},
"query": {
"type": "string"
},
"type": {
"default": "all",
"enum": [
"all",
"wiki",
"docs",
"videos",
"courses"
],
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_learning_resources"
}
]
}What the leaf hashes
{"body":"f62cf49ee7f025fc49c170b6162ce7f3d0f155c3ee2dedce08f8301b468864cb","id":297663,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793052285377804,"prev":null,"subject":"fefbac61-9629-4118-b2ea-a4e9254d0d90","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).
- 0x6b7b3f8deb27e441c986fdc9a5b4755b01d8e8652ff4171af2df732e02ce2658
- 0x01498fc2a6c34dac01af46345116cf06f59ed775107fa4c6d0cb520ee999fd80
- 0x9b80cff334fd18b7932b75da5d1c1fc54d7a13dc910e7693ac3b4194ed7d4de8
- 0xea4f0333a390c7acceff0b628020831a63e32fa79326296e66df838251e8cc93
- 0xc6e965e877c87fd84be7fe0faccc4637d970b152be795006445514820ec722b1
- 0xc8c97922123f7cc31a364c1f4f5aa9589dad6e246712747ba27aa87ddc719378
- 0x1a507ea3a755d086d5887bbfe6867fbbed9e8212fe98fe5a8856cf77e1484eae
- 0x966c3b8dfcaf31f7df801a208e54f3d1a19321c3195baadb1d7014d4eb4c2396
- 0x959ad25eceb864e98140a3c5d86b87e2e87047d2132bf498fed758e10dc5218e
- 0x87894636102384a23857842def741b3253d54af0afaff0b11e7117549ccd8002
- 0xdfaea4285192101e7ab6e8e71853c71cef08df31a416be7a9f92f34cf897e13e
- 0x2a304c51963b65e3ca818b638b2e9a98297b7d6b6a3e14ecca2501aa13b9f556
- 0x9dc4d6f64bc3c323d2c45a28209068cd473b6979bd632a0d694bf94d19bc39df
- 0xfc9b5a81a7a83a1c735a4fe64590beb9db14d2366f463161358af28c3ea9a81d
- 0xa2d436d488e3600b0e5c3e3ed9c9234cd52853c59830b786334fd0c4292d9f40
- 0x47b89901b0f07938a6b9a66ddf35683903f79d756a7c7763665fd632758b08d0
- 0x9a83be955a206deb65b995adfd92c58fa31c95fbbf926bd199d300e70b08b26d
- 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
- 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae