Claude Codeから自然言語でFreeCADを操作!MCP サーバーのセットアップ方法

AIで3Dモデリングができる時代へ

「3Dモデルを作りたいけど、FreeCADの操作が難しくて…」そんな悩みを持つ方に朗報です。FreeCAD MCP(Model Context Protocol)サーバーを使えば、AIアシスタントのClaude Codeに話しかけるだけで3Dモデルを作成・編集できるようになります。

MCPとは何か?

MCPとは、AIアシスタントが外部ツールを操作するための標準的な仕組みです。今回はこのMCPを使って、Claude CodeとFreeCADを橋渡しするサーバーを立ち上げます。

必要なものを準備しよう

  • FreeCAD(インストール済み)
  • Python 3.12以上
  • uvパッケージマネージャー
  • Claude Code CLI

セットアップの流れ

① リポジトリのクローンと環境構築

まずGitHubからfreecad-mcpをクローンし、uv sync --system-certsで仮想環境を作成します。企業プロキシ環境ではSSLエラーが出ることがありますが、--system-certsオプションやgit -c http.sslVerify=falseで対処できます。

② FreeCADにアドオンをインストール

リポジトリ内のaddon/FreeCADMCPフォルダを、FreeCADのModディレクトリへコピーします。Windowsなら%APPDATA%\FreeCAD\Mod\、Linuxなら~/.FreeCAD/Mod/が対象です。

③ Claude CodeにMCPサーバーを登録

以下のコマンドでMCPサーバーを登録します。

claude mcp add -s user freecad /path/to/freecad-mcp/.venv/Scripts/freecad-mcp.exe

ポイントは-s userを必ず付けること。省略するとそのプロジェクトでしか使えなくなります。

④ FreeCADでRPCサーバーを起動

FreeCADを起動し、ワークベンチ一覧から「MCP Addon」を選択。ツールバーの「Start RPC Server」をクリックすると、ポート9875で待機状態になります。

実際に使ってみよう

設定が完了したら、Claude Codeのチャットに話しかけるだけです。

「10mm×10mm×10mmのボックスを作って」

と入力すれば、Claudeが自動的にFreeCADのツールを呼び出して3Dモデルを生成してくれます。もちろん、コードで直接ツールを呼び出すことも可能です。

使えるツール一覧

  • create_document:新規ドキュメント作成
  • create_object:オブジェクト追加
  • edit_object:オブジェクト編集
  • execute_code:Pythonコード実行
  • get_view:スクリーンショット取得
  • run_fem_analysis:FEM(有限要素法)解析実行

まとめ

FreeCAD MCPを使えば、3Dモデリングの専門知識がなくても自然言語で形状を作れます。さらにFEM解析までClaudeから実行できるため、設計作業の自動化にも大きく貢献します。AIと3DCADの組み合わせは、ものづくりの新しい可能性を切り開く技術です。ぜひ試してみてください。

UnityでMCPツールが「ファイル名が長すぎます」エラーになった時の解決策

Unity のMCP(モデルコンテキストプロトコル)ツールを使ってC#コードを実行する際に、こんなエラーが出ることがあります。

Error running mono.exe: ファイル名または拡張子が長すぎます。

なぜこのエラーが起きるのか

UnityのMCPツールは、通常「CodeDom」という仕組みでC#をコンパイルします。このCodeDomは、コードをコンパイルする際にWindows上でmono.exeというプログラムを起動しますが、その時に使用するアセンブリ(DLL)のパス情報をコマンドラインで渡します。

Unityプロジェクトが多くのパッケージを使っていると、これらのパス情報が合計で長くなりすぎて、Windows が許可している文字数の制限(260文字)を超えてしまい、エラーになるのです。

解決策:Roslyn を使う

