Skip to content

Commit b79f156

Browse files
committed
Remove legacy MCP/ folder and update all references
- Delete MCP/ directory (replaced by unrealmcp/ pip package) - Update README: architecture, file structure, install steps, custom tools - Update CONTRIBUTING.md: development setup with pip install -e ., testing workflow, adding new tools, running linter and CI locally - Update CI: remove MCP/ lint and import checks - Single source of truth is now unrealmcp/ package
1 parent 137ff55 commit b79f156

21 files changed

Lines changed: 100 additions & 2986 deletions

.github/workflows/ci.yml

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,6 @@ jobs:
2727
python -m pip install --upgrade pip
2828
pip install ruff
2929
30-
- name: Lint MCP/ (legacy standalone server)
31-
run: |
32-
ruff check MCP/ --select=E,F,W --ignore=E501,F401
33-
3430
- name: Lint unrealmcp/ (pip package)
3531
run: |
3632
ruff check unrealmcp/ --select=E,F,W --ignore=E501,F401
@@ -75,16 +71,6 @@ jobs:
7571
which unrealmcp
7672
unrealmcp --help || true
7773
78-
- name: Check MCP/ standalone still imports
79-
run: |
80-
cd MCP
81-
python -c "
82-
import sys, os
83-
sys.path.insert(0, os.getcwd())
84-
import _bridge
85-
print(' MCP/ standalone bridge OK')
86-
"
87-
8874
- name: Verify plugin descriptor is valid JSON
8975
run: |
9076
python -c "

CONTRIBUTING.md

Lines changed: 86 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,75 @@ Found a bug or have a feature request? [Open an issue](https://github.com/aadesh
99
- **Bug reports**: Steps to reproduce, expected vs actual behavior, UE version, and OS
1010
- **Feature requests**: What you'd like to see and why it would be useful
1111

12-
## Pull Requests
12+
## Development Setup
13+
14+
### Prerequisites
15+
16+
- Unreal Engine 5.7 (or the version you want to test against)
17+
- Python 3.10+
18+
- Git
19+
20+
### Getting Started
21+
22+
1. **Fork and clone** the repository:
23+
```bash
24+
git clone https://github.com/YOUR_USERNAME/Unreal-MCP.git
25+
cd Unreal-MCP
26+
```
27+
28+
2. **Install in editable mode** — this is the key step:
29+
```bash
30+
pip install -e .
31+
```
32+
This links the `unrealmcp` command to your local source files. Any changes you make to Python files take effect immediately — no need to reinstall or rebuild.
33+
34+
3. **Copy or symlink the plugin** into a UE project's `Plugins/` folder so you can test the C++ bridge.
35+
36+
4. **Open the UE project**, check the Output Log for `MCP Bridge initialized on port XXXXX`.
37+
38+
5. **Configure your AI tool** to use `"command": "unrealmcp"` (see [README](README.md#step-2-run-the-setup-script) or run `install.bat`/`install.sh`).
39+
40+
### Testing Your Changes
41+
42+
Since you installed with `pip install -e .`, edits to any file in `unrealmcp/` are live instantly:
1343

14-
Want to contribute code? Great! Here's the workflow:
44+
- **Edit** a file in `unrealmcp/tools/` (e.g., add a new tool or fix a bug)
45+
- **Restart** your AI tool (so it reconnects to the MCP server)
46+
- **Test** the change — no reinstall needed
47+
48+
For C++ changes, you'll need to rebuild the plugin through your IDE (Rider, Visual Studio, etc.) and restart the editor.
49+
50+
### Running the Linter
51+
52+
```bash
53+
pip install ruff
54+
ruff check unrealmcp/ --select=E,F,W --ignore=E501,F401
55+
```
56+
57+
### Running the CI Tests Locally
58+
59+
```bash
60+
# Install and verify
61+
pip install -e .
62+
python -c "import unrealmcp; print(unrealmcp.__version__)"
63+
64+
# Check all tool modules import
65+
python -c "
66+
from unrealmcp._bridge import mcp
67+
from unrealmcp.tools import core, assets, blueprints, materials
68+
print('All imports OK')
69+
"
70+
```
71+
72+
## Pull Requests
1573

1674
1. **Fork** the repository
1775
2. **Create a branch** from `main` (`git checkout -b my-feature`)
18-
3. **Make your changes** — keep commits focused and well-described
19-
4. **Test** your changes with a running UE5 editor
20-
5. **Open a Pull Request** against `main`
76+
3. **Install in editable mode** (`pip install -e .`)
77+
4. **Make your changes** — keep commits focused and well-described
78+
5. **Test** your changes with a running UE5 editor
79+
6. **Run the linter** (`ruff check unrealmcp/`)
80+
7. **Open a Pull Request** against `main`
2181

2282
### Guidelines
2383

@@ -29,13 +89,31 @@ Want to contribute code? Great! Here's the workflow:
2989

3090
### Adding New Tools
3191

32-
See the [Adding Custom Tools](README.md#adding-custom-tools) section in the README for the pattern. In short:
92+
1. Create a new file in `unrealmcp/tools/` (or add to an existing one):
93+
```python
94+
from unrealmcp._bridge import mcp
95+
from unrealmcp._tcp_bridge import _call
96+
97+
@mcp.tool()
98+
def my_custom_tool(param1: str, param2: int = 10) -> str:
99+
"""Description shown to the AI assistant."""
100+
return _call("my_custom_command", {
101+
"param1": param1,
102+
"param2": param2,
103+
})
104+
```
105+
106+
2. Register it in `unrealmcp/tools/__init__.py`:
107+
```python
108+
from unrealmcp.tools import my_tools # noqa: F401
109+
```
33110

34-
1. Add a Python tool function in `MCP/tools/`
35-
2. Register it in `MCP/tools/__init__.py`
36111
3. Add the C++ command handler in `Source/UnrealMCPBridge/Private/Commands/`
112+
37113
4. Wire it up in `ExecuteCommand()`
38114

115+
Since you're in editable mode, the new tool is available as soon as you restart your AI tool — no pip install needed.
116+
39117
### What Makes a Good Contribution
40118

41119
- Bug fixes with clear reproduction steps

MCP/_bridge.py

Lines changed: 0 additions & 60 deletions
This file was deleted.

0 commit comments

Comments
 (0)