月: 2026年9月

Claude CodeでSketchUpを動かす(MCP連携)

CLAUDE CODE / SKETCHUP 2026 / MCP

AI に SketchUp を操作させる

Claude Code と MCP サーバーで、10m の立方体からコルビュジエのドミノまで

AI に「10m の立方体を入れて」と頼むと、いま画面に開いている SketchUp のモデルに立方体が現れる——そんな環境を作ってみました。使ったのは Claude Code と、AI が外のソフトを操作するための約束事 MCP(Model Context Protocol)です。接続方式の検討から、コルビュジエの「ドミノ」を作図するところまでを記録します。

これまで Claude Code には AutoCAD を動かしてボリューム出しをさせてきましたが、今回の相手は 3D の SketchUp です。結論から言うと、設定は半日で済み、作図そのものは会話だけで進みました。設定の中で人の手が要ったのは 2 か所だけです。

POINT 01

会話で作図する

寸法を言葉で伝えるだけです。AI が SketchUp の中に図形を作り、できた図形の寸法を読み返して自分で確かめます。

POINT 02

開いているモデルに、そのまま

ファイルの書き出しも取り込みもありません。いま画面に出ているモデルへ直接追加されるので、その場で見て、その場で直せます。

POINT 03

図版から寸法を読み取る

解説ページの平面図(画像)を AI が読み、柱の位置や階段の段数を数値にしてから作図しました。文章に無い寸法も、図から拾えます。

今回試した内容

  • 目的:Claude Code から、デスクトップ版の SketchUp Pro を直接操作できるようにする
  • 課題 1:10m × 10m × 10m の立方体を入れる(接続の確認)
  • 課題 2:解説ページを読んで、コルビュジエのドミノ(1914 年の骨組みの提案)を再現する
  • 環境:Windows 11 / SketchUp Pro 2026 / Claude Code(VS Code 拡張)
  • 使用モデル:Sonnet 5(接続の設定と立方体)、Fable 5.1(ドミノの作図)※ 2026 年 9 月時点

AI と SketchUp のあいだに立つ「MCP」

まず、Claude Code は SketchUp の画面を見ることも、直接触ることもできません。「SketchUp を立ち上げていますが、認識できますか」と聞いたら、「できません」という返事でした。AI から見える世界は、ファイルとコマンドラインまでです。

そこで登場するのが MCP です。MCP は、AI が外のソフトを「道具」として使うための共通の約束事で、道具の側が「こういう命令を受け付けます」と宣言しておくと、AI はその範囲でだけ操作できます。今回は次の 4 つが一列に並びます。

SketchUp の側には拡張機能(Ruby で書かれたプラグイン)を入れ、パソコンの内側(127.0.0.1 の 9876 番ポート)で命令を待たせます。Claude Code の側には MCP サーバーという小さなプログラム(Python 製)を登録し、AI の命令を拡張機能へ中継させます。下の図で、命令がどう届くかを切り替えて見てください。

命令はどう届くのかボタンで、AI が使った道具を切り替えられます
AI(Claude Code) 中継(MCP サーバー) SketchUp のプロセス モデル(図形) 命令と返事
使った道具

道具ごとの、送るものと返ってくるもの

道具の名前
送るもの
返ってくるもの
人の操作

ポイントは、AI が SketchUp のファイルを書き換えているのではないということです。命令は SketchUp の中で動いている拡張機能に届き、拡張機能が SketchUp 自身の機能(Ruby API)で図形を作ります。だから作った図形は普通のグループで、手で描いたものと同じように動かせますし、UNDO で戻せます。

道具の一覧は、AI が自分で読みます

MCP サーバーは「モデルの情報を読む」「直方体・円柱・球を作る」「Ruby のコードを実行する」「画面のスクリーンショットを撮る」といった道具を宣言していて、Claude Code は接続したときにその一覧を受け取ります。こちらが道具の使い方を教える必要はありません。今回使った道具は上の図の 4 つです。

導入の手順 ── 検討から接続の確認まで

