0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MCP不要論への回答 — バイブコーディングの限界とMCPの本質的価値

0
Posted at

MCP不要論への回答 — バイブコーディングの限界とMCPの本質的価値

SNSを眺めていると、こんな意見が目に入る。

「AIが直接コードを書けるなら、MCPなんて要らなくない?」

一見、筋が通っている。Claude CodeでC#スクリプトを生成すればUnityを操作できる。わざわざ MCP(Model Context Protocol)という仕組みを整備しなくても、目的は達成できる——そういう論理だ。

しかし今日、私はそれで丸半日を無駄にした

URP(Universal Render Pipeline)のパイプラインアセットを設定するために、C#スクリプトを生成して配置した。作業が終わったあと、そのスクリプトを削除するのを忘れた。次のビルドからコンパイルエラーが連鎖し、原因の特定だけで2時間以上を費やした。MCP API として unity.rendering.createURPAsset が存在していれば、副作用ゼロで1コール、30秒で終わっていた作業だ。

この記事では、「MCP不要論」がなぜ誤りなのかを、この事故を軸に解説する。バイブコーディングが機能するケースとしないケース、そしてMCPが提供する「本質的価値」を整理する。


MCP不要論の主張を整理する

批判の論点はおおむね次の3つに集約される。

  1. AIはコードを書ける — Claude CodeはC#スクリプトを生成できる。Unityの操作もスクリプト経由で実現できる
  2. MCPはオーバーヘッド — API設計・実装・メンテナンスのコストが高い
  3. バイブコーディングで十分 — 「動けばいい」なら、AIに丸投げで問題ない

1と2は事実だ。反論の余地はない。問題は3の前提——「動けばいい」という割り切りが、どこまで通用するかだ。


バイブコーディングが機能するケースとしないケース

バイブコーディングとは、Andrej Karpathy氏が2025年に提唱した「コードを見ずにAIに丸投げする開発スタイル」だ。彼自身が「週末の使い捨てプロジェクト向け」と明言している。

バイブコーディングが機能するケース:
├── プロトタイプ・実験的プロジェクト
├── 使い捨てのスクリプト・ツール
├── 副作用が許容できる環境
└── 結果だけ確認できれば十分な作業

バイブコーディングが機能しないケース:
├── 本番プロジェクトのAsset管理
├── 複数の開発者が関わるチーム開発
├── 副作用が残ると困る操作(ファイル生成・Editor設定変更)
└── 「正しい手順」で実行する必要があるUnity操作

Unity開発でAIを使う場面の多くは、後者に該当する。


実体験:スクリプト生成の副作用事故

何をしたかったか

Unityプロジェクトに URP(Universal Render Pipeline)を導入し、パイプラインアセットを作成・設定する必要があった。

どう対処したか

MCPに該当するAPIがなかったため、Claude Codeに次の作業を依頼した。

  1. SetupURPPipeline.cs という Editor スクリプトを生成
  2. Assets/Editor/ に配置
  3. スクリプトがコンパイルされると自動実行し、URPアセットを作成・設定

生成されたコードはこのようなものだった。

// Assets/Editor/SetupURPPipeline.cs
// URPパイプラインアセットを自動作成・設定するEditorスクリプト
using UnityEditor;
using UnityEngine;
using UnityEngine.Rendering.Universal;

[InitializeOnLoad]
public static class SetupURPPipeline
{
    static SetupURPPipeline()
    {
        // Editorロード時に自動実行
        EditorApplication.delayCall += () =>
        {
            var asset = UniversalRenderPipelineAsset.Create();
            var path = "Assets/Settings/URP-Balanced-Renderer.asset";
            AssetDatabase.CreateAsset(asset, path);
            GraphicsSettings.defaultRenderPipeline = asset;
            Debug.Log("[SetupURPPipeline] URPアセットを設定しました");
        };
    }
}

URPの設定は問題なく完了した。

何を忘れたか

設定完了後、SetupURPPipeline.cs を削除するのを忘れた。

何が起きたか

次にプロジェクトを開いたとき、コンパイルエラーが発生した。URPパッケージのバージョンとAPIの不整合が原因だったが、[InitializeOnLoad] によって Editor起動のたびにスクリプトが走っていたため、エラーが連鎖した。

Assets/Editor/SetupURPPipeline.cs(12,13): error CS0234:
The type or namespace name 'UniversalRenderPipelineAsset' does not exist
in the namespace 'UnityEngine.Rendering.Universal'

