FreeCAD MCP

local-only server

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

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 (Protocolo de control de modelos)

Descripción general

El MCP (Protocolo de Control de Modelos) de FreeCAD proporciona una interfaz simplificada para interactuar con FreeCAD mediante una arquitectura cliente-servidor. Esto permite a los usuarios ejecutar comandos y recuperar información sobre el documento y la escena actuales de FreeCAD.

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

Configuración

Para configurar el servidor MCP, puede usar el formato JSON para especificar la configuración del servidor. A continuación, se muestra un ejemplo de configuración:

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

Detalles de configuración

  • Comando : La ruta al ejecutable de Python que ejecutará el servidor FreeCAD MCP. Esto puede variar según el sistema operativo.
    • Windows : normalmente, podría verse como C:\\ProgramData\\anaconda3\\python.exe o C:\\Python39\\python.exe .
    • Linux : podría ser /usr/bin/python3 o la ruta a su instalación de Python.
    • macOS : normalmente, sería /usr/local/bin/python3 o la ruta a su instalación de Python.
  • args : Una matriz de argumentos para pasar al comando de Python. El primer argumento debe ser la ruta al script freecad_bridge.py , responsable de gestionar la lógica del servidor MCP. Asegúrese de ajustar la ruta según su instalación.

Ejemplo para diferentes sistemas operativos

Ventanas

{ "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" ] } } }

Características

El FreeCAD MCP actualmente admite las siguientes funcionalidades:

1. get_scene_info

  • Descripción : Recupera información completa sobre el documento actual de FreeCAD, incluyendo:
    • Propiedades del documento (nombre, etiqueta, nombre de archivo, número de objetos)
    • Información detallada del objeto (tipo, posición, rotación, propiedades de forma)
    • Datos del boceto (geometría, restricciones)
    • Ver información (posición de la cámara, dirección, etc.)

2. run_script

  • Descripción : Ejecuta código Python arbitrario en el contexto de FreeCAD. Esto permite a los usuarios realizar operaciones complejas, crear nuevos objetos, modificar los existentes y automatizar tareas mediante la API de Python de FreeCAD.

Ejemplo de uso

Para utilizar FreeCAD MCP, puede conectarse al servidor y enviar comandos de la siguiente manera:

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()

Instalación

  1. Clonar el repositorio o descargar los archivos.
  2. Coloque el directorio freecad_mcp en su directorio de módulos de FreeCAD:
    • Ventanas: %APPDATA%/FreeCAD/Mod/
    • Linux: ~/.FreeCAD/Mod/
    • macOS: ~/Library/Preferences/FreeCAD/Mod/
  3. Reinicie FreeCAD y seleccione el banco de trabajo “FreeCAD MCP” en el selector de banco de trabajo.

Contribuyendo

Siéntete libre de contribuir enviando incidencias o solicitudes de incorporación de cambios. ¡Tus comentarios y contribuciones son bienvenidos!

Licencia

Este proyecto está licenciado bajo la Licencia MIT. Consulte el archivo de LICENCIA para más detalles.

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

Un complemento de FreeCAD que implementa el Protocolo de contexto de modelo (MCP) para permitir la comunicación entre FreeCAD y Claude AI a través de 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
          ID: st9mc7th67