FreeCAD Robust MCP Server

An MCP (Model Context Protocol) server that enables integration between AI assistants (Claude, GPT, and other MCP-compatible tools) and FreeCAD, allowing AI-assisted development and debugging of 3D…

Local serverstdio

What is the FreeCAD Robust MCP Server?

FreeCAD Robust is an MCP project maintained in the spkane/freecad-addon-robust-mcp-server repository. The maintainer describes its purpose as “An MCP (Model Context Protocol) server that enables integration between AI assistants (Claude, GPT, and other MCP-compatible tools) and FreeCAD, allowing AI-assisted development and debugging…”. Read the project documentation for the complete scope.

Local setup

The project provides a local client configuration using freecad-mcp. Follow the repository’s build and installation steps before copying it, and replace example paths with the paths on your own computer.

Configuration values

The example declares FREECAD_MODE. Secret-looking values have been replaced with placeholders. Required and optional labels are shown only when the documentation states them.

Source

Project documentation · Repository · Discovery listing. This profile records the public documentation checked on 2026-10-08.

Recorded tools

Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.

ToolWhat it does
execute_pythonExecute arbitrary Python code in FreeCAD's context
get_freecad_versionGet FreeCAD version, build date, and Python version
get_connection_statusCheck MCP bridge connection status and latency
get_console_outputGet recent FreeCAD console output (up to N lines)
get_mcp_server_environmentGet Robust MCP Server environment (OS, hostname, instance_id)
list_documentsList all open documents with metadata
get_active_documentGet information about the active document
create_documentCreate a new FreeCAD document
open_documentOpen an existing .FCStd file
save_documentSave a document to disk
close_documentClose a document (with optional save)
recompute_documentForce recomputation of all objects
create_objectCreate a generic FreeCAD object by type ID
create_boxCreate a Part::Box with length, width, height
create_cylinderCreate a Part::Cylinder with radius, height, angle
create_sphereCreate a Part::Sphere with radius
create_coneCreate a Part::Cone with two radii and height
create_torusCreate a Part::Torus (donut) with radii and angles
create_wedgeCreate a Part::Wedge (tapered box)
create_helixCreate a Part::Helix curve for sweeps and threads
list_objectsList all objects in a document
inspect_objectGet detailed object info (properties, shape, etc.)
edit_objectModify properties of an existing object
delete_objectDelete an object from a document
set_placementSet object position and rotation
scale_objectScale an object uniformly or non-uniformly
rotate_objectRotate an object around an axis
copy_objectCreate a copy of an object
mirror_objectMirror an object across a plane (XY, XZ, YZ)
boolean_operationFuse, cut, or intersect objects
get_selectionGet currently selected objects
set_selectionSelect specific objects by name
clear_selectionClear all selections
create_partdesign_bodyCreate a PartDesign::Body container
create_sketchCreate a sketch on a plane or face
add_sketch_rectangleAdd a rectangle to a sketch
add_sketch_circleAdd a circle to a sketch
add_sketch_lineAdd a line (with optional construction flag)
add_sketch_arcAdd an arc by center, radius, and angles
add_sketch_pointAdd a point (useful for hole centers)
pad_sketchExtrude a sketch (additive)
pocket_sketchCut into solid using a sketch (subtractive)
revolution_sketchRevolve a sketch around an axis (additive)
groove_sketchRevolve a sketch around an axis (subtractive)
create_holeCreate parametric holes with optional threading
loft_sketchesCreate a loft through multiple sketches
sweep_sketchSweep a profile along a spine path
linear_patternCreate linear pattern of a feature
polar_patternCreate polar/circular pattern of a feature
mirrored_featureMirror a feature across a plane
fillet_edgesAdd fillets (rounded edges)
chamfer_edgesAdd chamfers (beveled edges)
get_screenshotCapture a screenshot of the 3D view
set_view_angleSet camera to standard views (Front, Top, etc.)
fit_allZoom to fit all objects in view
zoom_inZoom in by a factor
zoom_outZoom out by a factor
set_camera_positionSet camera position and look-at point
set_object_visibilityShow/hide objects
set_display_modeSet display mode (Shaded, Wireframe, etc.)
set_object_colorSet object color as RGB values
list_workbenchesList available FreeCAD workbenches
activate_workbenchSwitch to a different workbench
undoUndo the last operation
redoRedo a previously undone operation
get_undo_redo_statusGet available undo/redo operations
export_stepExport to STEP format (ISO CAD exchange)
export_stlExport to STL format (3D printing)
export_3mfExport to 3MF format (modern 3D printing)
export_objExport to OBJ format (Wavefront)
export_igesExport to IGES format (older CAD exchange)
import_stepImport a STEP file
import_stlImport an STL file as mesh
list_macrosList all available FreeCAD macros
run_macroExecute a macro by name
create_macroCreate a new macro file
read_macroRead macro source code
delete_macroDelete a user macro
create_macro_from_templateCreate macro from template (basic, part, etc.)
list_parts_libraryList parts in FreeCAD's parts library
insert_part_from_libraryInsert a part from the library

How to install the FreeCAD Robust MCP Server

{
  "mcpServers": {
    "freecad": {
      "command": "freecad-mcp",
      "env": {
        "FREECAD_MODE": "xmlrpc"
      }
    }
  }
}

From the project documentation. Replace placeholders and example paths before connecting.

Configuration

VariableDescriptionRequired
FREECAD_MODEDeclared in the maintainer’s client configuration.Check documentation