FreeCAD MCP Server
Provides tools for 3D modeling and CAD operations in FreeCAD, including creating basic shapes (boxes, cylinders, spheres), performing boolean operations (union, cut, common), managing documents, and executing custom Python scripts.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@FreeCAD MCP ServerCreate a box 50x30x20 and a cylinder radius 10 height 50, then union them"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
FreeCAD MCP Server
A Model Context Protocol (MCP) server that enables AI assistants to interact with FreeCAD for 3D modeling and CAD operations.
Features
Basic Geometry Creation: Create boxes, cylinders, spheres with specified dimensions
Boolean Operations: Perform union, cut, and common operations between objects
Document Management: Save documents and list objects
Custom Script Execution: Execute arbitrary Python scripts in FreeCAD context
Cross-Platform: Supports Windows, macOS, and Linux
Related MCP server: FreeCAD MCP
Prerequisites
FreeCAD Installation: Install FreeCAD from freecad.org
Node.js: Version 18 or higher
TypeScript: For development
Installation
Clone this repository:
git clone https://github.com/lucygoodchild/freecad-mcp-server.git
cd freecad-mcp-serverInstall dependencies:
npm installBuild the project:
npm run buildConfigure FreeCAD path (if needed):
The server attempts to auto-detect FreeCAD installation
Default paths:
Windows:
C:\Program Files\FreeCAD 0.21\bin\FreeCAD.exemacOS:
/Applications/FreeCAD.app/Contents/MacOS/FreeCADLinux:
/usr/bin/freecad
Usage
Running the Server
npm startClaude Desktop
Add the following to your MCP client configuration (~/Library/Application Support/Claude/claude_desktop_config.json): { "mcpServers": { "freecad-mcp-server": { "command": "node", "args": ["/path/to/free-cad-mcp/build/index.js"] } } } Make sure to replace "/path/to/free-cad-mcp/build/index.js" with the actual path and to restart Claude once you have made the changes
Available Tools
create_box
Create a rectangular box with specified dimensions.
{
"name": "create_box",
"arguments": {
"length": 50,
"width": 30,
"height": 20,
"name": "MyBox"
}
}create_cylinder
Create a cylinder with specified radius and height.
{
"name": "create_cylinder",
"arguments": {
"radius": 10,
"height": 50,
"name": "MyCylinder"
}
}create_sphere
Create a sphere with specified radius.
{
"name": "create_sphere",
"arguments": {
"radius": 15,
"name": "MySphere"
}
}boolean_operation
Perform boolean operations between two objects.
{
"name": "boolean_operation",
"arguments": {
"operation": "union",
"object1": "Box",
"object2": "Cylinder",
"result_name": "Combined"
}
}Operations: union, cut, common
save_document
Save the current FreeCAD document.
{
"name": "save_document",
"arguments": {
"filename": "my_model.FCStd",
"path": "/path/to/save"
}
}list_objects
List all objects in the current document.
{
"name": "list_objects",
"arguments": {}
}execute_python_script
Execute custom Python script in FreeCAD context.
{
"name": "execute_python_script",
"arguments": {
"script": "box = doc.addObject('Part::Box', 'CustomBox')\nbox.Length = 100"
}
}Integration with AI Assistants
This server implements the Model Context Protocol, making it compatible with MCP-enabled AI assistants. The AI can:
Generate 3D Models: Create complex geometries by combining basic shapes
Parametric Design: Modify dimensions and parameters based on requirements
Assembly Creation: Build multi-part assemblies using boolean operations
Design Automation: Execute complex modeling workflows through scripting
Example AI Interactions
"Create a bearing housing with a 20mm inner diameter and 40mm outer diameter"
"Make a threaded bolt with M6 threading, 50mm long"
"Design a simple bracket to hold two 10mm rods 30mm apart"
Development
Project Structure
src/
index.ts # Main server implementation
build/ # Compiled JavaScript output
package.json # Dependencies and scripts
tsconfig.json # TypeScript configurationBuilding
npm run buildDevelopment Mode
npm run devTroubleshooting
FreeCAD Not Found
Verify FreeCAD is installed and accessible from command line
Update the
freecadPathin the server constructor if neededCheck that the FreeCAD executable has proper permissions
Script Execution Errors
Ensure FreeCAD Python environment has required modules
Check script syntax - Python scripts are executed in FreeCAD's Python interpreter
Use
list_objectsto verify object names before boolean operations
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/lucygoodchild/freecad-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server