FreeCAD MCP

by bonninr

Integrations

  • Enables creation and manipulation of 3D objects, parametric modeling operations, document management, and export/import capabilities in FreeCAD through natural language commands.

FreeCAD MCP (Model Control Protocol)

Overview

The FreeCAD MCP (Model Control Protocol) provides a simplified interface for interacting with FreeCAD through a server-client architecture. This allows users to execute commands and retrieve information about the current FreeCAD document and scene.

https://github.com/user-attachments/assets/5acafa17-4b5b-4fef-9f6c-617e85357d44

Configuration

To configure the MCP server, you can use a JSON format to specify the server settings. Below is an example configuration:

{ "mcpServers": { "freecad": { "command": "C:\\ProgramData\\anaconda3\\python.exe", "args": [ "C:\\Users\\USER\\AppData\\Roaming\\FreeCAD\\Mod\\freecad_mcp\\src\\freecad_bridge.py" ] } } }

Configuration Details

  • command: The path to the Python executable that will run the FreeCAD MCP server. This can vary based on your operating system:
    • Windows: Typically, it might look like C:\\ProgramData\\anaconda3\\python.exe or C:\\Python39\\python.exe.
    • Linux: It could be /usr/bin/python3 or the path to your Python installation.
    • macOS: Usually, it would be /usr/local/bin/python3 or the path to your Python installation.
  • args: An array of arguments to pass to the Python command. The first argument should be the path to the freecad_bridge.py script, which is responsible for handling the MCP server logic. Make sure to adjust the path according to your installation.

Example for Different Operating Systems

Windows
{ "mcpServers": { "freecad": { "command": "C:\\ProgramData\\anaconda3\\python.exe", "args": [ "C:\\Users\\USER\\AppData\\Roaming\\FreeCAD\\Mod\\freecad_mcp\\src\\freecad_bridge.py" ] } } }
Linux
{ "mcpServers": { "freecad": { "command": "/usr/bin/python3", "args": [ "/home/USER/.FreeCAD/Mod/freecad_mcp/src/freecad_bridge.py" ] } } }
macOS
{ "mcpServers": { "freecad": { "command": "/usr/local/bin/python3", "args": [ "/Users/USER/Library/Preferences/FreeCAD/Mod/freecad_mcp/src/freecad_bridge.py" ] } } }

Features

The FreeCAD MCP currently supports the following functionalities:

1. get_scene_info

  • Description: Retrieves comprehensive information about the current FreeCAD document, including:
    • Document properties (name, label, filename, object count)
    • Detailed object information (type, position, rotation, shape properties)
    • Sketch data (geometry, constraints)
    • View information (camera position, direction, etc.)

2. run_script

  • Description: Executes arbitrary Python code within the FreeCAD context. This allows users to perform complex operations, create new objects, modify existing ones, and automate tasks using FreeCAD's Python API.

Example Usage

To use the FreeCAD MCP, you can connect to the server and send commands as follows:

import socket import json # Connect to the FreeCAD MCP server client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client.connect(('localhost', 9876)) # Example: Get scene information command = { "type": "get_scene_info" } client.sendall(json.dumps(command).encode('utf-8')) # Receive the response response = client.recv(4096) print(json.loads(response.decode('utf-8'))) # Example: Run a script script = """ import FreeCAD doc = FreeCAD.ActiveDocument box = doc.addObject("Part::Box", "MyBox") box.Length = 20 box.Width = 20 box.Height = 20 doc.recompute() """ command = { "type": "run_script", "params": { "script": script } } client.sendall(json.dumps(command).encode('utf-8')) # Receive the response response = client.recv(4096) print(json.loads(response.decode('utf-8'))) # Close the connection client.close()

Installation

  1. Clone the repository or download the files.
  2. Place the freecad_mcp directory in your FreeCAD modules directory:
    • Windows: %APPDATA%/FreeCAD/Mod/
    • Linux: ~/.FreeCAD/Mod/
    • macOS: ~/Library/Preferences/FreeCAD/Mod/
  3. Restart FreeCAD and select the "FreeCAD MCP" workbench from the workbench selector.

Contributing

Feel free to contribute by submitting issues or pull requests. Your feedback and contributions are welcome!

License

This project is licensed under the MIT License. See the LICENSE file for details.

-
security - not tested
A
license - permissive license
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

A FreeCAD addon that implements the Model Context Protocol (MCP) to enable communication between FreeCAD and Claude AI through Claude Desktop.

  1. Overview
    1. Configuration
      1. Configuration Details
      2. Example for Different Operating Systems
    2. Features
      1. 1. get_scene_info
      2. 2. run_script
      3. Example Usage
    3. Installation
      1. Contributing
        1. License

          Related MCP Servers

          • -
            security
            A
            license
            -
            quality
            Connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender for AI-assisted 3D modeling, scene manipulation, and rendering.
            Last updated -
            10,093
            Python
            MIT License
            • Apple
          • A
            security
            A
            license
            A
            quality
            This repository is a FreeCAD MCP that allows you to control FreeCAD from Claude Desktop.
            Last updated -
            10
            111
            Python
            MIT License
            • Apple
            • Linux
          • -
            security
            A
            license
            -
            quality
            A utility tool that enables Claude Desktop to interact with external tools via the Model Context Protocol, providing features like email sending and simple calculations while simplifying the MCP setup process.
            Last updated -
            129
            9
            JavaScript
            MIT License
            • Apple
          • A
            security
            A
            license
            A
            quality
            A Model Context Protocol server that automatically reads the Claude Desktop configuration file and presents all available MCP services in an easy-to-copy format at the top of the tools list.
            Last updated -
            1
            8
            2
            JavaScript
            MIT License
            • Apple

          View all related MCP servers

          ID: st9mc7th67