FreeCAD MCP Server について
FreeCAD MCP Serverは、AIアシスタントからFreeCADを操作し、3DモデリングやCAD作業を行うためのサーバーです。基本形状の作成、ブーリアン演算、ドキュメント管理、FreeCAD環境でのPythonスクリプト実行に対応します。
主な機能
- 01基本形状の作成
- 02ブーリアン演算
- 03ドキュメント保存とオブジェクト一覧
- 04カスタムPythonスクリプトの実行
活用シーン
- 01ボックス、円柱、球体の作成
- 02モデルオブジェクトの結合や切り取り
- 03モデルの保存とオブジェクト確認
- 04FreeCADでのモデリング処理の自動化
MCP 対応
MCPサーバーとして、形状作成、ブーリアン演算、ドキュメント操作、スクリプト実行などのFreeCADツールを対応するAIクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
FreeCAD MCP サーバー
AI アシスタントが FreeCAD と連携して、3D モデリングや CAD 操作を行えるようにする Model Context Protocol(MCP)サーバーです。
機能
- 基本的なジオメトリの作成:指定した寸法でボックス、円柱、球を作成します
- ブーリアン演算:オブジェクト間で結合、切り取り、共通部分の演算を実行します
- ドキュメント管理:ドキュメントを保存し、オブジェクトを一覧表示します
- カスタムスクリプトの実行:FreeCAD のコンテキストで任意の Python スクリプトを実行します
- クロスプラットフォーム:Windows、macOS、Linux に対応しています
前提条件
- FreeCAD のインストール:freecad.org から FreeCAD をインストールします
- Node.js:バージョン 18 以降
- TypeScript:開発に使用します
インストール
- このリポジトリをクローンします:
git clone https://github.com/lucygoodchild/freecad-mcp-server.git
cd freecad-mcp-server
- 依存関係をインストールします:
npm install
- プロジェクトをビルドします:
npm run build
- 必要に応じて FreeCAD のパスを設定します:
- サーバーは FreeCAD のインストール先を自動検出します
- デフォルトのパス:
- Windows:
C:\Program Files\FreeCAD 0.21\bin\FreeCAD.exe - macOS:
/Applications/FreeCAD.app/Contents/MacOS/FreeCAD - Linux:
/usr/bin/freecad
- Windows:
使い方
サーバーの実行
npm start
Claude Desktop
MCP クライアントの設定(~/Library/Application Support/Claude/claude_desktop_config.json)に以下を追加します: { "mcpServers": { "freecad-mcp-server": { "command": "node", "args": ["/path/to/free-cad-mcp/build/index.js"] } } } "/path/to/free-cad-mcp/build/index.js" を実際のパスに置き換え、変更後に Claude を再起動してください。
利用可能なツール
create_box
指定した寸法の直方体を作成します。
{
"name": "create_box",
"arguments": {
"length": 50,
"width": 30,
"height": 20,
"name": "MyBox"
}
}
create_cylinder
指定した半径と高さの円柱を作成します。
{
"name": "create_cylinder",
"arguments": {
"radius": 10,
"height": 50,
"name": "MyCylinder"
}
}
create_sphere
指定した半径の球を作成します。
{
"name": "create_sphere",
"arguments": {
"radius": 15,
"name": "MySphere"
}
}
boolean_operation
2 つのオブジェクト間でブーリアン演算を実行します。
{
"name": "boolean_operation",
"arguments": {
"operation": "union",
"object1": "Box",
"object2": "Cylinder",
"result_name": "Combined"
}
}
演算:union、cut、common
save_document
現在の FreeCAD ドキュメントを保存します。
{
"name": "save_document",
"arguments": {
"filename": "my_model.FCStd",
"path": "/path/to/save"
}
}
list_objects
現在のドキュメント内のすべてのオブジェクトを一覧表示します。
{
"name": "list_objects",
"arguments": {}
}
execute_python_script
FreeCAD のコンテキストでカスタム Python スクリプトを実行します。
{
"name": "execute_python_script",
"arguments": {
"script": "box = doc.addObject('Part::Box', 'CustomBox')\nbox.Length = 100"
}
}
AI アシスタントとの連携
このサーバーは Model Context Protocol を実装しているため、MCP 対応の AI アシスタントと互換性があります。AI は次のことができます:
- 3D モデルの生成:基本形状を組み合わせて複雑なジオメトリを作成します
- パラメトリック設計:要件に応じて寸法やパラメーターを変更します
- アセンブリの作成:ブーリアン演算を使用して複数部品のアセンブリを構築します
- 設計の自動化:スクリプトを通じて複雑なモデリングワークフローを実行します
AI とのやり取りの例
- 「内径 20mm、外径 40mm のベアリングハウジングを作成して」
- 「長さ 50mm、M6 ねじのボルトを作って」
- 「間隔 30mm で 10mm のロッド 2 本を支えるシンプルなブラケットを設計して」
開発
プロジェクト構成
src/
index.ts # Main server implementation
build/ # Compiled JavaScript output
package.json # Dependencies and scripts
tsconfig.json # TypeScript configuration
ビルド
npm run build
開発モード
npm run dev
トラブルシューティング
FreeCAD が見つからない
- FreeCAD がインストールされており、コマンドラインからアクセスできることを確認してください
- 必要に応じて、サーバーのコンストラクター内の
freecadPathを更新してください - FreeCAD の実行ファイルに適切な権限が設定されていることを確認してください
スクリプトの実行エラー
- FreeCAD の Python 環境に必要なモジュールがあることを確認してください
- スクリプトの構文を確認してください。Python スクリプトは FreeCAD の Python インタープリターで実行されます
- ブーリアン演算の前に
list_objectsを使用してオブジェクト名を確認してください
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。