FreeCAD MCP
Um servidor para interagir com modelos FreeCAD usando o Model Context Protocol (MCP).
Documentação
FreeCAD MCP
Este repositório é um FreeCAD MCP que permite controlar o FreeCAD a partir do Claude Desktop.
Demonstração
Projetar um flange

Projetar um carrinho de brinquedo

Projetar uma peça a partir de desenho 2D
Entrada do desenho 2D

Demonstração

Este é o histórico da conversa. https://claude.ai/share/7b48fd60-68ba-46fb-bb21-2fbb17399b48
Instalar complemento
O diretório de complementos do FreeCAD é
- Windows:
%APPDATA%\FreeCAD\Mod\ - Mac:
- FreeCAD 1.1:
~/Library/Application\ Support/FreeCAD/v1-1/Mod/ - FreeCAD 1.0:
~/Library/Application\ Support/FreeCAD/v1-0/Mod/
- FreeCAD 1.1:
- Linux:
- Ubuntu:
~/.FreeCAD/Mod/ou~/snap/freecad/common/Mod/(se você instalar o FreeCAD via snap) - Debian:
~/.local/share/FreeCAD/Mod - Arch / CachyOS (FreeCAD 1.1 do
extra/freecad):~/.local/share/FreeCAD/v1-1/Mod/
- Ubuntu:
Por favor, coloque o diretório addon/FreeCADMCP no diretório de complementos.
git clone https://github.com/neka-nat/freecad-mcp.git
cd freecad-mcp
# For Linux (Ubuntu/Debian)
mkdir -p ~/.FreeCAD/Mod/
cp -r addon/FreeCADMCP ~/.FreeCAD/Mod/
# For Linux (Arch/CachyOS, FreeCAD 1.1 from extra/freecad)
mkdir -p ~/.local/share/FreeCAD/v1-1/Mod/
cp -r addon/FreeCADMCP ~/.local/share/FreeCAD/v1-1/Mod/
# For macOS (FreeCAD 1.1)
mkdir -p ~/Library/Application\ Support/FreeCAD/v1-1/Mod/
cp -r addon/FreeCADMCP ~/Library/Application\ Support/FreeCAD/v1-1/Mod/
Ao instalar o complemento, você precisa reiniciar o FreeCAD. Você pode selecionar "MCP Addon" na lista de Workbenches e usá-lo.

E você pode iniciar o servidor RPC pelo comando "Start RPC Server" na barra de ferramentas "FreeCAD MCP".

Iniciar servidor RPC automaticamente
Por padrão, o servidor RPC deve ser iniciado manualmente toda vez que o FreeCAD abre. Para iniciá-lo automaticamente:
- Abra o menu FreeCAD MCP (alterne para o workbench MCP Addon primeiro)
- Marque Auto-Start Server
A configuração é salva em freecad_mcp_settings.json e persiste entre as sessões. No próximo início do FreeCAD, o servidor RPC iniciará automaticamente assim que o aplicativo terminar de carregar.
Você pode desativá-lo a qualquer momento desmarcando Auto-Start Server no mesmo menu.
Configurando o Claude Desktop
A pré-instalação do uvx é necessária.
E você precisa editar o arquivo de configuração do Claude Desktop, claude_desktop_config.json.
Para o usuário.
{
"mcpServers": {
"freecad": {
"command": "uvx",
"args": [
"freecad-mcp"
]
}
}
}
Se você quiser economizar tokens, pode definir only_text_feedback como true e usar apenas feedback de texto.
{
"mcpServers": {
"freecad": {
"command": "uvx",
"args": [
"freecad-mcp",
"--only-text-feedback"
]
}
}
}
As capturas de tela também podem ser controladas por chamada de ferramenta em vez de globalmente: toda ferramenta que retorna uma captura de tela aceita um parâmetro opcional include_screenshot (passe false para obter feedback somente de texto, por exemplo, para scripts analíticos ou etapas intermediárias) e um parâmetro opcional view_name para orientar a captura de tela ("Isometric" por padrão, ou "Front", "Top", "Right", etc.). A flag --only-text-feedback sempre vence: quando definida, nenhuma captura de tela é retornada, independentemente de include_screenshot.
Para o desenvolvedor. Primeiro, você precisa clonar este repositório.
git clone https://github.com/neka-nat/freecad-mcp.git
{
"mcpServers": {
"freecad": {
"command": "uv",
"args": [
"--directory",
"/path/to/freecad-mcp/",
"run",
"freecad-mcp"
]
}
}
}
Conexões remotas
Por padrão, o servidor RPC não aceita conexões remotas e escuta em localhost. Para controlar o FreeCAD de outra máquina na sua rede:
1. Habilitar conexões remotas no FreeCAD
Na barra de ferramentas FreeCAD MCP:
-
Marque Remote Connections — o servidor RPC será vinculado a
0.0.0.0(todas as interfaces) no próximo reinício. Por razões de segurança, ele só aceita conexões dos endereços IP ou sub-redes CIDR especificados no campo Allowed IPs. Por padrão, isso é127.0.0.1. -
Clique em Configure Allowed IPs e insira uma lista separada por vírgulas de endereços IP ou sub-redes CIDR que podem se conectar, por exemplo:
192.168.1.100, 10.0.0.0/24127.0.0.1é sempre o padrão. Entradas inválidas são rejeitadas com uma caixa de diálogo de erro. Reinicie o servidor RPC após alterar essas configurações.
2. Aponte o servidor MCP para o host remoto
Passe a flag --host com o endereço IP ou nome do host da máquina que executa o FreeCAD:
{
"mcpServers": {
"freecad": {
"command": "uvx",
"args": [
"freecad-mcp",
"--host", "192.168.1.100"
]
}
}
}
O valor --host é validado na inicialização — deve ser um endereço IPv4/IPv6 válido ou nome de host.
Ferramentas
create_document: Criar um novo documento no FreeCAD.create_object: Criar um novo objeto no FreeCAD.edit_object: Editar um objeto no FreeCAD.delete_object: Excluir um objeto no FreeCAD.execute_code: Executar código Python arbitrário no FreeCAD.insert_part_from_library: Inserir uma peça da biblioteca de peças.get_view: Obter uma captura de tela da vista ativa.get_objects: Obter todos os objetos em um documento.get_object: Obter um objeto em um documento.get_parts_list: Obter a lista de peças na biblioteca de peças.run_fem_analysis: Executar o solver CalculiX em umFem::FemAnalysisexistente e retornar resultados resumidos (tensão máxima de von Mises, deslocamento máximo, contagem de nós, diretório de trabalho). Cria automaticamente umSolverCcxToolsse a análise não tiver nenhum. Vejaexamples/cantilever_fem.pypara um exemplo de uso completo.
Ferramentas que retornam uma captura de tela (create_object, edit_object, delete_object, execute_code, insert_part_from_library, get_objects, get_object, run_fem_analysis) aceitam parâmetros opcionais include_screenshot (padrão true) e view_name (padrão "Isometric") para suprimir ou reorientar a imagem retornada por chamada.
Contribuidores
Feito com contrib.rocks.
