Skip to content

Commit c22adda

Browse files
authored
Merge pull request #157 from IvanMurzak/dev
feat: Add TestRunner MCP tool and support for MCP client timeout configuration
2 parents f4660f0 + c783cd4 commit c22adda

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+1221
-163
lines changed

.github/workflows/2022.3.61f1_editmode.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@ name: 2022.3.61f1-editmode
22

33
on:
44
pull_request:
5-
branches:
6-
- main
5+
branches: [main, dev]
76
types: [opened, synchronize, reopened]
87

98
pull_request_target:
10-
branches:
11-
- main
9+
branches: [main, dev]
1210
types: [opened, synchronize, reopened]
1311

1412
push:

.github/workflows/2022.3.61f1_playmode.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@ name: 2022.3.61f1-playmode
22

33
on:
44
pull_request:
5-
branches:
6-
- main
5+
branches: [main, dev]
76
types: [opened, synchronize, reopened]
87

98
pull_request_target:
10-
branches:
11-
- main
9+
branches: [main, dev]
1210
types: [opened, synchronize, reopened]
1311

1412
push:

.github/workflows/2022.3.61f1_standalone.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@ name: 2022.3.61f1-standalone
22

33
on:
44
pull_request:
5-
branches:
6-
- main
5+
branches: [main, dev]
76
types: [opened, synchronize, reopened]
87

98
pull_request_target:
10-
branches:
11-
- main
9+
branches: [main, dev]
1210
types: [opened, synchronize, reopened]
1311

1412
push:

.github/workflows/2023.2.20f1_editmode.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@ name: 2023.2.20f1-editmode
22

33
on:
44
pull_request:
5-
branches:
6-
- main
5+
branches: [main, dev]
76
types: [opened, synchronize, reopened]
87

98
pull_request_target:
10-
branches:
11-
- main
9+
branches: [main, dev]
1210
types: [opened, synchronize, reopened]
1311

1412
push:

.github/workflows/2023.2.20f1_playmode.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@ name: 2023.2.20f1-playmode
22

33
on:
44
pull_request:
5-
branches:
6-
- main
5+
branches: [main, dev]
76
types: [opened, synchronize, reopened]
87

98
pull_request_target:
10-
branches:
11-
- main
9+
branches: [main, dev]
1210
types: [opened, synchronize, reopened]
1311

1412
push:

.github/workflows/2023.2.20f1_standalone.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@ name: 2023.2.20f1-standalone
22

33
on:
44
pull_request:
5-
branches:
6-
- main
5+
branches: [main, dev]
76
types: [opened, synchronize, reopened]
87

98
pull_request_target:
10-
branches:
11-
- main
9+
branches: [main, dev]
1210
types: [opened, synchronize, reopened]
1311

1412
push:

.github/workflows/6000.0.46f1_editmode.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@ name: 6000.0.46f1-editmode
22

33
on:
44
pull_request:
5-
branches:
6-
- main
5+
branches: [main, dev]
76
types: [opened, synchronize, reopened]
87

98
pull_request_target:
10-
branches:
11-
- main
9+
branches: [main, dev]
1210
types: [opened, synchronize, reopened]
1311

1412
push:

.github/workflows/6000.0.46f1_playmode.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@ name: 6000.0.46f1-playmode
22

33
on:
44
pull_request:
5-
branches:
6-
- main
5+
branches: [main, dev]
76
types: [opened, synchronize, reopened]
87

98
pull_request_target:
10-
branches:
11-
- main
9+
branches: [main, dev]
1210
types: [opened, synchronize, reopened]
1311

1412
push:

.github/workflows/6000.0.46f1_standalone.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@ name: 6000.0.46f1-standalone
22

33
on:
44
pull_request:
5-
branches:
6-
- main
5+
branches: [main, dev]
76
types: [opened, synchronize, reopened]
87

98
pull_request_target:
10-
branches:
11-
- main
9+
branches: [main, dev]
1210
types: [opened, synchronize, reopened]
1311

1412
push:

Assets/root/Documentation~/README.md

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
# Unity MCP (Server + Plugin)
1+
# Unity MCP (AI Connector)
22

