FreeCAD Robust MCP Server

152 tools. 127 can modify or destroy data without limits.

5 destructive tools with no built-in limits. Policy required.

Last updated:

127 can modify or destroy data
25 read-only
152 tools total

Community server · catalogue entry verified 11/06/2026

How to control FreeCAD Robust MCP Server ↓

Read (25) Write / Execute (122) Destructive / Financial (5)
Critical Risk

127 of FreeCAD Robust MCP Server's 152 tools can modify, destroy, or commit something on every call — and an agent calls them with no built-in limits.

PolicyLayer is an MCP gateway — it sits between your AI agents and FreeCAD Robust MCP Server, and nothing reaches the server without passing your rules. These are the rules we recommend:

Deny destructive operations
{
  "delete_macro": {
    "deny_if": [
      {
        "conditions": [],
        "on_deny": "Blocked by default. Requires approval."
      }
    ]
  }
}

Destructive tools should never be available to autonomous agents without human approval.

Rate limit write operations
{
  "clear_selection": {
    "limits": [
      {
        "counter": "clear_selection_per_hour",
        "window": "hour",
        "max": 30,
        "scope": "grant"
      }
    ]
  }
}

Prevents bulk unintended modifications from agents caught in loops.

Cap read operations
{
  "draft_list_fonts": {
    "limits": [
      {
        "counter": "draft_list_fonts_per_minute",
        "window": "minute",
        "max": 60,
        "scope": "grant"
      }
    ]
  }
}

Controls API costs and prevents retry loops from exhausting upstream rate limits.

  1. Create a free account and register FreeCAD Robust MCP Server — nothing to install.
  2. Add these rules — paste them, or build them visually. Tune the limits to your setup.
  3. Point your MCP client (Claude, Cursor, anything) at your gateway URL.
ENFORCE POLICY ON FREECAD ROBUST →

Free to start. No card required.

