Skip to main content
Glama
hashbolic

FreeCAD MCP for Codex

by hashbolic

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
FREECAD_MODENoConnection mode for FreeCAD. Defaults to 'xmlrpc'.xmlrpc
FREECAD_XMLRPC_PORTNoPort for the FreeCAD XML-RPC bridge. Defaults to 9875.9875
FREECAD_ALLOW_EXECUTE_PYTHONNoSet to 'true' to enable the execute_freecad_python escape hatch. Disabled by default.false

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
freecad_healthA

Return structured bridge, FreeCAD version, and GUI health.

get_operation_statusA

Poll a timed-out FreeCAD operation until it is definitively complete.

list_documentsA

List open FreeCAD documents.

open_documentA

Open an FCStd document and return its identity.

create_documentC

Create an empty FreeCAD document.

save_documentC

Save a document to its existing path.

save_document_asC

Save a document to a new FCStd path.

close_documentC

Close a FreeCAD document without saving it automatically.

list_objectsC

List object names, labels, types, and visibility.

inspect_objectB

Inspect an object's properties, links, and shape summary.

inspect_shapeB

Return shape type, validity, topology counts, mass properties, and bounds.

get_bounding_boxB

Return an object's axis-aligned bounding box in document coordinates.

measure_distanceA

Measure Euclidean distance between two XYZ points.

check_collisionB

Check whether two shapes overlap and report intersection volume.

check_geometryC

Validate an object's BRep and return structured geometry diagnostics.

capture_viewB

Capture a PNG of the active FreeCAD 3D view.

create_boxC

Create and validate a Part box.

create_cylinderC

Create and validate a Part cylinder.

create_shellC

Create a rectangular open-top shell from [length,width,height].

set_placementB

Set an object's XYZ placement and optional yaw/pitch/roll Euler angles.

boolean_cutB

Subtract object_b from object_a in one validated transaction.

boolean_fuseC

Fuse two shapes in one validated transaction.

boolean_commonA

Intersect two shapes in one validated transaction.

fillet_edgesC

Fillet selected edges, or all edges when edge_indices is omitted.

chamfer_edgesB

Chamfer selected edges, or all edges when edge_indices is omitted.

split_by_planeC

Split a shape by an axis-aligned plane and return two new objects.

create_screw_bossC

Create a hollow cylindrical screw boss.

create_heatset_insert_bossB

Create a hollow boss sized for a heat-set insert.

create_fan_mountB

Create a square fan mounting plate with four clearance holes.

create_vent_patternB

Create a vent plate with a regular array of through-slots.

split_for_print_bedC

Split a long object into print-bed-sized axis-aligned pieces.

import_stepC

Import a STEP file into the target document.

export_stepC

Export selected or all shaped objects to STEP.

import_stlB

Import an STL mesh into the target document.

export_stlC

Export selected or all shaped objects to STL.

execute_freecad_pythonC

Execute FreeCAD Python only when FREECAD_ALLOW_EXECUTE_PYTHON=true.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.9/5.0

Scored across 36 tools

Disambiguation4/5

Most tools target distinct resources and actions, so an agent can usually tell them apart. A few pairs overlap in scope — inspect_shape and get_bounding_box both return bounds, and split_by_plane and split_for_print_bed both split shapes — but the descriptions make the intended use reasonably clear.

Naming Consistency4/5

The set is predominantly lower_snake_case with an action+object pattern like list_documents, create_box, and export_step. It is not perfect because freecad_health is a noun-style outlier and the boolean_* tools use an adjective prefix instead of a clear verb.

Tool Count2/5

At 36 tools this is well past the 25+ threshold for an over-large set, and several niche print-preparation helpers such as screw boss, heatset boss, fan mount, vent pattern, and print-bed splitter broaden the surface beyond a tight CAD API. The count is not an extreme 50+ disaster, but it should be trimmed or consolidated for a more focused server.

Completeness3/5

The set covers document lifecycle, object inspection, primitive modeling, boolean operations, filleting/chamfering, splitting, and STEP/STL import/export, so the primary solid-modeling workflow is usable. Missing first-class operations like delete/rename/copy objects and any sketch/extrude/parametric capabilities leave notable gaps for general FreeCAD use, partially papered over by execute_freecad_python.

Maintenance

ActivityMaintained
ResponsivenessNo issues