最初に「SketchUp をつなぎたい。どうすればよいか検討して」と頼みました。Claude Code が Web を調べて出してきた候補は 3 つです。表の「星」は、プログラムの公開サイト GitHub で利用者が付ける「お気に入り」の数で、どれだけ使われているかの目安になります。

候補性格判断
Trimble 公式の SketchUp コネクタclaude.ai(Web 版)で使う。自然言語からクラウドでモデルを生成し、.skp をダウンロードするいま開いているデスクトップ版と直接つながらないので見送り
mhyrr/sketchup-mcpいちばん知られている(星 409)。説明書が macOS 前提Windows での情報が乏しく見送り
zinin/sketchup-mcp2星は少ない(20)が開発が活発。ホストやポートの設定が明記され、Windows も意識されている採用

採用したのは、いずれも個人が公開している非公式のツールです。ここは後で「気をつけること」に書きます。導入の流れは次のとおりで、Claude Code が自分でやったのが 1・2・4、私が手で行ったのが 3・5 です。

  1. Python の実行環境 uv を入れるClaude Code が公式のインストールスクリプトを実行。MCP サーバーは uvx sketchup-mcp2 と打つだけで取得と起動が済みます。
  2. SketchUp の拡張機能(.rbz)をダウンロードする公開ページの最新版(署名済み)を Claude Code が取得。ファイルの場所を教えてくれます。
  3. SketchUp に拡張機能を入れ、サーバーを起動する(手作業)「ウィンドウ」の「拡張機能マネージャー」から .rbz を入れて再起動。「拡張機能」メニューの「MCP Server」で「Start Server」を押します。ここは AI からは操作できません。
  4. Claude Code に MCP サーバーを登録する作業フォルダーに .mcp.json を作ります(下の内容)。Claude Code が書きました。
  5. Claude Code を再起動する(手作業).mcp.json は起動時に読まれます。再起動すると sketchup という名前の道具一式が見えるようになります。
  6. 接続を確かめるAI が「バージョン確認」と「モデル情報の取得」を実行。Python 側と Ruby 側の版が合っていること(compatible: true)と、単位が mm であることが返ってきました。
.mcp.json(作業フォルダー直下) { “mcpServers”: { “sketchup”: { “command”: “uvx”, “args”: [“–system-certs”, “sketchup-mcp2”], “env”: { “SKETCHUP_MCP_HOST”: “127.0.0.1”, “SKETCHUP_MCP_PORT”: “9876”, “SKETCHUP_MCP_TIMEOUT”: “60”, “SKETCHUP_MCP_LOG_LEVEL”: “INFO” } } } }
ここで一度つまずきました

uvx が MCP サーバーを取りに行くところで、証明書のエラー(invalid peer certificate)が出ました。セキュリティソフトが通信を検査している環境では、uv が持っている証明書一覧では足りません。--system-certs を付けて Windows の証明書を使わせると通ります。上の設定に入っているのはそのためで、Claude Code が自分で原因を突き止めて設定に足しました。

もう 1 つ。SketchUp を再起動すると、拡張機能のサーバーは止まります。「接続が拒否されました」と言われたら、もう一度「Start Server」を押します。これも AI からはできないので、覚えておく必要があります。

まず、10m の立方体

接続が確認できたので、いちばん簡単な図形を頼みました。

CLAUDE CODE への指示

スケッチアップに、10m × 10m × 10m の立方体を入れて下さい。

Claude Code は「直方体を作る」道具を、種類 cube、寸法 [10000, 10000, 10000](mm)、位置 [0, 0, 0] で呼びました。返ってきたのは新しいグループの ID と、外接する直方体の範囲です。

返ってきた結果(抜粋) { “id”: 7952, “name”: “Cube_10m”, “type”: “group”, “bbox_mm”: { “min”: [0, 0, 0], “max”: [10000, 10000, 10000] } }
SketchUp に作図された 10m の立方体。手前に人物の添景があり、大きさの比較になっている
作図直後の SketchUp。原点に 10m × 10m × 10m の立方体ができています。左下の人物(SketchUp 標準の添景)と比べると大きさが分かります。

この bbox_mm が効いています。AI は画面を見なくても、この数字で「10m の立方体が原点にできた」と確かめられるからです。AutoCAD のときと同じで、作図した結果を自分で読み返す手段があると、間違いがその場で分かります。