33
[![openupm](https://img.shields.io/npm/v/com.ivanmurzak.unity.mcp?label=openupm&registry_uri=https://package.openupm.com)](https://openupm.com/packages/com.ivanmurzak.unity.mcp/) ![License](https://img.shields.io/github/license/IvanMurzak/Unity-MCP) [![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://stand-with-ukraine.pp.ua)
44

55
![image](https://github.com/user-attachments/assets/8f595879-a578-421a-a06d-8c194af874f7)
66

77
| Unity Version | Editmode | Playmode | Standalone |
88
|---------------|----------|----------|------------|
9-
| 2022.3.61f1 | ![2022.3.61f1](https://img.shields.io/github/actions/workflow/status/IvanMurzak/Unity-MCP/2022.3.61f1_editmode.yml?label=2022.3.61f1-editmode) | ![2022.3.61f1](https://img.shields.io/github/actions/workflow/status/IvanMurzak/Unity-MCP/2022.3.61f1_playmode.yml?label=2022.3.61f1-playmode) | ![2022.3.61f1](https://img.shields.io/github/actions/workflow/status/IvanMurzak/Unity-MCP/2022.3.61f1_standalone.yml?label=2022.3.61f1-standalone) |
10-
| 2023.2.20f1 | ![2023.2.20f1](https://img.shields.io/github/actions/workflow/status/IvanMurzak/Unity-MCP/2023.2.20f1_editmode.yml?label=2023.2.20f1-editmode) | ![2023.2.20f1](https://img.shields.io/github/actions/workflow/status/IvanMurzak/Unity-MCP/2023.2.20f1_playmode.yml?label=2023.2.20f1-playmode) | ![2023.2.20f1](https://img.shields.io/github/actions/workflow/status/IvanMurzak/Unity-MCP/2023.2.20f1_standalone.yml?label=2023.2.20f1-standalone) |
11-
| 6000.0.46f1 | ![6000.0.46f1](https://img.shields.io/github/actions/workflow/status/IvanMurzak/Unity-MCP/6000.0.46f1_editmode.yml?label=6000.0.46f1-editmode) | ![6000.0.46f1](https://img.shields.io/github/actions/workflow/status/IvanMurzak/Unity-MCP/6000.0.46f1_playmode.yml?label=6000.0.46f1-playmode) | ![6000.0.46f1](https://img.shields.io/github/actions/workflow/status/IvanMurzak/Unity-MCP/6000.0.46f1_standalone.yml?label=6000.0.46f1-standalone) |
9+
| 2022.3.61f1 | ![2022.3.61f1](https://img.shields.io/github/actions/workflow/status/IvanMurzak/Unity-MCP/2022.3.61f1_editmode.yml?label=2022.3.61f1-editmode&branch=main) | ![2022.3.61f1](https://img.shields.io/github/actions/workflow/status/IvanMurzak/Unity-MCP/2022.3.61f1_playmode.yml?label=2022.3.61f1-playmode&branch=main) | ![2022.3.61f1](https://img.shields.io/github/actions/workflow/status/IvanMurzak/Unity-MCP/2022.3.61f1_standalone.yml?label=2022.3.61f1-standalone&branch=main) |
10+
| 2023.2.20f1 | ![2023.2.20f1](https://img.shields.io/github/actions/workflow/status/IvanMurzak/Unity-MCP/2023.2.20f1_editmode.yml?label=2023.2.20f1-editmode&branch=main) | ![2023.2.20f1](https://img.shields.io/github/actions/workflow/status/IvanMurzak/Unity-MCP/2023.2.20f1_playmode.yml?label=2023.2.20f1-playmode&branch=main) | ![2023.2.20f1](https://img.shields.io/github/actions/workflow/status/IvanMurzak/Unity-MCP/2023.2.20f1_standalone.yml?label=2023.2.20f1-standalone&branch=main) |
11+
| 6000.0.46f1 | ![6000.0.46f1](https://img.shields.io/github/actions/workflow/status/IvanMurzak/Unity-MCP/6000.0.46f1_editmode.yml?label=6000.0.46f1-editmode&branch=main) | ![6000.0.46f1](https://img.shields.io/github/actions/workflow/status/IvanMurzak/Unity-MCP/6000.0.46f1_playmode.yml?label=6000.0.46f1-playmode&branch=main) | ![6000.0.46f1](https://img.shields.io/github/actions/workflow/status/IvanMurzak/Unity-MCP/6000.0.46f1_standalone.yml?label=6000.0.46f1-standalone&branch=main) |
1212

1313
**[Unity-MCP](https://github.com/IvanMurzak/Unity-MCP)** is a bridge between LLM and Unity. It exposes and explains to LLM Unity's tools. LLM understands the interface and utilizes the tools in the way a user asks.
1414

@@ -20,6 +20,13 @@ The system is extensible: you can define custom `tool`s directly in your Unity p
2020

2121
## AI Tools
2222

23+
Unity-MCP supports a wide range of tools. Each tool is a small connector between LLM and Unity Engine. You may create your own `tools` by using API, take a look at [add custom tool](#add-custom-tool).
24+
25+
Here is the list of default AI tools. All of them are available after installation Unity-MCP into your project.
26+
27+
> **Legend:**
28+
> ✅ = Implemented & available, 🔲 = Planned / Not yet implemented
29+
2330
<table>
2431
<tr>
2532
<td valign="top">
@@ -59,7 +66,7 @@ The system is extensible: you can define custom `tool`s directly in your Unity p
5966
- ✅ Add
6067
- ✅ Remove
6168
- ✅ Execute `MenuItem`
62-
- 🔲 Run Tests
69+
- Run Tests (see note in [running play mode tests](#running-playmode-tests))
6370

6471
#### Editor.Selection
6572

@@ -144,9 +151,6 @@ The system is extensible: you can define custom `tool`s directly in your Unity p
144151
</tr>
145152
</table>
146153

147-
> **Legend:**
148-
> ✅ = Implemented & available, 🔲 = Planned / Not yet implemented
149-
150154
# Installation
151155

152156
1. [Install .NET 9.0](https://dotnet.microsoft.com/en-us/download)
@@ -233,11 +237,16 @@ public class Tool_GameObject
233237

234238
> ⚠️ Not yet supported. The work is in progress
235239
240+
# Running PlayMode tests
241+
242+
To be able to run Play Mode tests via the TestRunner MCP tool, you should consider configuring Unity to **not** perform a domain reload when entering Play Mode (`Edit -> Project Settings -> Editor -> Enter Play Mode Settings` - set to `Reload Scene only` or `Do not reload Domain or Scene`). Otherwise, starting the Play Mode tests will interrupt the TestRunner MCP tool, leading to a cycle of tests restarting.
243+
236244

237245
# Contribution
238246

239-
Feel free to add new `tool` into the project.
247+
Feel free to add a new `tool` into the project.
240248

241249
1. Fork the project.
242-
2. Implement new `tool` in your forked repository.
243-
3. Create Pull Request into original [Unity-MCP](https://github.com/IvanMurzak/Unity-MCP) repository.
250+
2. Clone the fork and open the resulting folder in Unity.
251+
3. Implement the new `tool` in your forked repository.
252+
4. Create Pull Request into original [Unity-MCP](https://github.com/IvanMurzak/Unity-MCP) repository.

0 commit comments

Comments
 (0)