エラーの原因がスクリプトにあると気づくまでに約90分。削除して解決するまでにさらに30分。合計2時間以上のロスだ。

MCPがあれば何が変わっていたか

unity.rendering.createURPAsset という MCP API が存在していれば、処理は次の1コールで完了する。

{
  "method": "unity.rendering.createURPAsset",
  "params": {
    "assetPath": "Assets/Settings/URP-Balanced-Renderer.asset",
    "setAsDefault": true
  }
}
  • ファイル生成なし
  • コンパイル不要
  • 削除忘れリスクなし
  • 実行時間:約30秒

「コードを書いて配置して実行して削除する」という一連の副作用を、APIが完全に隠蔽する。


MCPの本質的価値

今回の事故を通じて、MCPが提供する価値は大きく2つに整理できると気づいた。

1. 副作用の隠蔽

スクリプト生成によるUnity操作は、必ず副作用を伴う。

操作方法 副作用
C#スクリプト生成 ファイルが残る、コンパイルが走る、削除忘れリスク
Editor Menu実行 手動トリガーが必要、再現性が低い
MCP API呼び出し 副作用なし、1コールで完結

MCPは「操作の実装詳細」をサーバー側に閉じ込め、呼び出し側に副作用を漏らさない。これはソフトウェア工学における関心の分離そのものだ。

2. コンテキストウィンドウの節約

スクリプト生成・配置・実行・削除のサイクルをAIに任せると、その過程で大量のトークンを消費する。コードの生成、エラーの解析、修正の試行——これらすべてがコンテキストを圧迫する。

MCP API経由なら、AIはパラメータを渡すだけだ。実装の詳細はサーバーが持つ。コンテキスト消費量は、体感で5分の1以下になる。


比較表:バイブコーディング vs MCP

観点 バイブコーディング(スクリプト生成) MCP API経由
実装コスト 低(その場で生成) 高(事前にAPI設計が必要)
副作用 大(ファイル残留・コンパイル) なし
削除忘れリスク なし
コンテキスト消費
再現性 低(環境依存) 高(APIが保証)
チーム展開 困難(手順が属人的) 容易(APIを共有)
「正しい手順」の保証 なし あり

「動けばいい」ならバイブコーディングで十分だ。しかし「正しく動く」「副作用がない」「チームで再現できる」を求めるなら、MCPは必須になる。


Asset Storeアセットと MCPの展望

現在、Unity向けのサードパーティアセット(Asset Storeで販売されているもの)は、MCPでの操作に対応していないものがほとんどだ。

しかしこれは変わる。

アセットパブリッシャーが「MCPサーバー付きアセット」をリリースし始めれば、ユーザーはバイブコーディングのリスクなしにAI経由でアセットを操作できるようになる。例えば、次のようなAPIが想定できる。

// Cinemachine を MCP 経由で操作する例
unity.cinemachine.createVirtualCamera
unity.cinemachine.setFollowTarget
unity.cinemachine.blendCameras

// ProBuilder を MCP 経由で操作する例
unity.probuilder.createShape
unity.probuilder.extrude
unity.probuilder.applyMaterial

「AIがUnityを操作する」という未来において、MCPはプロトコルの標準として機能する。バイブコーディングで書いた一時スクリプトではなく、パブリッシャーが保証するAPIとして。


まとめ

  • MCP不要論は「バイブコーディングで十分」という前提に依存している
  • しかし、Unity開発の多くの操作は副作用を許容できない
  • スクリプト生成による操作は「削除忘れ」「コンパイルエラー連鎖」などのリスクを内包する
  • MCP APIは副作用を隠蔽し、コンテキスト消費を抑え、再現性を保証する
  • 「動けばいい」ならバイブコーディング、「正しく動く」ならMCPが必要

MCP不要論は間違っていない。ただし、それが成立するのは「副作用を気にしない使い捨てプロジェクト」に限定される。本番のUnity開発でAIを活用するなら、MCPは「あると便利」ではなく「なければ事故る」レベルの基盤だ。


UniMCP4CC について

本記事で述べた「Unity を MCP 経由で操作する」を実現するツールが UniMCP4CC だ。

Claude Code から Unity Editor を直接操作できる MCP サーバーで、シーン管理・GameObject操作・Asset作成・レンダリング設定など、副作用なしに実行できるAPIを提供している。

スクリプト生成に頼ったバイブコーディングから脱却し、意図した動作・正しい手順でUnityを操作したい方にとって、UniMCP4CCはその出発点になる。


参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?