コルビュジエのドミノを作図する

次は少し実務に寄せて、ル・コルビュジエが 1914 年に提案した「ドミノ・システム」を作らせました。柱とスラブと階段だけの骨組みで、壁から自由になった近代建築の原型です。題材には、Rhino でこれをモデリングする手順を解説したページ(コルビュジエ-ドミノを3Dモデリングする|rhino-gh.com)を使わせてもらいました。

CLAUDE CODE への指示

以下のホームページは、「コルビュジエ-ドミノを3Dモデリングする」というタイトルの WEB ページです。(URL)

このホームページをよく読み、理解して、スケッチアップにこの「コルビュジエ-ドミノ」を再現してください。

文章にある寸法と、図にしかない寸法

Claude Code はまずページを読み、スラブの厚さ 200、階高 2,500、柱 200 角、踏面 300・蹴上 125、踊り場 1,800 × 1,200 といった数値を拾いました。ところが平面の寸法——スラブの縦横や柱の位置——は文章に無く、図版にしか書かれていません。ページの要約では落ちてしまう情報です。

そこで Claude Code は、ページに貼られている図版(17 枚)をダウンロードして画像として直接読み、平面図の寸法線から 10,200 × 6,200 の外形、4,000 スパンの柱グリッド、階段まわりの切り欠きを数値にしました。読み取った結果がこの表です。

部位寸法(mm)配置
平面10,200 × 6,200端部 100 + 4,000 + 4,000 + 2,000 + 100 / 100 + 1,000 + 4,000 + 1,000 + 100
束基礎500 × 500 × 500柱の位置 6 か所、Z 0 から 500
スラブ厚 200 × 3 枚Z 500 / 3,000 / 5,500。右側に階段の開口、右下に 1,100 角の欠き込み
200 × 200 × 長さ 2,300X 100 / 4,100 / 8,100 と Y 1,100 / 5,100 の交点、2 層
踊り場1,800 × 1,200 × 厚 200柱の側面に接して、Z 1,750 / 4,250
階段踏面 300 ・ 蹴上 125 ・ 幅 900 ・ 9 段1 フライトで 1,250 上がり、踊り場で折り返す。階高 2,500 = 2 フライト

Ruby のコードで、一括で作図する

部品は 27 個あります。1 つずつ「直方体を作る」道具を呼んでもできますが、Claude Code は「Ruby を流し込む」道具で、全部をまとめて 1 回で作図しました。SketchUp の Ruby API をそのまま使えるので、階段のような断面形状も、輪郭を描いて押し出すだけです。

流し込んだ Ruby(抜粋・一部整形) p3 = lambda { |x, y, z| Geom::Point3d.new(x.mm, y.mm, z.mm) } box = lambda { |name, x0, y0, z0, dx, dy, dz| g = root.entities.add_group f = g.entities.add_face(p3[x0,y0,z0], p3[x0+dx,y0,z0], p3[x0+dx,y0+dy,z0], p3[x0,y0+dy,z0]) f.reverse! if f.normal.z.negative? f.pushpull(dz.mm) } # 柱 6 本 × 2 層、束基礎、スラブ 3 枚、踊り場 2 枚、階段 4 本 … stair = lambda { |name, x0, ys, dir, zf| prof = [[0, -125]] 9.times { |k| prof.push([300*k, 125*(k+1)], [300*(k+1), 125*(k+1)]) } prof.push([2700, 975]) f = g.entities.add_face(prof.map { |u, h| p3[x0, ys + dir*u, zf + h] }) f.pushpull(900.mm) }

返ってきたのは {"groups": 27, "min_mm": [14850, 0, 0], "max_mm": [25200, 6200, 5700]}。グループが 27 個できて、高さが 5,700(3 枚目のスラブの上面)で終わっている——数字の上では狙いどおりです。Claude Code はここで「画面を見る」道具でスクリーンショットを撮り、参考ページの完成図と見比べてから「できました」と報告してきました。

