FreeCAD MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FREECAD_MCP_HOST | No | Host for the FreeCAD MCP server (default: 127.0.0.1) | 127.0.0.1 |
| FREECAD_MCP_PORT | No | Port for the FreeCAD MCP server (default: 8765) | 8765 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| execute_macroD | FreeCAD tool: execute_macro |
| create_boxC | FreeCAD tool: create_box |
| create_cubeD | FreeCAD tool: create_cube |
| create_cylinderC | FreeCAD tool: create_cylinder |
| create_sphereD | FreeCAD tool: create_sphere |
| create_coneC | FreeCAD tool: create_cone |
| create_torusD | FreeCAD tool: create_torus |
| create_hemisphereC | FreeCAD tool: create_hemisphere |
| create_half_torusD | FreeCAD tool: create_half_torus |
| create_polygon_prismD | FreeCAD tool: create_polygon_prism |
| combine_by_nameD | FreeCAD tool: combine_by_name |
| combine_selectionC | FreeCAD tool: combine_selection |
| combine_selection_allD | FreeCAD tool: combine_selection_all |
| move_by_nameD | FreeCAD tool: move_by_name |
| rotate_by_nameD | FreeCAD tool: rotate_by_name |
| add_filletD | FreeCAD tool: add_fillet |
| add_chamferD | FreeCAD tool: add_chamfer |
| shell_bodyD | FreeCAD tool: shell_body |
| hide_bodyD | FreeCAD tool: hide_body |
| show_bodyD | FreeCAD tool: show_body |
| copy_body_symmetricD | FreeCAD tool: copy_body_symmetric |
| create_circular_patternD | FreeCAD tool: create_circular_pattern |
| create_rectangular_patternD | FreeCAD tool: create_rectangular_pattern |
| get_all_bodiesD | FreeCAD tool: get_all_bodies |
| get_bounding_boxD | FreeCAD tool: get_bounding_box |
| get_body_dimensionsD | FreeCAD tool: get_body_dimensions |
| get_body_centerD | FreeCAD tool: get_body_center |
| get_faces_infoD | FreeCAD tool: get_faces_info |
| get_edges_infoD | FreeCAD tool: get_edges_info |
| get_mass_propertiesD | FreeCAD tool: get_mass_properties |
| get_body_relationshipsD | FreeCAD tool: get_body_relationships |
| check_interferenceD | FreeCAD tool: check_interference |
| measure_distanceD | FreeCAD tool: measure_distance |
| measure_angleD | FreeCAD tool: measure_angle |
| export_fileD | FreeCAD tool: export_file |
| delete_all_featuresD | FreeCAD tool: delete_all_features |
| save_documentD | FreeCAD tool: save_document |
| undoC | FreeCAD tool: undo |
| redoD | FreeCAD tool: redo |
| create_sketchC | FreeCAD tool: create_sketch |
| draw_line_in_sketchD | FreeCAD tool: draw_line_in_sketch |
| draw_circle_in_sketchD | FreeCAD tool: draw_circle_in_sketch |
| draw_rectangle_in_sketchD | FreeCAD tool: draw_rectangle_in_sketch |
| add_coincident_constraintD | FreeCAD tool: add_coincident_constraint |
| add_horizontal_constraintD | FreeCAD tool: add_horizontal_constraint |
| add_vertical_constraintD | FreeCAD tool: add_vertical_constraint |
| add_parallel_constraintD | FreeCAD tool: add_parallel_constraint |
| add_perpendicular_constraintD | FreeCAD tool: add_perpendicular_constraint |
| add_tangent_constraintD | FreeCAD tool: add_tangent_constraint |
| add_linear_dimensionD | FreeCAD tool: add_linear_dimension |
| add_radius_dimensionD | FreeCAD tool: add_radius_dimension |
| extrude_sketchD | FreeCAD tool: extrude_sketch |
| revolve_sketchD | FreeCAD tool: revolve_sketch |
| sweep_sketchD | FreeCAD tool: sweep_sketch |
| loft_sketchesD | FreeCAD tool: loft_sketches |
| create_pipeD | FreeCAD tool: create_pipe |
| create_section_viewD | FreeCAD tool: create_section_view |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 57 tools
Most tools have clearly distinct purposes (e.g., create_cylinder vs create_box), but there are some ambiguous pairs like combine_by_name, combine_selection, combine_selection_all that could cause misselection. The large number of tools also increases confusion risk.
The naming pattern is predominantly verb_noun in snake_case, which is consistent. Minor deviations include single-word tools (undo, redo) and the phrase 'copy_body_symmetric' which breaks the pattern slightly, but overall it's readable and predictable.
With 57 tools, the set is quite large, covering many primitive creations, constraints, and operations. While each tool has a specific role, the count feels on the high side for a single server, potentially overwhelming agents.
The toolset covers basic creation, sketching, constraints, and some feature operations, but lacks boolean operations (cut, union), sketch editing tools, and assembly capabilities. Notable gaps exist that may hinder complex workflows.