FreeCAD
Integra con FreeCAD, un modelador 3D paramétrico gratuito y de código abierto, a través de un puente Python.
Documentación
FreeCAD MCP (Model Control Protocol)
Resumen
El FreeCAD MCP (Model Control Protocol) proporciona una interfaz simplificada para interactuar con FreeCAD a través de una arquitectura cliente-servidor. Esto permite a los usuarios ejecutar comandos y obtener 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 utilizar un formato JSON para especificar los ajustes 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
-
command: La ruta al ejecutable de Python que ejecutará el servidor MCP de FreeCAD. Esto puede variar según su sistema operativo:
- Windows: Normalmente, podría verse como
C:\\ProgramData\\anaconda3\\python.exeoC:\\Python39\\python.exe. - Linux: Podría ser
/usr/bin/python3o la ruta a su instalación de Python. - macOS: Generalmente, sería
/usr/local/bin/python3o la ruta a su instalación de Python.
- Windows: Normalmente, podría verse como
-
args: Una matriz de argumentos para pasar al comando de Python. El primer argumento debe ser la ruta al script
freecad_bridge.py, que es responsable de manejar la lógica del servidor MCP. Asegúrese de ajustar la ruta según su instalación.
Ejemplo para diferentes sistemas operativos
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"
]
}
}
}
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 de objetos (tipo, posición, rotación, propiedades de forma)
- Datos de bocetos (geometría, restricciones)
- Información de vista (posición de cámara, dirección, etc.)
2. run_script
- Descripción: Ejecuta código Python arbitrario dentro del contexto de FreeCAD. Esto permite a los usuarios realizar operaciones complejas, crear nuevos objetos, modificar los existentes y automatizar tareas utilizando la API de Python de FreeCAD.
Ejemplo de uso
Para usar el 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
- Clone el repositorio o descargue los archivos.
- Coloque el directorio
freecad_mcpen su directorio de módulos de FreeCAD:- Windows:
%APPDATA%/FreeCAD/Mod/ - Linux:
~/.FreeCAD/Mod/ - macOS:
~/Library/Preferences/FreeCAD/Mod/
- Windows:
- Reinicie FreeCAD y seleccione el banco de trabajo "FreeCAD MCP" desde el selector de bancos de trabajo.
Contribuciones
Siéntase libre de contribuir enviando problemas o solicitudes de extracción. ¡Sus comentarios y contribuciones son bienvenidos!
Licencia
Este proyecto está licenciado bajo la Licencia MIT. Consulte el archivo LICENSE para más detalles.