SketchUp に作図されたコルビュジエのドミノ。3 枚のスラブと 6 本の柱、折り返し階段と踊り場
作図直後の SketchUp。柱 6 本 × 2 層、スラブ 3 枚、踊り場 2 枚、階段 4 本の 27 グループ。指示から作図完了まで、人の操作はありません。

下の図は、作図に使ったのと同じ数値で組み直したものです。部位ごとに追いかけられるほか、層数を増やすとドミノらしく同じ骨組みが積み上がります。

同じ数値で、層を積むスライダーで層数を、ボタンで部位を切り替えられます
作図済みの部位 選んでいる部位
層数
3
部位

部位ごとの寸法と個数

グループ数
最高点
平面
階段

要した時間

体感の目安です。設定のうち、時間がかかったのは方式の調査と、証明書のエラーの切り分けでした。作図そのものは会話 1 往復で終わります。

工程時間備考
接続方式の調査と比較約 10 分Web を調べて 3 候補を比較。採否は私が選択
導入(uv・拡張機能・設定・再起動)約 20 分手作業は拡張機能の導入とサーバー起動、Claude Code の再起動
10m の立方体1 分未満道具を 1 回呼ぶだけ
ドミノ:ページと図版の読み取り約 5 分図版 17 枚を取得して寸法を数値化
ドミノ:作図と確認約 2 分Ruby を 1 回流し込み、スクリーンショットで確認

やってみて分かったこと

1. 人の手が要るのは 2 か所だけ

SketchUp への拡張機能の導入と、サーバーの起動ボタン。この 2 つは SketchUp の画面の中の操作なので、AI からはできません。逆に言えばそれ以外——調査、ダウンロード、設定ファイル、エラーの切り分け、作図、確認——は全部 AI が進めました。「ここは手でやってください」と、必要な操作を具体的に言ってくるので迷いません。

2. 図版の寸法は、要約では落ちる

Web ページを読ませると、AI は要約して受け取ります。文章の数値は拾えますが、図の中の寸法線は要約に残りません。今回は Claude Code が自分で「平面寸法が無い」と気づき、図版を画像として取り直しました。図面や解説ページを題材にするときは、画像そのものを見せるのが確実です。

3. 単位の罠は、AI が先に踏んでくれる

SketchUp の Ruby API は内部の単位がインチです。mm のつもりで数値を渡すと、25.4 倍の大きさになります。Claude Code は最初から .mm を付けて変換していましたが、返ってきた bbox_mm を読み返すことで、万一間違えても気づける作りになっています。作図のあとに結果を読む——この習慣は AutoCAD のときと同じでした。

4. 自分の作図を、自分で見て確かめる

「画面を見る」道具があるおかげで、AI は作図した直後にスクリーンショットを撮り、参考図と見比べてから報告してきます。「できました」の前に確認が入るのは、実務で任せるときの安心材料です。

5. 気をつけること

非公式のツールを、パソコンの内側だけで使う

今回の MCP サーバーと拡張機能は、個人が公開しているものです。Trimble のサポート対象ではありません。また「Ruby を流し込む」道具は、SketchUp の中で任意のコードを実行できる強力なものです。

設定の SKETCHUP_MCP_HOST127.0.0.1(自分のパソコンの内側)のままにしてください。0.0.0.0 にすると、同じネットワークの他の機器からも認証なしで SketchUp を操作できてしまいます。

まとめ

AutoCAD に続いて、SketchUp も Claude Code の「道具」になりました。図面の平面計画は AutoCAD で、ボリュームの見え方は SketchUp で——同じ会話の中で、2 つのソフトを行き来しながら検討することが現実的になってきています。

ドミノは骨組みだけの単純な題材ですが、「解説ページを読んで、図版から寸法を拾い、27 個の部品を組み、自分で確認する」という一連の流れを、指示 1 つで通せたのは収穫でした。次は、敷地と法規の条件を与えて、ボリュームのスタディを SketchUp 側でやらせてみるつもりです。

作図に使った数値

この記事の立体図は、SketchUp に流し込んだ Ruby と同じ座標(スラブの輪郭、柱の位置、階段の断面)から描いています。層数を増やしたときの柱・踊り場・階段の位置も、同じ計算です。