MCP Unreal Server
by radial-hks
Verified
# MCP Unreal Server
A server implementation for interacting with Unreal Engine instances through remote Python execution.
## Features
- 🚀 **Unreal Instance Management**
- Automatic discovery of Unreal nodes via multicast
- Real-time node status monitoring
- Resource listing through LSP-compatible clients
- 💻 **Remote Execution**
- Execute Python code in Unreal Engine environments
- Support for both attended and unattended execution modes
- File execution and statement evaluation modes
- 📊 **Logging & Monitoring**
- Detailed logging to file (`mcp_unreal.log`)
- Console logging with different verbosity levels
- Node connection health monitoring
## Installation
```bash
# Clone repository
git clone https://github.com/your-org/mcp-unreal-server.git
cd mcp-unreal-server
# Install dependencies
pip install -r requirements.txt
```
## Configuration
### Network Settings
Configure multicast parameters in `RemoteExecutionConfig`:
```python
# Default multicast settings (modify in server.py)
config.multicast_group_endpoint = ("239.0.0.1", 6766)
```
### Logging
Modify logging configuration in `server.py`:
```python
# Adjust log levels
file_handler.setLevel(logging.DEBUG) # File logging
console_handler.setLevel(logging.INFO) # Console logging
```
## Usage
### Starting the Server
```bash
python -m src.mcp_server_unreal.server
```
### Supported Tools
1. **Connect to Unreal Instance**
```json
{
"host": "239.0.0.1",
"port": 6766
}
```
2. **Execute Python Code**
```json
{
"node_id": "<unreal-node-id>",
"code": "print('Hello Unreal')",
"unattended": true
}
```
## API Documentation
### Resource Format
```python
types.Resource(
uri="unreal://<node_id>",
name=f"Unreal Instance: {node_id}",
description="Unreal Engine instance",
mimeType="application/x-unreal"
)
```
### Execution Modes
| Mode | Description |
|----------------------|---------------------------------|
| MODE_EXEC_FILE | Execute Python file |
| MODE_EXEC_STATEMENT | Execute Python statement |
| MODE_EVAL_STATEMENT | Evaluate Python expression |
## Troubleshooting
**Common Issues:**
- No nodes discovered: Verify Unreal instances are running with MCP plugin
- Execution timeout: Check firewall settings for multicast traffic
- Connection drops: Monitor `mcp_unreal.log` for node status changes
## License
Apache-2.0 License