WRITE 108 tools
Write clear_selection Clear the current selection in FreeCAD. Requires GUI mode. Returns: Dictionary w Write constrain_coincident Constrain two points to be coincident (same location). Args: sketch_name: Name of the ske Write constrain_distance Add a distance constraint. Can constrain: - Line length (geometry1 only) - Point to p Write constrain_distance_x Constrain horizontal distance from origin or between points. Args: sketch_name: Name of t Write constrain_distance_y Constrain vertical distance from origin or between points. Args: sketch_name: Name of the Write constrain_fix Fix (lock) a point or geometry in place. Args: sketch_name: Name of the sketch. Write scale_object Scale an object uniformly or non-uniformly. Creates a new scaled copy using Part.Scale. Args Write common_all Find the common (intersection) of multiple shapes. Args: object_names: List of object nam Write explode_compound Separate a compound into individual shape objects. Args: object_name: Name of the compoun Write fuse_all Fuse (union) multiple shapes into a single solid. Unlike boolean_operation which works on two objects Write make_compound Combine multiple shapes into a single compound. A compound is a collection of shapes that can be mani Write add_external_geometry add_external_geometry Write add_sketch_arc Add an arc to a sketch. Args: sketch_name: Name of the sketch to add arc to. Write add_sketch_bspline Add a B-spline curve to a sketch. Args: sketch_name: Name of the sketch to add B-spline t Write add_sketch_circle Add a circle to a sketch. Args: sketch_name: Name of the sketch to add circle to. Write add_sketch_constraint add_sketch_constraint Write add_sketch_ellipse Add an ellipse to a sketch. Args: sketch_name: Name of the sketch to add ellipse to. Write add_sketch_line Add a line to a sketch. Args: sketch_name: Name of the sketch to add line to. Write add_sketch_point Add a point to a sketch. Points are useful for defining hole centers and reference locations. Write add_sketch_polygon Add a regular polygon to a sketch. Args: sketch_name: Name of the sketch to add polygon t Write add_sketch_rectangle Add a rectangle to a sketch. Args: sketch_name: Name of the sketch to add rectangle to. Write add_sketch_slot Add a slot (obround/stadium shape) to a sketch. A slot is two semicircles connected by parallel lines Write chamfer_edges chamfer_edges Write close_document Close a FreeCAD document. Args: doc_name: Name of document to close. Uses active document Write constrain_angle Constrain angle of a line or between two lines. Args: sketch_name: Name of the sketch. Write constrain_equal Constrain two elements to have equal size (length or radius). Args: sketch_name: Name of Write constrain_horizontal Constrain a line to be horizontal. Args: sketch_name: Name of the sketch. geo Write constrain_parallel Constrain two lines to be parallel. Args: sketch_name: Name of the sketch. ge Write constrain_perpendicular Constrain two lines to be perpendicular. Args: sketch_name: Name of the sketch. Write constrain_radius Constrain the radius of a circle or arc. Args: sketch_name: Name of the sketch. Write constrain_tangent Constrain two curves to be tangent. Args: sketch_name: Name of the sketch. ge Write constrain_vertical Constrain a line to be vertical. Args: sketch_name: Name of the sketch. geome Write copy_object Create a copy of an object. Args: object_name: Name of the object to copy. ne Write create_box Create a Part Box primitive. Args: length: Box length (X dimension). Defaults to 10.0. Write create_cone Create a Part Cone primitive. Args: radius1: Bottom radius. Defaults to 5.0. Write create_cylinder Create a Part Cylinder primitive. Args: radius: Cylinder radius. Defaults to 5.0. Write create_datum_line create_datum_line Write create_datum_plane create_datum_plane Write create_datum_point Create a datum point in a PartDesign body. Datum points are reference points used for measurements or Write create_document Create a new FreeCAD document. Args: name: Internal document name (no spaces allowed, wil Write create_ellipse Create a Part Ellipse curve. Args: major_radius: Semi-major axis radius. Defaults to 10.0 Write create_helix Create a Part Helix curve. A helix is a spiral curve, useful as a sweep path for threads and springs. Write create_hole create_hole Write create_line Create a Part Line (edge) between two points. Args: point1: Start point as [x, y, z]. Write create_macro Create a new FreeCAD macro. The macro will be created in the user's macro directory with stan Write create_macro_from_template create_macro_from_template Write create_object create_object Write create_partdesign_body Create a new PartDesign Body. A PartDesign Body is a container for feature-based modeling that Write create_plane Create a Part Plane (flat rectangular face). Args: length: Plane length (X direction). De Write create_prism Create a Part Prism (extruded regular polygon). Args: polygon_sides: Number of sides (3 f Write create_regular_polygon Create a Part Regular Polygon (2D wire). Args: polygon_sides: Number of sides (3 for tria Write create_sketch create_sketch Write create_sphere Create a Part Sphere primitive. Args: radius: Sphere radius. Defaults to 5.0. Write create_torus Create a Part Torus (donut shape) primitive. Args: radius1: Major radius (center to tube Write create_wedge Create a Part Wedge primitive. A wedge is a tapered box shape useful for ramps and similar geometry. Write draft_feature draft_feature Write draft_shapestring draft_shapestring Write draft_shapestring_to_face draft_shapestring_to_face Write draft_shapestring_to_sketch draft_shapestring_to_sketch Write draft_text_on_surface draft_text_on_surface Write edit_object Edit properties of an existing FreeCAD object. Args: object_name: Name of the object to e Write export_3mf Export objects to 3MF format. 3MF (3D Manufacturing Format) is a modern 3D printing format that Write export_iges Export objects to IGES format. IGES (Initial Graphics Exchange Specification) is an older but still Write export_obj Export objects to OBJ format. OBJ (Wavefront) is a common 3D model format supported by many 3 Write export_step Export objects to STEP format. STEP (Standard for the Exchange of Product Data) is an ISO standard Write export_stl Export objects to STL format. STL (Stereolithography) is commonly used for 3D printing and ra Write extrude_shape Extrude a wire or face along a direction vector. Args: object_name: Name of the wire or f Write fillet_edges fillet_edges Write groove_sketch groove_sketch Write import_step Import a STEP file into FreeCAD. Args: file_path: Path to the .step file to import. Write import_stl Import an STL file into FreeCAD. Args: file_path: Path to the .stl file to import. Write insert_part_from_library Insert a part from the parts library into the document. Args: part_path: Path to the part Write linear_pattern linear_pattern Write loft_sketches Create a Loft (additive) through multiple sketches. A loft creates a solid by connecting multiple pro Write make_face Create a face from a closed wire. Args: object_name: Name of the wire object. Write make_wire Create a wire (polyline) from a list of points. Args: points: List of points, each as [x, Write mirror_object mirror_object Write mirrored_feature mirrored_feature Write offset_3d Create a 3D offset of a shape. Offsets all faces of the shape by the specified distance. Arg Write pad_sketch Create a Pad (extrusion) from a sketch. Args: sketch_name: Name of the sketch to pad. Write part_loft Create a loft (transition shape) between multiple profiles. This is the Part workbench version of lof Write part_sweep Sweep a profile along a spine path. This is the Part workbench version of sweep, working directly on Write pocket_sketch pocket_sketch Write polar_pattern polar_pattern Write redo Redo the last undone operation. Args: doc_name: Document to redo in. Uses active document Write revolve_shape Revolve a wire or face around an axis. Args: object_name: Name of the wire or face object Write rotate_object Rotate an object around an axis. Modifies the object's placement in-place. Args: Write save_document Save a FreeCAD document. Args: doc_name: Name of document to save. Uses active document i Write section_shape section_shape Write set_display_mode set_display_mode Write set_object_color Set the color of a FreeCAD object. Args: object_name: Name of the object. col Write set_object_visibility Set the visibility of a FreeCAD object. Args: object_name: Name of the object. Write set_placement Set the placement (position and rotation) of a FreeCAD object. Args: object_name: Name of Write set_selection Set the selection in FreeCAD. Requires GUI mode. Args: object_names: List of obj Write set_view_angle set_view_angle Write slice_shape Slice a shape with a plane, returning the cross-section. Args: object_name: Name of the o Write spreadsheet_bind_property spreadsheet_bind_property Write spreadsheet_create spreadsheet_create Write spreadsheet_export_csv spreadsheet_export_csv Write spreadsheet_import_csv spreadsheet_import_csv Write spreadsheet_set_alias spreadsheet_set_alias Write spreadsheet_set_cell spreadsheet_set_cell Write subtractive_loft Create a subtractive loft (cut) through multiple sketches. Args: sketch_names: List of sk Write sweep_sketch sweep_sketch Write thickness_feature thickness_feature Write toggle_construction Toggle construction mode for a sketch geometry. Construction geometry is used for reference but not i Write undo Undo the last operation. Args: doc_name: Document to undo in. Uses active document if Non Write undo_if_invalid undo_if_invalid
READ 25 tools
Read draft_list_fonts draft_list_fonts Read fit_all Fit all objects in the current view. Adjusts the camera to show all visible objects in the document. Read get_active_document Get the currently active FreeCAD document. Returns: Dictionary with document information, Read get_connection_status Get the current FreeCAD connection status. Returns: Dictionary containing connection info Read get_console_log Get recent console output from FreeCAD. Args: lines: Maximum number of lines to return. D Read get_console_output Get recent FreeCAD console output. Args: lines: Maximum number of lines to return. Defaul Read get_freecad_version get_freecad_version Read get_mcp_server_environment get_mcp_server_environment Read get_screenshot get_screenshot Read get_selection get_selection Read get_sketch_info Get detailed information about a sketch. Args: sketch_name: Name of the sketch. Read get_undo_redo_status Get the current undo/redo status. Args: doc_name: Document to check. Uses active document Read inspect_object Get detailed information about a FreeCAD object. Args: object_name: Name of the object to Read list_documents List all open FreeCAD documents. Returns: List of dictionaries, each containing: Read list_macros List all available FreeCAD macros. Returns: List of dictionaries, each containing: Read list_objects list_objects Read list_parts_library List available parts from the FreeCAD parts library. Returns: List of parts with: Read list_workbenches List all available FreeCAD workbenches. Returns: List of dictionaries, each containing: Read read_macro Read the contents of a FreeCAD macro. Args: macro_name: Name of the macro to read (withou Read spreadsheet_get_aliases spreadsheet_get_aliases Read spreadsheet_get_cell spreadsheet_get_cell Read spreadsheet_get_cell_range spreadsheet_get_cell_range Read validate_document validate_document Read validate_object validate_object Read open_document Open an existing FreeCAD document from file. Args: path: Full path to the .FCStd file to

Other MCP servers with similar tools — same risk classification, starter policies for each.

Can an AI agent delete data through the FreeCAD Robust MCP Server MCP server? +

Yes. The FreeCAD Robust MCP Server server exposes 5 destructive tools including delete_macro, delete_object, delete_sketch_constraint. These permanently remove resources with no undo. PolicyLayer blocks destructive tools by default so they never reach the upstream server.

How do I prevent bulk modifications through FreeCAD Robust MCP Server? +

The FreeCAD Robust MCP Server server has 108 write tools including clear_selection, constrain_coincident, constrain_distance. Set a rate limit in your policy -- for example, 10 calls per hour prevents an agent from making more than 10 modifications per hour. PolicyLayer enforces this at the gateway, before calls reach FreeCAD Robust MCP Server.

How many tools does the FreeCAD Robust MCP Server MCP server expose? +

152 tools across 4 categories: Destructive, Execute, Read, Write. 25 are read-only. 127 can modify, create, or delete data.

How do I enforce a policy on FreeCAD Robust MCP Server? +

Register the FreeCAD Robust MCP Server MCP server in PolicyLayer, apply the suggested rules above (adjust the limits to your use case), and point your AI client at the PolicyLayer proxy URL instead of the server directly. Your agents keep the same tools; PolicyLayer evaluates every call against policy before it executes. Nothing to install, live in minutes.

Enforce policy on every FreeCAD Robust MCP Server tool call.

Deterministic rules across all 152 FreeCAD Robust MCP Server tools. Per-identity grants. Full audit log. Live in minutes. Nothing to install.

Free to start. No card required.

152 FreeCAD Robust MCP Server tools catalogued and risk-classified — across an index of 42,500+ MCP servers.

// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.