90 lines
2.6 KiB
Markdown
90 lines
2.6 KiB
Markdown
# MCP for Unity - Developer Guide
|
|
|
|
| [English](README-DEV.md) | [简体中文](README-DEV-zh.md) |
|
|
|---------------------------|------------------------------|
|
|
|
|
## Contributing
|
|
|
|
**Branch off `beta`** to create PRs. The `main` branch is reserved for stable releases.
|
|
|
|
Before proposing major new features, please reach out to discuss - someone may already be working on it or it may have been considered previously. Open an issue or discussion to coordinate.
|
|
|
|
## Local Development Setup
|
|
|
|
### 1. Point Unity to Your Local Server
|
|
|
|
For the fastest iteration when working on the Python server:
|
|
|
|
1. Open Unity and go to **Window > MCP for Unity**
|
|
2. Open **Settings > Advanced Settings**
|
|
3. Set **Server Source Override** to your local `Server/` directory path
|
|
4. Enable **Dev Mode (Force fresh server install)** - this adds `--refresh` to uvx commands so your changes are picked up on every server start
|
|
|
|
### 2. Switch Package Sources
|
|
|
|
You may want to use the `mcp_source.py` script to quickly switch your Unity project between different MCP package sources [allows you to quickly point your personal project to your local or remote unity-mcp repo, or the live upstream (Coplay) versions of the unity-mcp package]:
|
|
|
|
```bash
|
|
python mcp_source.py
|
|
```
|
|
|
|
Options:
|
|
1. **Upstream main** - stable release (CoplayDev/unity-mcp)
|
|
2. **Upstream beta** - development branch (CoplayDev/unity-mcp#beta)
|
|
3. **Remote branch** - your fork's current branch
|
|
4. **Local workspace** - file: URL to your local MCPForUnity folder
|
|
|
|
After switching, open Package Manager in Unity and Refresh to re-resolve packages.
|
|
|
|
## Running Tests
|
|
|
|
All major new features (and some minor ones) must include test coverage. It's so easy to get LLMs to write tests, ya gotta do
|
|
|
|
### Python Tests
|
|
|
|
Located in `Server/tests/`:
|
|
|
|
```bash
|
|
cd Server
|
|
uv run pytest tests/ -v
|
|
```
|
|
|
|
### Unity C# Tests
|
|
|
|
Located in `TestProjects/UnityMCPTests/Assets/Tests/`.
|
|
|
|
**Using the CLI** (requires Unity running with MCP bridge connected):
|
|
|
|
```bash
|
|
cd Server
|
|
|
|
# Run EditMode tests (default)
|
|
uv run python -m cli.main editor tests
|
|
|
|
# Run PlayMode tests
|
|
uv run python -m cli.main editor tests --mode PlayMode
|
|
|
|
# Run async and poll for results (useful for long test runs)
|
|
uv run python -m cli.main editor tests --async
|
|
uv run python -m cli.main editor poll-test <job_id> --wait 60
|
|
|
|
# Show only failed tests
|
|
uv run python -m cli.main editor tests --failed-only
|
|
```
|
|
|
|
**Using MCP tools directly** (from any MCP client):
|
|
|
|
```
|
|
run_tests(mode="EditMode")
|
|
get_test_job(job_id="<id>", wait_timeout=60)
|
|
```
|
|
|
|
### Code Coverage
|
|
|
|
```bash
|
|
cd Server
|
|
uv run pytest tests/ --cov --cov-report=html
|
|
open htmlcov/index.html
|
|
```
|
|
|