FreeCAD MCP for Codex
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FREECAD_MODE | No | Connection mode for FreeCAD. Defaults to 'xmlrpc'. | xmlrpc |
| FREECAD_XMLRPC_PORT | No | Port for the FreeCAD XML-RPC bridge. Defaults to 9875. | 9875 |
| FREECAD_ALLOW_EXECUTE_PYTHON | No | Set 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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/hashbolic/Codex-FreeCAD-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server