defold-mcp について
defold-mcpはDefoldゲームプロジェクトの自動化・確認を行うMCPサーバーで、Cursorなどを使うゲーム開発者向けです。プロジェクト設定、Luaやアセットの作成、デバッグ、ビルド、分析まで扱います。
主な機能
- 01プロジェクトの作成と設定
- 02Luaスクリプトの生成・編集
- 03ゲームアセットとコンポーネントの作成
- 04プロジェクト実行とデバッグ出力の取得
- 05ビルドとホットリロードの有効化
- 06プロジェクト変更分析の取得
活用シーン
- 01Defoldプロジェクトのセットアップ
- 02Luaモジュールとゲームアセットの作成
- 03出力を記録しながらプロジェクトを実行
- 04対象プラットフォーム向けのビルド
MCP 対応
Defoldのプロジェクト管理・開発操作をMCPツールとして公開し、CursorやWindsurfなどの対応クライアントからサーバーを起動・管理できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
defold-mcp
Note: MCP(Model Context Protocol)サーバーを作成するのは今回が初めてです。完璧ではなく、実際、多くの機能が不足していますが、私より詳しい方がここまで作ったものを引き継ぎ、さらに発展させてくれることを願っています!
🚀 defold-mcp とは?
defold-mcp は、Defold ゲームエンジンと最新の開発者向けツールや AI を活用したワークフローをつなぐために設計された、オープンソースの Model Context Protocol(MCP)サーバーです。Defold プロジェクトをプログラムから自動化、調査、管理するための強力なツールを提供し、開発者が次のことを簡単に行えるようにします。
- Defold プロジェクトの起動とデバッグ
- Lua スクリプトやモジュールの生成と編集
- コレクション、スプライト、タイルマップなどの作成
- プロジェクトの設定や依存関係の管理
- ホットリロードとリアルタイム分析の有効化
- AI 支援によるゲーム開発のために、Cursor などのツールと連携
✨ 機能
- 包括的なツールセット: 幅広い Defold プロジェクトの操作を MCP ツールとして提供します(全一覧は以下を参照)。
- Apple Silicon と Dotenv のサポート: Apple Silicon 搭載 Mac でそのまま動作し、
.envファイルによる環境設定にも対応しています。 - プロジェクト管理の自動化: コマンドラインまたは対応クライアントから、Defold プロジェクトを簡単に作成、一覧表示、設定できます。
- スクリプトとアセットの自動化: スクリプト、コレクション、スプライトなどをプログラムから生成できます。
- デバッグと分析: プロジェクトをデバッグモードで実行し、コンソール出力を記録して、プロジェクトの変更に関する分析情報を取得できます。
- 拡張可能: ほかの方が改良、拡張し、新しいワークフローに合わせて適応できるように作られています。
🛠️ 提供されるツール
defold-mcp は、次の MCP ツールを提供します。
launch_defold:プロジェクトの Defold エディターを起動run_project:Defold プロジェクトをデバッグモードで実行し、出力を記録create_project:基本構成を備えた新しい Defold プロジェクトを作成list_projects:ディレクトリ内のすべての Defold プロジェクトを一覧表示get_project_settings:game.projectの設定を読み取りupdate_project_settings:game.projectの設定を更新create_script:新しい Lua スクリプトを作成edit_script:既存の Lua スクリプトを編集create_lua_module:再利用可能な Lua モジュールを作成create_collection:新しいコレクションを作成add_game_object:コレクションにゲームオブジェクトを追加add_component:ゲームオブジェクトにコンポーネント(スプライト、スクリプトなど)を追加create_sprite:スプライトアセットを作成して追加create_tilemap:タイルマップアセットを作成して追加create_particlefx:パーティクルエフェクトを作成して追加create_camera:カメラコンポーネントを作成して追加create_factory:ゲームオブジェクトを生成するファクトリーコンポーネントを作成create_gui:GUI シーンとスクリプトを作成setup_physics:コリジョンオブジェクトの物理設定を構成build_project:対象プラットフォーム向けにプロジェクトをビルドenable_hot_reload:プロジェクトファイルを監視してホットリロードを有効化add_native_extension:ネイティブ拡張機能を追加get_project_analytics:プロジェクトの変更に関する分析情報を取得
...ほかにもあります!全一覧と詳細は index.js を参照してください。
⚡️ はじめに
- リポジトリをクローン:
git clone https://github.com/yourusername/defold-mcp.git cd defold-mcp - 依存関係をインストール:
npm install - 環境を設定(任意):
デフォルト設定を上書きするには、
.envファイルを作成してください(DEFOLD_PATHやMCP_PORTなどの変数についてはindex.jsを参照)。 - サーバーを実行:
node index.js - お好みの MCP 対応クライアント(Cursor など)に接続します。
🛠️ Cursor または Windsurf での使用
Cursor または Windsurf を使用している場合、サーバーを手動で実行する必要はありません。代わりに、プロジェクトの .cursor/mcp.json に設定ファイルを追加すると、クライアントがサーバーを自動的に起動して管理できるようになります。
設定例を以下に示します。
{
"mcpServers": {
"defold-mcp": {
"command": "/path/to/your/node/binary", // e.g., ~/.nvm/versions/node/v22.14.0/bin/node
"args": ["/path/to/where/you/cloned/defold-mcp/index.js"], // e.g., ~/git/defold-mcp/index.js
"env": {
"MCP_TRANSPORT": "stdio",
"DEFOLD_PATH": "/Applications/Defold.app/Contents/MacOS/Defold",
"MCP_PORT": "3000",
"MCP_HOST": "localhost",
"BOB_PATH": "/desired/path/for/bob.jar" // e.g., ~/defold/bob-1.9.6.jar
}
}
}
}
command:Node.js のバイナリへのパスです。ターミナルでwhich nodeを実行すると確認できます。args:このプロジェクトをクローンした場所にあるindex.jsファイルへのパスです。BOB_PATH:Defold のbob.jarファイルをインストールする、または見つける場所のパスです。
これにより、プロジェクトを開くたびに Cursor または Windsurf が defold-mcp サーバーを自動的に起動、停止、接続できるようになります。環境に合わせてパスと環境変数を調整してください。
💡 このプロジェクトの理由
Defold を MCP サーバーの構築と Defold ゲームエンジンとの統合に初めて挑戦する場として、defold-mcp を作成しました。Defold を自動化や AI 主導のワークフローでより活用しやすくすることが目標でした。まだ改善の余地があることは承知していますが、このプロジェクトがほかの人の貢献や改善、さらなる発展につながることを願っています。
改善できる点があれば、フォークや貢献、またはお気軽にご連絡ください。Defold コミュニティのために、みんなで素晴らしいものを作りましょう。
🤝 貢献
貢献、バグ報告、機能リクエストを歓迎します。Issue を作成するか、プルリクエストを送信してください。
📄 ライセンス
このプロジェクトは MIT ライセンスです。
好奇心とゲーム開発への愛を込めて作成しました。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。