Exhaustive in these docs
The MCP tool reference is exhaustive for the currently published Parashell MCP surface:- tool name
- signature excluding injected
ctx - full descriptor/docstring
- category page
Not statically exhaustive in these docs
The FreeCAD-compatible Python API is exposed by a mixture of Python modules, compiled extension modules, document object TypeIds, workbench modules, and object properties that can vary by build, loaded workbench, document object, and optional module availability. Therefore, this docs set does not claim to be a complete static dump of every callable Python symbol in the active Parashell process. A static dump generated outside the Parashell interpreter would be incomplete for compiled bindings and misleading for dynamically registered object properties.Complete discovery rule
When an agent needs an API not present in the curated module map, it must discover it in the active Parashell build by executing a small, read-only introspection snippet throughexecute_code inside an open transaction.
Use:
dir(module)for module symbolshelp(symbol)only when output size is acceptableobj.PropertiesListfor editable object propertiesobj.TypeIdfor exact object typeobj.getTypeIdOfProperty(name)when availableobj.getGroupOfProperty(name)when availableobj.getDocumentationOfProperty(name)when availabledoc.supportedTypes()when availableFreeCAD.getAllDerivedFrom(type_id)when available
Agent decision tree
- Prefer MCP tool reference for all bridge-exposed actions.
- If Python is required, check Compatible modules, Python API, TypeIds and properties, and FreeCAD-compatible online API map.
- If a symbol/property remains unknown, run a read-only introspection snippet in Parashell.
- Use the discovered exact property or method.
- Recompute, render, and validate after mutation.
Documentation coverage classes
Mutation safety
Runtime introspection must be read-only unless the current task already requires mutation. If an introspection snippet usesexecute_code, still pass a transaction id because the tool contract requires it; cancel the transaction afterward if no mutation is intended.