unity-mcp-cli 0.51.6 → 0.53.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +333 -0
- package/bin/{unity-mcp.js → unity-mcp-cli.js} +2 -2
- package/dist/commands/configure.js +22 -15
- package/dist/commands/configure.js.map +1 -1
- package/dist/commands/connect.js +37 -14
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/create-project.js +25 -13
- package/dist/commands/create-project.js.map +1 -1
- package/dist/commands/install-plugin.js +15 -6
- package/dist/commands/install-plugin.js.map +1 -1
- package/dist/commands/install-unity.d.ts +2 -0
- package/dist/commands/install-unity.js +59 -0
- package/dist/commands/install-unity.js.map +1 -0
- package/dist/commands/open.js +21 -11
- package/dist/commands/open.js.map +1 -1
- package/dist/commands/remove-plugin.d.ts +2 -0
- package/dist/commands/remove-plugin.js +27 -0
- package/dist/commands/remove-plugin.js.map +1 -0
- package/dist/index.js +26 -10
- package/dist/index.js.map +1 -1
- package/dist/utils/config.js +5 -5
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/manifest.d.ts +6 -0
- package/dist/utils/manifest.js +40 -13
- package/dist/utils/manifest.js.map +1 -1
- package/dist/utils/ui.d.ts +50 -0
- package/dist/utils/ui.js +136 -0
- package/dist/utils/ui.js.map +1 -0
- package/dist/utils/unity-editor.d.ts +2 -2
- package/dist/utils/unity-editor.js +26 -8
- package/dist/utils/unity-editor.js.map +1 -1
- package/dist/utils/unity-hub.d.ts +16 -1
- package/dist/utils/unity-hub.js +244 -13
- package/dist/utils/unity-hub.js.map +1 -1
- package/docs/README.es.md +333 -0
- package/docs/README.ja.md +333 -0
- package/docs/README.zh-CN.md +333 -0
- package/package.json +50 -44
- package/dist/commands/install-editor.d.ts +0 -2
- package/dist/commands/install-editor.js +0 -46
- package/dist/commands/install-editor.js.map +0 -1
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
<div align="center" width="100%">
|
|
2
|
+
<h1>Unity MCP — <i>CLI</i></h1>
|
|
3
|
+
|
|
4
|
+
[](https://www.npmjs.com/package/unity-mcp-cli)
|
|
5
|
+
[](https://nodejs.org/)
|
|
6
|
+
[](https://github.com/IvanMurzak/Unity-MCP/blob/main/LICENSE)
|
|
7
|
+
[](https://stand-with-ukraine.pp.ua)
|
|
8
|
+
|
|
9
|
+
<img src="https://github.com/IvanMurzak/Unity-MCP/raw/main/docs/img/promo/ai-developer-banner-glitch.gif" alt="AI Game Developer" title="Unity MCP CLI" width="100%">
|
|
10
|
+
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
|
+
<b>[English](https://github.com/IvanMurzak/Unity-MCP/blob/main/cli/README.md) | [日本語](https://github.com/IvanMurzak/Unity-MCP/blob/main/cli/docs/README.ja.md) | [Español](https://github.com/IvanMurzak/Unity-MCP/blob/main/cli/docs/README.es.md)</b>
|
|
14
|
+
|
|
15
|
+
适用于 **[Unity MCP](https://github.com/IvanMurzak/Unity-MCP)** 的跨平台 CLI 工具 — 创建项目、安装插件、配置 MCP 工具,并启动带有活跃 MCP 连接的 Unity。一切操作均可通过单一命令行完成。
|
|
16
|
+
|
|
17
|
+
## 
|
|
18
|
+
|
|
19
|
+
- :white_check_mark: **创建项目** — 通过 Unity Editor 快速搭建新 Unity 项目
|
|
20
|
+
- :white_check_mark: **安装编辑器** — 从命令行安装任意 Unity Editor 版本
|
|
21
|
+
- :white_check_mark: **安装插件** — 将 Unity-MCP 插件连同所有必要的作用域注册表添加到 `manifest.json`
|
|
22
|
+
- :white_check_mark: **移除插件** — 从 `manifest.json` 中移除 Unity-MCP 插件
|
|
23
|
+
- :white_check_mark: **配置** — 启用/禁用 MCP 工具、提示词和资源
|
|
24
|
+
- :white_check_mark: **连接** — 携带 MCP 环境变量启动 Unity,实现自动化服务器连接
|
|
25
|
+
- :white_check_mark: **跨平台** — 支持 Windows、macOS 和 Linux
|
|
26
|
+
- :white_check_mark: **版本感知** — 从不降级插件版本,自动从 OpenUPM 解析最新版本
|
|
27
|
+
|
|
28
|
+

|
|
29
|
+
|
|
30
|
+
# 快速开始
|
|
31
|
+
|
|
32
|
+
使用 `npx` 即时运行任意命令,无需安装:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
npx unity-mcp-cli install-plugin /path/to/unity/project
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
或全局安装:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
npm install -g unity-mcp-cli
|
|
42
|
+
unity-mcp-cli install-plugin /path/to/unity/project
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
> **环境要求:** [Node.js](https://nodejs.org/) ^20.19.0 或 >=22.12.0。若未检测到 [Unity Hub](https://unity.com/download),将自动下载安装。
|
|
46
|
+
|
|
47
|
+

|
|
48
|
+
|
|
49
|
+
# 目录
|
|
50
|
+
|
|
51
|
+
- [快速开始](#快速开始)
|
|
52
|
+
- [命令](#命令)
|
|
53
|
+
- [`create-project`](#create-project) — 创建新 Unity 项目
|
|
54
|
+
- [`install-unity`](#install-unity) — 通过 Unity Hub 安装 Unity Editor
|
|
55
|
+
- [`open`](#open) — 在编辑器中打开 Unity 项目
|
|
56
|
+
- [`install-plugin`](#install-plugin) — 将 Unity-MCP 插件安装到项目中
|
|
57
|
+
- [`remove-plugin`](#remove-plugin) — 从项目中移除 Unity-MCP 插件
|
|
58
|
+
- [`configure`](#configure) — 配置 MCP 工具、提示词和资源
|
|
59
|
+
- [`connect`](#connect) — 启动 Unity 并建立 MCP 连接
|
|
60
|
+
- [完整自动化示例](#完整自动化示例)
|
|
61
|
+
- [工作原理](#工作原理)
|
|
62
|
+
|
|
63
|
+

|
|
64
|
+
|
|
65
|
+
# 命令
|
|
66
|
+
|
|
67
|
+
## `create-project`
|
|
68
|
+
|
|
69
|
+
使用 Unity Editor 创建新的 Unity 项目。
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
npx unity-mcp-cli create-project /path/to/new/project
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
| 选项 | 必需 | 描述 |
|
|
76
|
+
|---|---|---|
|
|
77
|
+
| `[path]` | 是 | 项目将被创建的路径(位置参数或 `--path`) |
|
|
78
|
+
| `--unity <version>` | 否 | 要使用的 Unity Editor 版本(默认为已安装的最高版本) |
|
|
79
|
+
|
|
80
|
+
**示例 — 使用指定编辑器版本创建项目:**
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
npx unity-mcp-cli create-project ./MyGame --unity 2022.3.62f1
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+

|
|
87
|
+
|
|
88
|
+
## `install-unity`
|
|
89
|
+
|
|
90
|
+
通过 Unity Hub CLI 安装指定版本的 Unity Editor。
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
npx unity-mcp-cli install-unity --version 6000.3.1f1
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
| 选项 | 必需 | 描述 |
|
|
97
|
+
|---|---|---|
|
|
98
|
+
| `--version <version>` | 否 | 要安装的 Unity Editor 版本 |
|
|
99
|
+
| `--path <path>` | 否 | 从现有项目中读取所需版本 |
|
|
100
|
+
|
|
101
|
+
若两个选项均未提供,命令将列出当前已安装的编辑器。
|
|
102
|
+
|
|
103
|
+
**示例 — 安装项目所需的编辑器版本:**
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
npx unity-mcp-cli install-unity --path ./MyGame
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+

|
|
110
|
+
|
|
111
|
+
## `open`
|
|
112
|
+
|
|
113
|
+
在 Unity Editor 中打开 Unity 项目。
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
npx unity-mcp-cli open ./MyGame
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
| 选项 | 必需 | 描述 |
|
|
120
|
+
|---|---|---|
|
|
121
|
+
| `[path]` | 是 | Unity 项目的路径(位置参数或 `--path`) |
|
|
122
|
+
| `--unity <version>` | 否 | 要使用的特定 Unity Editor 版本(默认为项目设置中的版本,回退为已安装的最高版本) |
|
|
123
|
+
|
|
124
|
+
编辑器进程以分离模式启动 — CLI 会立即返回。
|
|
125
|
+
|
|
126
|
+

|
|
127
|
+
|
|
128
|
+
## `install-plugin`
|
|
129
|
+
|
|
130
|
+
将 Unity-MCP 插件安装到 Unity 项目的 `Packages/manifest.json` 中。
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
npx unity-mcp-cli install-plugin ./MyGame
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
| 选项 | 必需 | 描述 |
|
|
137
|
+
|---|---|---|
|
|
138
|
+
| `[path]` | 是 | Unity 项目的路径(位置参数或 `--path`) |
|
|
139
|
+
| `--plugin-version <version>` | 否 | 要安装的插件版本(默认为来自 [OpenUPM](https://openupm.com/packages/com.ivanmurzak.unity.mcp/) 的最新版本) |
|
|
140
|
+
|
|
141
|
+
此命令将:
|
|
142
|
+
1. 添加 **OpenUPM 作用域注册表**及所有必要的作用域
|
|
143
|
+
2. 将 `com.ivanmurzak.unity.mcp` 添加到 `dependencies`
|
|
144
|
+
3. **从不降级** — 若已安装更高版本,则保留现有版本
|
|
145
|
+
|
|
146
|
+
**示例 — 安装指定插件版本:**
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
npx unity-mcp-cli install-plugin ./MyGame --plugin-version 0.52.0
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
> 运行此命令后,请在 Unity Editor 中打开项目以完成包安装。
|
|
153
|
+
|
|
154
|
+

|
|
155
|
+
|
|
156
|
+
## `remove-plugin`
|
|
157
|
+
|
|
158
|
+
从 Unity 项目的 `Packages/manifest.json` 中移除 Unity-MCP 插件。
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
npx unity-mcp-cli remove-plugin ./MyGame
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
| 选项 | 必需 | 描述 |
|
|
165
|
+
|---|---|---|
|
|
166
|
+
| `[path]` | 是 | Unity 项目的路径(位置参数或 `--path`) |
|
|
167
|
+
|
|
168
|
+
此命令将:
|
|
169
|
+
1. 从 `dependencies` 中移除 `com.ivanmurzak.unity.mcp`
|
|
170
|
+
2. **保留作用域注册表和作用域** — 其他包可能依赖它们
|
|
171
|
+
3. 若插件未安装,则**不执行任何操作**
|
|
172
|
+
|
|
173
|
+
> 运行此命令后,请在 Unity Editor 中打开项目以应用更改。
|
|
174
|
+
|
|
175
|
+

|
|
176
|
+
|
|
177
|
+
## `configure`
|
|
178
|
+
|
|
179
|
+
在 `UserSettings/AI-Game-Developer-Config.json` 中配置 MCP 工具、提示词和资源。
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
npx unity-mcp-cli configure ./MyGame --list
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
| 选项 | 必需 | 描述 |
|
|
186
|
+
|---|---|---|
|
|
187
|
+
| `[path]` | 是 | Unity 项目的路径(位置参数或 `--path`) |
|
|
188
|
+
| `--list` | 否 | 列出当前配置并退出 |
|
|
189
|
+
| `--enable-tools <names>` | 否 | 启用指定工具(逗号分隔) |
|
|
190
|
+
| `--disable-tools <names>` | 否 | 禁用指定工具(逗号分隔) |
|
|
191
|
+
| `--enable-all-tools` | 否 | 启用所有工具 |
|
|
192
|
+
| `--disable-all-tools` | 否 | 禁用所有工具 |
|
|
193
|
+
| `--enable-prompts <names>` | 否 | 启用指定提示词(逗号分隔) |
|
|
194
|
+
| `--disable-prompts <names>` | 否 | 禁用指定提示词(逗号分隔) |
|
|
195
|
+
| `--enable-all-prompts` | 否 | 启用所有提示词 |
|
|
196
|
+
| `--disable-all-prompts` | 否 | 禁用所有提示词 |
|
|
197
|
+
| `--enable-resources <names>` | 否 | 启用指定资源(逗号分隔) |
|
|
198
|
+
| `--disable-resources <names>` | 否 | 禁用指定资源(逗号分隔) |
|
|
199
|
+
| `--enable-all-resources` | 否 | 启用所有资源 |
|
|
200
|
+
| `--disable-all-resources` | 否 | 禁用所有资源 |
|
|
201
|
+
|
|
202
|
+
**示例 — 启用指定工具并禁用所有提示词:**
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
npx unity-mcp-cli configure ./MyGame \
|
|
206
|
+
--enable-tools gameobject-create,gameobject-find \
|
|
207
|
+
--disable-all-prompts
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
**示例 — 启用所有功能:**
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
npx unity-mcp-cli configure ./MyGame \
|
|
214
|
+
--enable-all-tools \
|
|
215
|
+
--enable-all-prompts \
|
|
216
|
+
--enable-all-resources
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+

|
|
220
|
+
|
|
221
|
+
## `connect`
|
|
222
|
+
|
|
223
|
+
打开 Unity 项目并通过环境变量将其连接到指定的 MCP 服务器。每个选项均对应一个 `UNITY_MCP_*` 环境变量,Unity 插件将在启动时读取这些变量。
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
npx unity-mcp-cli connect \
|
|
227
|
+
--path ./MyGame \
|
|
228
|
+
--url http://localhost:8080
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
| 选项 | 环境变量 | 必需 | 描述 |
|
|
232
|
+
|---|---|---|---|
|
|
233
|
+
| `--url <url>` | `UNITY_MCP_HOST` | 是 | 要连接的 MCP 服务器 URL |
|
|
234
|
+
| `--path <path>` | — | 是 | Unity 项目的路径 |
|
|
235
|
+
| `--keep-connected` | `UNITY_MCP_KEEP_CONNECTED` | 否 | 强制保持连接 |
|
|
236
|
+
| `--token <token>` | `UNITY_MCP_TOKEN` | 否 | 身份验证令牌 |
|
|
237
|
+
| `--auth <option>` | `UNITY_MCP_AUTH_OPTION` | 否 | 认证模式:`none` 或 `required` |
|
|
238
|
+
| `--tools <names>` | `UNITY_MCP_TOOLS` | 否 | 要启用的工具列表(逗号分隔) |
|
|
239
|
+
| `--transport <method>` | `UNITY_MCP_TRANSPORT` | 否 | 传输方式:`streamableHttp` 或 `stdio` |
|
|
240
|
+
| `--start-server <value>` | `UNITY_MCP_START_SERVER` | 否 | 设置为 `true` 或 `false` 以控制 Unity Editor 中 MCP 服务器的自动启动(仅适用于 `streamableHttp` 传输方式) |
|
|
241
|
+
| `--unity <version>` | — | 否 | 要使用的特定 Unity Editor 版本(默认为项目设置中的版本,回退为已安装的最高版本) |
|
|
242
|
+
|
|
243
|
+
此命令携带相应的 `UNITY_MCP_*` 环境变量启动 Unity Editor,以便插件在启动时自动获取这些配置。运行时,环境变量将覆盖项目 `UserSettings/AI-Game-Developer-Config.json` 配置文件中的对应值。
|
|
244
|
+
|
|
245
|
+
**示例 — 携带身份验证和指定工具连接:**
|
|
246
|
+
|
|
247
|
+
```bash
|
|
248
|
+
npx unity-mcp-cli connect \
|
|
249
|
+
--path ./MyGame \
|
|
250
|
+
--url http://my-server:8080 \
|
|
251
|
+
--token my-secret-token \
|
|
252
|
+
--auth required \
|
|
253
|
+
--keep-connected \
|
|
254
|
+
--tools gameobject-create,gameobject-find,script-execute
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
**示例 — 使用 stdio 传输方式连接(服务器由 AI 代理管理):**
|
|
258
|
+
|
|
259
|
+
```bash
|
|
260
|
+
npx unity-mcp-cli connect \
|
|
261
|
+
--path ./MyGame \
|
|
262
|
+
--url http://localhost:8080 \
|
|
263
|
+
--transport stdio \
|
|
264
|
+
--start-server false
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
**示例 — 使用 streamableHttp 连接并自动启动服务器:**
|
|
268
|
+
|
|
269
|
+
```bash
|
|
270
|
+
npx unity-mcp-cli connect \
|
|
271
|
+
--path ./MyGame \
|
|
272
|
+
--url http://localhost:8080 \
|
|
273
|
+
--transport streamableHttp \
|
|
274
|
+
--start-server true \
|
|
275
|
+
--keep-connected
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+

|
|
279
|
+
|
|
280
|
+
# 完整自动化示例
|
|
281
|
+
|
|
282
|
+
通过一个脚本从零搭建完整的 Unity MCP 项目:
|
|
283
|
+
|
|
284
|
+
```bash
|
|
285
|
+
# 1. 创建新的 Unity 项目
|
|
286
|
+
npx unity-mcp-cli create-project ./MyAIGame --unity 6000.3.1f1
|
|
287
|
+
|
|
288
|
+
# 2. 安装 Unity-MCP 插件
|
|
289
|
+
npx unity-mcp-cli install-plugin ./MyAIGame
|
|
290
|
+
|
|
291
|
+
# 3. 启用所有 MCP 工具
|
|
292
|
+
npx unity-mcp-cli configure ./MyAIGame --enable-all-tools
|
|
293
|
+
|
|
294
|
+
# 4. 打开项目并建立 MCP 连接
|
|
295
|
+
npx unity-mcp-cli connect \
|
|
296
|
+
--path ./MyAIGame \
|
|
297
|
+
--url http://localhost:8080 \
|
|
298
|
+
--keep-connected
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+

|
|
302
|
+
|
|
303
|
+
# 工作原理
|
|
304
|
+
|
|
305
|
+
### 确定性端口
|
|
306
|
+
|
|
307
|
+
CLI 根据 Unity 项目的目录路径生成**确定性端口**(SHA256 哈希值映射到端口范围 50000–59999)。该端口生成机制与 Unity 插件中的实现完全一致,确保服务器与插件无需手动配置即可自动协商使用同一端口。
|
|
308
|
+
|
|
309
|
+
### 插件安装
|
|
310
|
+
|
|
311
|
+
`install-plugin` 命令直接修改 `Packages/manifest.json`:
|
|
312
|
+
- 添加 [OpenUPM](https://openupm.com/) 作用域注册表(`package.openupm.com`)
|
|
313
|
+
- 注册所有必要的作用域(`com.ivanmurzak`、`extensions.unity`、`org.nuget.*`)
|
|
314
|
+
- 以版本感知的方式添加 `com.ivanmurzak.unity.mcp` 依赖(从不降级)
|
|
315
|
+
|
|
316
|
+
### 配置文件
|
|
317
|
+
|
|
318
|
+
`configure` 命令读写 `UserSettings/AI-Game-Developer-Config.json`,该文件控制:
|
|
319
|
+
- **工具** — AI 代理可用的 MCP 工具
|
|
320
|
+
- **提示词** — 注入到 LLM 对话中的预定义提示词
|
|
321
|
+
- **资源** — 暴露给 AI 代理的只读数据
|
|
322
|
+
- **连接设置** — 主机 URL、认证令牌、传输方式、超时配置
|
|
323
|
+
|
|
324
|
+
### Unity Hub 集成
|
|
325
|
+
|
|
326
|
+
管理编辑器或创建项目的命令使用 **Unity Hub CLI**(`--headless` 模式)。若未安装 Unity Hub,CLI 将**自动下载并安装**:
|
|
327
|
+
- **Windows** — 通过 `UnityHubSetup.exe /S` 静默安装(可能需要管理员权限)
|
|
328
|
+
- **macOS** — 下载 DMG,挂载后将 `Unity Hub.app` 复制到 `/Applications`
|
|
329
|
+
- **Linux** — 将 `UnityHub.AppImage` 下载到 `~/Applications/`
|
|
330
|
+
|
|
331
|
+
> 完整的 Unity-MCP 项目文档请参阅 [主 README](https://github.com/IvanMurzak/Unity-MCP/blob/main/README.md)。
|
|
332
|
+
|
|
333
|
+

|
package/package.json
CHANGED
|
@@ -1,44 +1,50 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "unity-mcp-cli",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Cross-platform CLI tool for Unity-MCP operations — create projects, install plugins, configure tools, and manage MCP connections",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "dist/index.js",
|
|
7
|
-
"bin": {
|
|
8
|
-
"unity-mcp": "bin/unity-mcp.js"
|
|
9
|
-
},
|
|
10
|
-
"scripts": {
|
|
11
|
-
"build": "tsc",
|
|
12
|
-
"pretest": "npm run build",
|
|
13
|
-
"test": "vitest run",
|
|
14
|
-
"test:watch": "vitest",
|
|
15
|
-
"prepublishOnly": "npm run build"
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"
|
|
33
|
-
},
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
}
|
|
44
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "unity-mcp-cli",
|
|
3
|
+
"version": "0.53.1",
|
|
4
|
+
"description": "Cross-platform CLI tool for Unity-MCP operations — create projects, install plugins, configure tools, and manage MCP connections",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"unity-mcp-cli": "bin/unity-mcp-cli.js"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"pretest": "npm run build",
|
|
13
|
+
"test": "vitest run",
|
|
14
|
+
"test:watch": "vitest",
|
|
15
|
+
"prepublishOnly": "npm run build",
|
|
16
|
+
"prepack": "npm run build"
|
|
17
|
+
},
|
|
18
|
+
"keywords": [
|
|
19
|
+
"unity",
|
|
20
|
+
"mcp",
|
|
21
|
+
"model-context-protocol",
|
|
22
|
+
"ai",
|
|
23
|
+
"cli",
|
|
24
|
+
"gamedev",
|
|
25
|
+
"game-dev"
|
|
26
|
+
],
|
|
27
|
+
"author": "Ivan Murzak",
|
|
28
|
+
"license": "Apache-2.0",
|
|
29
|
+
"repository": {
|
|
30
|
+
"type": "git",
|
|
31
|
+
"url": "https://github.com/IvanMurzak/Unity-MCP.git",
|
|
32
|
+
"directory": "cli"
|
|
33
|
+
},
|
|
34
|
+
"engines": {
|
|
35
|
+
"node": "^20.19.0 || >=22.12.0"
|
|
36
|
+
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"boxen": "^8.0.1",
|
|
39
|
+
"chalk": "^5.6.2",
|
|
40
|
+
"commander": "^13.1.0",
|
|
41
|
+
"ora": "^8.2.0",
|
|
42
|
+
"semver": "^7.7.1"
|
|
43
|
+
},
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"@types/node": "^22.15.0",
|
|
46
|
+
"@types/semver": "^7.7.0",
|
|
47
|
+
"typescript": "^5.8.0",
|
|
48
|
+
"vitest": "^3.1.0"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import { findUnityHub, installEditor, listInstalledEditors } from '../utils/unity-hub.js';
|
|
3
|
-
import { getProjectEditorVersion } from '../utils/unity-editor.js';
|
|
4
|
-
export const installEditorCommand = new Command('install-editor')
|
|
5
|
-
.description('Install Unity Editor via Unity Hub')
|
|
6
|
-
.option('--version <version>', 'Unity Editor version to install')
|
|
7
|
-
.option('--project-path <path>', 'Read version from an existing Unity project')
|
|
8
|
-
.action(async (options) => {
|
|
9
|
-
const hubPath = findUnityHub();
|
|
10
|
-
if (!hubPath) {
|
|
11
|
-
console.error('Error: Unity Hub not found. Please install Unity Hub first.');
|
|
12
|
-
process.exit(1);
|
|
13
|
-
}
|
|
14
|
-
let version = options.version;
|
|
15
|
-
if (!version && options.projectPath) {
|
|
16
|
-
version = getProjectEditorVersion(options.projectPath) ?? undefined;
|
|
17
|
-
if (version) {
|
|
18
|
-
console.log(`Detected editor version from project: ${version}`);
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
console.error('Error: Could not read editor version from ProjectSettings/ProjectVersion.txt');
|
|
22
|
-
process.exit(1);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
if (!version) {
|
|
26
|
-
console.error('Error: Please specify --version or --project-path');
|
|
27
|
-
// Show installed editors as a hint
|
|
28
|
-
const editors = listInstalledEditors(hubPath);
|
|
29
|
-
if (editors.length > 0) {
|
|
30
|
-
console.log('\nCurrently installed editors:');
|
|
31
|
-
for (const editor of editors) {
|
|
32
|
-
console.log(` ${editor.version} - ${editor.path}`);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
process.exit(1);
|
|
36
|
-
}
|
|
37
|
-
// Check if already installed
|
|
38
|
-
const editors = listInstalledEditors(hubPath);
|
|
39
|
-
const alreadyInstalled = editors.find((e) => e.version === version);
|
|
40
|
-
if (alreadyInstalled) {
|
|
41
|
-
console.log(`Unity Editor ${version} is already installed at: ${alreadyInstalled.path}`);
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
installEditor(hubPath, version);
|
|
45
|
-
});
|
|
46
|
-
//# sourceMappingURL=install-editor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"install-editor.js","sourceRoot":"","sources":["../../src/commands/install-editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,OAAO,CAAC,gBAAgB,CAAC;KAC9D,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,qBAAqB,EAAE,iCAAiC,CAAC;KAChE,MAAM,CAAC,uBAAuB,EAAE,6CAA6C,CAAC;KAC9E,MAAM,CAAC,KAAK,EAAE,OAAmD,EAAE,EAAE;IACpE,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;QAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAE9B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACpC,OAAO,GAAG,uBAAuB,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC;QACpE,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,yCAAyC,OAAO,EAAE,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,8EAA8E,CAAC,CAAC;YAC9F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAEnE,mCAAmC;QACnC,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;YAC9C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,OAAO,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,6BAA6B;IAC7B,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IACpE,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,gBAAgB,OAAO,6BAA6B,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;QACzF,OAAO;IACT,CAAC;IAED,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC"}
|