Gemma4のローカルな環境でMCPサーバーを使ったHoudiniの操作(をしようとしてあんまりパフォーマンスが出ず…)
結論から言えばパフォーマンスは出ませんでした。

お断り
当記事で実行した手順では良いレスポンスは得られませんでした。
ローカルLLMはネット上のリファレンスにアクセスできないので、参照情報を追加せずにこういった専門的な作業を行わせるのには向いていなそうです。
利用ツール・ライブラリ・プラグイン
今回の構成では以下を利用している
- ollama
https://ollama.com/ - gemma4 e4b (僕の自宅環境がミドルスペックのPCなので計量モデルを選択)
- oculairmedia houdini mcp
https://github.com/oculairmedia/houdini-mcp - vscode
https://code.visualstudio.com/ - Cline (VS Codeプラグイン)
余談:oculairmedia houdini mcpの不具合により接続失敗を繰り返した
この記事の「HoudiniMCPに接続する」項目ですが、もともと前回の記事「AntigravityでMCP」を行う前に検証してみていました。
が、何度も接続失敗し動作までつなげることができず…

「一旦Antigravityで繋げてみるか」、と試したところMCP側で不足していた部分を補ってあっさり繋げてくれました。

ので、本記事で利用しているHoudini MCPはgitから落としたままではなく上記の部分にコード修正済みでテストしています。
Ollamaのセットアップ
OllamaはフリーのローカルLLMを管理しやすくするハブのような機能のアプリケーション。
Ollamaを起動後、必要であればモデルのインストール先をSettings/Model Locationで変更。

モデルの切り替えから利用したいモデルのインストールができるので、今回はGemma4のe4bを取得する。

VS Code(Cline)のセットアップ①:LLMモデルのセットアップ
VSCodeのClineプラグインをインストールし、Modelの紐づけを行う。
ClineはLLMを持たず、別途LLMを指定して開発エージェントとして利用することができるVSCodeの拡張。
今回はClineのモデルにローカルLLM、Gemma4を指定してMCPを使ってHoudiniを操作する。

Clineの利用するモデルをOllama経由のローカルのLLMに設定する。 設定画面のAPI Configuration項目でAPI ProviderをOllamaに変更する。
変更するとModelがインストール済みであればModelからGemma4が選択できる。
(初回設定の画面の場合「Bring my own API key」を選択すると設定する画面に移動できる)

何かを聞いて答えが返ってくれば動作できている。
この状態でディレクトリ以下のテキストを読み込んだりといったローカルなエージェントとして利用できる。
(スペックの差だと思うが速度はオンラインで利用するクラウドのエージェントよりだいぶ遅い)

Houdiniのセットアップ
Antigravityで接続した時同様にHoudini側では以下のスクリプトを実行してMCPサーバーからの接続待機状態にする
import hrpyc
hrpyc.start_server(port=18811)
VS Code(Cline)のセットアップ②:MCPサーバーのセットアップ
MCPサーバーの初期設定と接続設定を行う
gitから落としたデータは「requirements.txt」が含まれているので関連モジュールをpipで取得する。
作業用のPython環境からhoudini-mcpのディレクトリに移動し、以下を実行すると関連モジュールをpipが取得してくれる。
cd [保存先]\\houdini-mcp
pip install -r requirements.txtMCP Server設定を開き、前回Antigravityで接続できたMCP Server設定と同様の内容を追記する。
cwdはローカルにクローンしたgitのパス。

"Houdini MCP": {
"command": "python",
"args": ["-m", "houdini_mcp"],
"cwd": "D:/work/AgentDev/HoudiniMCP/houdini-mcp",
"env": {
"HOUDINI_PORT": "18811",
"MCP_TRANSPORT": "stdio"
}
}テスト実行
以上で設定ができたので操作できるかをテストした。
Nullノード作成(成功)
HoudiniMCPの機能を使ってHoudiniと通信し、動作テストとしてNullノードを作成してください

ちゃんとNullノードを作ってくれた。
どうやら無事にローカルLLMから命令を実行できる状態になっている模様。
花形カーブ作成(失敗)
次にジオメトリ階層に移動し、花形のカーブを作成してください
が、Antigravityで成功した、「カーブを作成する命令」は失敗してしまった。

Pythonノード作成(失敗)
Pythonノードを作成して動くコードを掛けるかも試してみる。
先ほど作成したジオメトリ階層にPythonノードを作成しPythonノードを作成し、「print("hello mcp")」というコードを設定してください


これも失敗Nullノードだけ増えていく
所感
残念。
そもそもAgent特化でない軽量版のGemma4をエージェント活用するのが微妙という問題かも…
文中でも書いたが「パッケージ側のエラーで動作しない問題」があった場合にAntiGravityだとパッケージ側の不備を指摘してすぐに動作させてくれたがGemmaは何度も接続失敗、と見当違いな処理を繰り返していた。
どうしてもローカルLLMを使いたければBraveSerchMCPみたいな検索情報の参照やローカルに情報を持たせるなどしてAI精度の調整は必要そう。
試すまで「賢いAIならなんでも簡単に解決してくれる」と思っていたのですが、適材適所はありますね…。
ローカルLLMは用途に合わせたカスタマイズ前提だなと実感できました。
一方で「カスタマイズで動作方針を完全コントロールできるLLM」というのは確かに色々な開発用途に使えそうでGemma4の盛り上がりも理解できます。
とはいえ、自分の用途的にはしばらくクラウドLLMですね。
今度ClaudeでのHoudini操作も試してみます。

fish_ball
プロシージャル魚類