現在お買い物カゴには何も入っていません。
カテゴリー: AI agent
-
Gemini-JSCAD-Tool: GeminiとチャットしながらCAD開発する新しい体験
概要
gemini-jscad-tool は、Gemini CLI の拡張として開発されたツールで、JSCADを用いた3Dモデル生成を対話的に実現します。Geminiとチャットしながら、3Dモデルを作成し、リアルタイムにプレビュー&STLファイルに変換できます。
特徴
- 🔄 Geminiと自然言語でやり取りしながら設計できる
- 🧊 JSCADモデルを作成し、STLへ変換
- 🌐 ローカルのライブプレビューサーバーで即座にSTLの形状を確認可能
- ⚙️ Gemini向け拡張機能の実装例としても活用可能
インストール方法
npm install -g gemini-jscad-tool
インストール後、自動的に以下が行われます:
gemini-jscad-server
コマンドがグローバルに配置されるgemini-extension.json
とGEMINI.md
が~/.gemini/extensions/jscad/
にコピーされる
使用方法
以下のように、Geminiとの会話ベースで操作を進めます。
1. プレビューサーバーを起動
あなた: Start the preview server.
→
http://localhost:3000
にアクセスしてプレビュー。2. モデルを作成
あなた: Create a 20mm cube.
Geminiが自動的に
.jscad
ファイルを生成しSTLに変換後、プレビューサーバーに反映。3. サーバーを停止
あなた: Stop the preview server.
不要なプロセスの残留を防ぎます。
STL変換について
生成されたJSCADモデルは、ツール内部の処理を通じて STL形式に変換され、3Dプリント等にそのまま利用可能です。
Gemini CLI拡張機能の開発に関して
当パッケージは、Gemini CLI Extension 開発ガイドに則って作成されています。
gemini-extension.json の基本構造とMCPサーバー登録
拡張子
.json
のこのファイルは、拡張(extension)ごとに最低1つ必要です。
MCPサーバーの設定例は以下のようになります。
因みにgemini-jscad-toolにはMCPサーバーは使用していません。後述のGEMINI.md
で呼び出しを定義しています。マニュアルからの引用:
{ "name": "my-extension", "version": "1.0.0", "mcpServers": { "my-server": { "command": "node my-server.js" } }, "contextFileName": "GEMINI.md", "excludeTools": ["run_shell_command"] }
各項目の説明
項目 必須 内容・役割 name ◯ 拡張ディレクトリ名と同じにします。拡張の一意名識別子です。 version ◯ 拡張のバージョン。任意の文字列(例 "1.0.0"
)。省略不可。mcpServers △ この拡張が使うMCPサーバーの "名前: 設定" マップ。各サーバーは必ず command
プロパティが必要です。contextFileName ✕ 拡張についてAIへ与える文書ファイル名(通常はGEMINI.md)。省略可能。 excludeTools ✕ Geminiに読み込ませたくないツール名列挙。(例 ["run_shell_command"]
/["run_shell_command(rm -rf)"]
)省略可能。mcpServers の詳細
MCP(Model Context Protocol) に準拠したサーバーの登録ができます。
これにより、Geminiはサーバーを正しく起動・停止し、会話の中で状態管理することができます。mcpServers はオブジェクト形式で記述し、
「サーバー識別名: 設定」 の形式でサーバーを複数登録できます。最小構成例:
"mcpServers": { "my-server": { "command": "node my-server.js" } }
my-server
:好きな識別名(ユニーク推奨)。command
:起動方法。実行ファイルやNodeスクリプト等を記述。
コマンドにオプションや環境変数を指定したい場合
因みに、
settings.json
にもMCPサーバーを登録できます。
非推奨パッケージになった @modelcontextprotocol/server-github
の 設定例が書かれた記事も参照してください。マニュアルからの引用:
"mcpServers": { "myPythonServer": { "command": "python", "args": ["mcp_server.py", "--port", "8080"], "cwd": "./mcp_tools/python", "timeout": 5000 }, "myNodeServer": { "command": "node", "args": ["mcp_server.js"], "cwd": "./mcp_tools/node" }, "myDockerServer": { "command": "docker", "args": ["run", "-i", "--rm", "-e", "API_KEY", "ghcr.io/foo/bar"], "env": { "API_KEY": "$MY_API_TOKEN" } } }
args
→ コマンドライン引数env
→ サーバープロセスの環境変数cwd
→ サーバを起動する作業ディレクトリtimeout
→ このMCPサーバーへのリクエストのタイムアウトをミリ秒単位で行います
contextFileName について
gemini-extension.json
の説明に戻ります。
この拡張のガイドやAI連携ガイダンスを含むMarkdownファイル名です。
省略時は拡張ディレクトリ内のGEMINI.md
が自動検出されます。excludeTools について
Gemini CLIが利用可能なツールで、本拡張では“除外”したいものを配列で指定します。
例:
- すべてのシェルコマンド実行を除外
"excludeTools": ["run_shell_command"]
- 特定の危険コマンドのみ除外
"excludeTools": ["run_shell_command(rm -rf)"]
設定の優先順位と適用範囲
- 個人設定(
~/.gemini/extensions/
)よりワークスペース直下(/.gemini/extensions/
)の拡張が優先されます。 - MCPサーバー設定は
settings.json
の内容が同名の場合はそちらが上書きします。
よくある誤り
- mcpServersは必ずマッピング形式(オブジェクト)で書く。[マニュアル例と食い違う原因の多く]
- サーバーごとに必ず
command
プロパティが必要
GEMINI.md の役割
GEMINI.md
には、Geminiが拡張機能と対話する際のワークフローやコマンド定義がMarkdown形式で記述されています。例として下記のように構成します:# jscad Extension ## Commands ### Start Server User: Start the preview server. Gemini runs: gemini-jscad-server ### Create Model User: Create a 20mm cube. Gemini writes: cube({size: 20}) ### Stop Server User: Stop the preview server. Gemini stops: jscad_preview
これにより、Geminiは自動的に動作フローを把握し、ユーザーの自然言語要求をコード生成やファイル操作にマッピングします。
コード・リソース
おわりに
gemini-jscad-tool は、AIとの自然な対話で3D設計と即時プレビューの連携を実現した次世代のCLI拡張です。Gemini CLI拡張の実践例としても最適なので、カスタム開発の参考にもご活用ください。
3D設計をもっと気軽に、もっと賢く―
Geminiと一緒なら、それが可能です。