TF

theosib/freecad-mcp-server

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

37 stars 5 forks Качество 58 Тренд 12

MCP-сервер, который позволяет Claude Code напрямую общаться с FreeCAD для проверки и изменения состояния

Обзор

Сервер MCP (Model Context Protocol), который соединяет Клода с живым экземпляром FreeCAD. Это дает Клоду глубокий доступ к состоянию времени выполнения FreeCAD - структуре документов, свойствам объектов, топологии формы, здоровью с ограничениями эскиза и т. Д. - что позволяет работать с ИИ и отлаживать разработку FreeCAD. В отличие от простых MCP-серверов, этот проект позволяет Клоду понять, что происходит внутри FreeCAD: 1. (freecad addon/) — работает внутри FreeCAD в качестве рабочего стола. Запускает потоковый TCP-сервер, который принимает запросы JSON-RPC и выполняет их в основном потоке FreeCAD через рабочую очередь, заполненную QTimer. 2. (src/freecad mcp agent/) — порожденный Клодом через stdio. Подключается к аддону через TCP и переводит вызовы инструментов MCP в запросы JSON-RPC. FreeCAD не отслеживает ссылки на macOS, поэтому мы используем тонкий файл загрузки. - macOS: ~/Library/Application Support/FreeCAD/Mod/ (или ~/Library/Application Support/FreeCAD/v1-2/Mod/ для еженедельных сборок) - Linux: ~/.

Обзор (машинный перевод)

Сервер MCP (Model Context Protocol), который соединяет Клода с живым экземпляром FreeCAD. Это дает Клоду глубокий доступ к состоянию времени выполнения FreeCAD - структуре документов, свойствам объектов, топологии формы, здоровью с ограничениями эскиза и т. Д. - что позволяет работать с ИИ и отлаживать разработку FreeCAD.

Что это делает

В отличие от простых MCP-серверов, этот проект обеспечивает извлечение контекста, что позволяет Клоду понять, что происходит внутри FreeCAD:

Оригинальное название: What It Returns [скрыто] [скрыто] Все открытые документы с именами, путями файлов, количеством объектов | get_document_graph | Дерево полнофункциональных признаков — каждый объект с TypeId, свойствами, связями зависимостей, состоянием валидности | | inspect_object | Полный сброс свойств для одного объекта с метаданными формы | | analyze_shape | Топологический анализ — классификации лиц (Plane/Cylinder/Cone/…), граничные детали, ограничивающий ящик, объем | | get_sketch_diagnostics | Ограниченное здоровье — ДОФ, конфликты, увольнения, каждый элемент ограничения и геометрии с координатами | tracked_recompute | Рекомпьютинг с диффом до/после — новые ошибки, исправленные ошибки, постоянные ошибки |

Эта страница переведена автоматически. Технические детали смотрите в оригинале.

README

Показан фрагмент оригинального README. Открыть оригинал.

FreeCAD MCP Server

An MCP (Model Context Protocol) server that bridges Claude with a live FreeCAD instance. It gives Claude deep access to FreeCAD’s runtime state — document structure, object properties, shape topology, sketch constraint health, and more — enabling AI-assisted CAD work and FreeCAD development debugging.

What It Does

Unlike simple script-execution MCP servers, this project provides rich context extraction that lets Claude genuinely understand what’s happening inside FreeCAD:

Tool What It Returns
list_documents All open documents with names, file paths, object counts
get_document_graph Full feature tree — every object with TypeId, properties, dependency links, validity state
inspect_object Complete property dump for a single object, with shape metadata
analyze_shape Topological analysis — face classifications (Plane/Cylinder/Cone/…), edge details, bounding box, volume
get_sketch_diagnostics Constraint health — DOF, conflicts, redundancies, every constraint and geometry element with coordinates
tracked_recompute Recompute with before/after diff — new errors, resolved errors, persistent errors
execute_script Run arbitrary Python inside FreeCAD (escape hatch for anything not covered above)
get_screenshot Capture the 3D viewport as a base64 PNG
reload_handlers Hot-reload handler code without restarting FreeCAD

Architecture

Claude (Code/Desktop)  ←stdio MCP→  Bridge Server  ←TCP:9876→  FreeCAD Addon
                                     (this project)              (inside FreeCAD)

The project has two components:

  1. FreeCAD addon (freecad_addon/) — runs inside FreeCAD as a workbench. Starts a threaded TCP server that accepts JSON-RPC requests and executes them on FreeCAD’s main thread via a QTimer-polled work queue.

  2. MCP bridge server (src/freecad_mcp_agent/) — spawned by Claude via stdio. Connects to the addon over TCP and translates MCP tool calls into JSON-RPC requests.

Installation

1. Install the MCP bridge

# Clone the repo
git clone https://github.com/theosib/FreeCAD-MCP-Server.git
cd FreeCAD-MCP-Server

# Create a venv and install
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

2. Install the FreeCAD addon

FreeCAD doesn’t reliably follow symlinks on macOS, so we use a thin loader file.

Find your FreeCAD Mod directory:

  • macOS: ~/Library/Application Support/FreeCAD/Mod/ (or ~/Library/Application Support/FreeCAD/v1-2/Mod/ for weekly builds)
  • Linux: ~/.local/share/FreeCAD/Mod/
  • Windows: %APPDATA%/FreeCAD/Mod/

Tip: Run FreeCAD.getUserAppDataDir() in FreeCAD’s Python console to find the exact path.

Create the loader:

mkdir -p "/FreeCADMCPAgent"

Create /FreeCADMCPAgent/InitGui.py with:

import sys
Открыть полный README на GitHub

Установка

This server does not publish a one-line install command.

Open the repository installation guide Новичок в MCP? Начните с руководства на mcpskill.org →

Конфигурация

{ "mcpServers": { "freecad-debug": { "command": "/absolute/path/to/FreeCAD-MCP-Server/.venv/bin/freecad-mcp-agent", "env": { "FREECAD_MCP_HOST": "127.0.0.1", "FREECAD_MCP_PORT": "9876" } } } }