MCP Unreal Server
# 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 LicenseTDQS
Scored across 1 tool
With only one tool, there is no possibility of ambiguity or overlap between tools. The single tool has a clear, distinct purpose of executing Python code within Unreal.
With only one tool, naming consistency is inherently perfect. The tool name 'execute-python' follows a clear verb_noun pattern, and there are no other tools to create inconsistency.
A single tool is too few for a server named 'MCP Unreal Server', which suggests a broader scope related to Unreal Engine. This minimal toolset feels thin and inadequate for typical Unreal automation or interaction tasks.
The tool surface is severely incomplete for an Unreal server. It only provides Python execution, lacking essential operations like asset management, level editing, blueprint interaction, or any other common Unreal Engine workflows, leaving significant gaps.