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
.pyireference for App, Base, Gui, and Main stubs. - Python reference: modeling stubs: static
.pyireference for Part, PartDesign, Sketcher, Mesh, Spreadsheet, TechDraw, Import, Measure, Surface, and related modeling stubs. - Python reference: workbench stubs: static
.pyireference 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_applyortransaction_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, andvalidate_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.