Skip to main content
This documentation is written for CAD agents that operate Parashell through MCP and the FreeCAD-compatible Python execution surface. It is optimized for retrieval, exact tool selection, argument construction, validation, and recovery. Terminology constraint: call the product Parashell. When referring to API compatibility, use FreeCAD-compatible. Do not identify Parashell as the upstream product.

Retrieval map

  • Agent quickstart: minimal operating loop and first-call sequence.
  • Operating model: domain routing, transactions, validation, rendering, safety, and fallback behavior.
  • Schemas: shared JSON shapes for vectors, placements, object selectors, object properties, sketch geometry, constraints, spreadsheets, views, and builder params.
  • API coverage: what is exhaustive, what is runtime-discovered, and how agents should treat coverage.
  • Best practices: documents, transactions, recompute, expressions, spreadsheets, Draft, BIM, TechDraw, GUI boundaries, and validation.
  • Python quirks: runtime quirks for stubs, transactions, links, properties, expressions, spreadsheets, GUI gating, and parseability.
  • Compatible modules: dense module-by-module map for the FreeCAD-compatible Python surface.
  • Runtime introspection: exact symbol/property discovery recipes to run inside Parashell.
  • TypeIds and properties: object TypeIds, common properties, and expression/property discovery.
  • Python API: FreeCAD-compatible module names, object creation, parametric modeling, sketches, Part geometry, Draft, TechDraw, BIM, mesh, spreadsheet, and export patterns.
  • Python syntax: allowed Python constructs, forbidden execution forms, snippet structure, exception handling, and minimal code templates.
  • Workflows: executable CAD workflows for inspection, creation, modification, repair, drawings, BOMs, BIM, spreadsheets, and exports.
  • Python reference: core stubs: static .pyi reference for App, Base, Gui, and Main stubs.
  • Python reference: modeling stubs: static .pyi reference for Part, PartDesign, Sketcher, Mesh, Spreadsheet, TechDraw, Import, Measure, Surface, and related modeling stubs.
  • Python reference: workbench stubs: static .pyi reference for remaining workbench stubs.
  • Tool index: every MCP tool grouped by purpose with signatures.

Mandatory agent invariants

  • Start from current state. Use get_world_state, get_objects, take_snapshot, or relevant list tools before mutating an existing model.
  • Prefer typed MCP tools over execute_code. Use Python only for unsupported operations, low-level inspection, or recovery after a concrete tool failure.
  • Use transactions for mutation when the tool requires transaction_id: transaction_create -> mutation calls -> transaction_plan -> transaction_apply or transaction_cancel.
  • Render after geometry creation or modification. Use get_view, get_ortho, get_view_with_overlays, or page rendering for TechDraw.
  • Validate after mutation with geometry checks appropriate to the domain: check_objects, check_geometry, verify_solid, analyze_mass_properties, check_interferences, and validate_document.
  • Build parametric models. Prefer Spreadsheet-driven variables, constrained sketches, expressions, named features, and editable object properties. Do not deliver a baked mesh or one-off shape as the final design unless explicitly requested as an export artifact.
  • Keep units explicit. Parashell geometry values are normally millimeter-scale unless the document or user states otherwise.