AI-powered 3D printing assistant — search, slice, and print from your terminal.
PrintPal defines 8 tools with basic schemas and descriptions, but exhibits significant quality gaps. All tools have descriptions (10-80 chars, mostly under the 194-char baseline), but many are terse and lack actionable context. Input schemas are present but sparse: most parameters lack descriptions entirely (violates pattern:tool-description). The 'response_format' parameter appears in 5 tools but is never explained. Error handling is absent, no recovery guidance, no categorization of retryable vs. fatal errors. Irreversible tools (octoprint_start_print, orca_slice_model, cura_slice_model) lack confirmation or dry-run patterns. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels. Output schemas are undocumented. Parameter naming is inconsistent: 'heater' vs 'tool' vs 'action' lack type suffixes. No pagination or result limits documented. Security: no evidence of secret injection for OctoPrint API keys or slicer credentials.
Slice a 3D model using Cura
Connect to the printer via OctoPrint
Get current print job information from OctoPrint
Get printer status, temperatures, and job progress from OctoPrint
Set heater target temperature (bed or tool)
Start a print job from an uploaded G-code file
Upload G-code file to OctoPrint server
Parameter descriptions missing or trivial. 'response_format' appears in 5 tools with only 'Response format (json)', no explanation of when/why to use it or what formats are valid. 'confirm' parameter lacks guidance on approval workflow. Violates pattern:tool-description baseline (100% of A+ tools have param descriptions).
Irreversible operations lack confirmation or dry-run patterns. octoprint_start_print and slicer tools (orca_slice_model, cura_slice_model) can consume hours of material/time but have no confirmation step, dry-run option, or recovery guidance. Violates pattern:confirmation-request.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
Slice a 3D model using OrcaSlicer
No tool annotations despite clear risk levels. Tools marked WRITE and IRREVERSIBLE lack readOnlyHint, destructiveHint, or idempotentHint annotations. LLM cannot infer which calls are safe to retry. Violates current MCP spec (2026-07-28) tool annotation requirement.
Output schemas undocumented. No tool declares what fields it returns (e.g., octoprint_get_status returns temperature, job progress, etc.). LLM cannot plan downstream calls or extract required data. Violates pattern:tool baseline (100% of A+ tools have documented return types).
No error handling or recovery guidance. Tools provide no actionable error messages, categorization (retryable vs. fatal), or next steps. E.g., if octoprint_connect fails, LLM has no guidance on whether to retry, check credentials, or ask user. Violates pattern:recovery-guide.