CodeDom の代わりに「Roslyn」(マイクロソフトの公式なC#コンパイラ)をメモリ内で直接動かすことで、この問題を回避できます。幸いなことに、Unityには既にRoslynが組み込まれているので、それを有効化するだけです。

実装方法

以下のコードを Assets/Editor/RoslynLoader.cs として保存してください。

[InitializeOnLoad]
static class RoslynLoader
{
    static RoslynLoader()
    {
        var editorData = Path.GetDirectoryName(UnityEditor.EditorApplication.applicationPath);
        var roslynDir = Path.Combine(editorData, "Data", "MonoBleedingEdge", "lib",
                                     "mono", "msbuild", "Current", "bin", "Roslyn");

        var dlls = new[]
        {
            "System.Collections.Immutable.dll",
            "Microsoft.CodeAnalysis.dll",
            "Microsoft.CodeAnalysis.CSharp.dll",
        };

        foreach (var dll in dlls)
            if (File.Exists(Path.Combine(roslynDir, dll)))
                Assembly.LoadFrom(Path.Combine(roslynDir, dll));
    }
}

このコードはUnityの起動時に自動実行され、RoslynのDLLファイルをメモリにロードします。[InitializeOnLoad]属性により、Unityが起動するたびに自動的に実行されます。

確認方法

実装後、MCPツールで以下のコードを実行してみてください。

return System.Type.GetType(
    "Microsoft.CodeAnalysis.CSharp.CSharpSyntaxTree, Microsoft.CodeAnalysis.CSharp"
) != null ? "Roslyn有効" : "未ロード";

「Roslyn有効」と表示されれば成功です。これで長いファイルパスの問題が解消され、エラーなくコードが実行できるようになります。

GnuCashで日本株の株価を自動取得する(PostgreSQL&Perl連携)

GnuCashで日本株の株価を自動取得する(PostgreSQL&Perl連携)

GnuCashの株価取得問題とは

日本の株価の取得は長らく
http://liosk.blog103.fc2.com/blog-entry-185.html
https://github.com/LiosK/Finance–Quote–YahooJapan
にお世話になってきました。GUI,CLIとも取得できていたのですが、 gnucash-cli --quotes get ではあるバージョンから取得できなくなりました。これは GnuCash が内部で「yahoo_japan」というデータ源を認識していないためです。

なぜこんなことが起きる?

GnuCash の GUI版では初期化順序が異なるため動作しますが、CLI版では未知のデータ源をスキップしてしまいます。つまり、CLI でyahoo_japanを使用するには、別のルートでデータを集める必要があるということです。

解決策:Finance::Quote で直接 DB に書き込む

GnuCash-CLI を使わず、Perl の Finance::Quote モジュールを使って、PostgreSQL データベースに直接株価を書き込みます。この方法なら yahoo_japan をCLIからも使えて問題を回避でき、Windows・Ubuntu の両環境で動作します。

GnuCash株価取得スクリプト実行画面

セットアップ手順

【Windows の場合】

  • Strawberry Perl をインストール
  • スクリプト内の DB接続先(PostgreSQL IP)を確認
  • 環境変数 ALPHAVANTAGE_API_KEY、FQ_CURRENCY を設定
  • Perl スクリプトを実行

【Ubuntu の場合】

注意点

  • 日本株シンボル:「7203.T」ではなく「7203」(4桁)で指定
  • Alpha Vantage の制限:無料枠は 1日 25リクエストまで
  • GnuCash の DB ロック:GUI版を起動しながらでは動作しません。スクリプト実行時は GUI を閉じてください

まとめ

GnuCash と PostgreSQL、Perl を組み合わせることで、日本株を含むあらゆる資産の株価を自動取得・更新できます。一度セットアップすれば、cron等で毎日自動で最新の価格情報が DB に反映されるため、管理がより正確になります。Windows・Linux 両対応なので、どのような環境でも導入可能です。

WordPressと同じサーバー上のメールサーバーを繋ぐ

最も一般的で簡単な解決策は、SSL証明書の検証を無効にすることです。以下の手順でWP Mail SMTPプラグインの設定を修正します。

方法1: functions.php でSMTPOptionsを無効化する (推奨)

  1. WordPressのテーマフォルダにある functions.php ファイルを編集します。
  2. 以下のコードをファイルの最後に追加します。

php

// WP Mail SMTPの証明書エラー回避設定
function my_phpmailer_smtp_options( $phpmailer ) {
    $phpmailer->SMTPOptions = array(
        'ssl' => array(
            'verify_peer'       => false,
            'verify_peer_name'  => false,
            'allow_self_signed' => true
        ),
    );
}
add_action( 'phpmailer_init', 'my_phpmailer_smtp_options' );

3.Appachリスタート