Skip to main content
Glama
bonninr
by bonninr

FreeCAD MCP (モデル制御プロトコル)

概要

FreeCAD MCP(モデル制御プロトコル)は、サーバークライアントアーキテクチャを通じてFreeCADと対話するための簡素化されたインターフェースを提供します。これにより、ユーザーはコマンドを実行したり、現在のFreeCADドキュメントやシーンに関する情報を取得したりできます。

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

Related MCP server: mcp-freecad

構成

MCPサーバーを設定するには、JSON形式を使用してサーバー設定を指定します。以下に設定例を示します。

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

構成の詳細

  • command : FreeCAD MCPサーバーを実行するPython実行ファイルへのパス。これはオペレーティングシステムによって異なります。

    • Windows : 通常は、 C:\\ProgramData\\anaconda3\\python.exeまたはC:\\Python39\\python.exeのようになります。

    • Linux : /usr/bin/python3または Python インストールへのパスになります。

    • macOS : 通常は、 /usr/local/bin/python3または Python インストールへのパスになります。

  • args : Pythonコマンドに渡す引数の配列。最初の引数は、MCPサーバーロジックを処理するfreecad_bridge.pyスクリプトへのパスです。インストール環境に合わせてパスを調整してください。

異なるオペレーティングシステムの例

ウィンドウズ

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

リナックス

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

特徴

FreeCAD MCP は現在、次の機能をサポートしています。

1. get_scene_info

  • 説明: 現在の FreeCAD ドキュメントに関する包括的な情報を取得します。これには以下が含まれます:

    • ドキュメントのプロパティ(名前、ラベル、ファイル名、オブジェクト数)

    • オブジェクトの詳細情報(タイプ、位置、回転、形状のプロパティ)

    • スケッチデータ(ジオメトリ、拘束)

    • ビュー情報(カメラの位置、方向など)

2. run_script

  • 説明: FreeCAD コンテキスト内で任意の Python コードを実行します。これにより、ユーザーは複雑な操作を実行したり、新しいオブジェクトを作成したり、既存のオブジェクトを変更したり、FreeCAD の Python API を使用してタスクを自動化したりできます。

使用例

FreeCAD MCP を使用するには、次のようにサーバーに接続してコマンドを送信します。

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

インストール

  1. リポジトリをクローンするか、ファイルをダウンロードします。

  2. freecad_mcpディレクトリを FreeCAD モジュール ディレクトリに配置します。

    • Windows: %APPDATA%/FreeCAD/Mod/

    • Linux: ~/.FreeCAD/Mod/

    • macOS: ~/Library/Preferences/FreeCAD/Mod/

  3. FreeCAD を再起動し、ワークベンチ セレクターから「FreeCAD MCP」ワークベンチを選択します。

貢献

ぜひ、問題提起やプルリクエストを送信して、貢献してください。皆様からのフィードバックと貢献をお待ちしております!

ライセンス

このプロジェクトはMITライセンスの下でライセンスされています。詳細はLICENSEファイルをご覧ください。

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    This project provides a robust integration between AI assistants and FreeCAD CAD software using the Model Context Protocol (MCP). It allows external applications to interact with FreeCAD through a standardized interface, offering multiple connection methods and specialized tools.
    27
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables automation of FreeCAD model creation, macro execution, and view management through a server-client architecture, supporting integration with external AI tools like Claude and Cursor.
    102
    MIT