Thank you for your interest in contributing! This document provides guidelines and instructions for contributing.
Please be respectful and constructive in all interactions. We're building something together.
- Node.js 18+
- Unreal Engine 5.0-5.7 (for live testing)
- Git
-
Fork and clone the repository:
git clone https://github.com/ChiR24/Unreal_mcp.git cd unreal-engine-mcp-server -
Install dependencies:
npm install
-
Build the project:
npm run build
-
Run smoke tests (no Unreal needed):
npm run test:smoke
Use descriptive branch names:
feat/add-new-tool- New featuresfix/connection-timeout- Bug fixesdocs/update-readme- Documentationrefactor/cleanup-bridge- Code refactoring
# Smoke test (CI-compatible, no Unreal needed)
npm run test:smoke
# Live tests (requires Unreal Editor running with plugin)
npm run test:allnpm run build # Full build (TypeScript)
npm run build:core # TypeScript only- ✅ Run
npm run lintand fix any issues - ✅ Run
npm run test:smoketo verify basic functionality - ✅ Update documentation if adding new features
- ✅ Update
CHANGELOG.mdunder[Unreleased]
We use Conventional Commits. PR titles must follow this format:
<type>: <description>
Examples:
feat: add new animation blending tool
fix: resolve WebSocket connection timeout
docs: update installation instructions
refactor: simplify blueprint graph handler
Types: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert
- All PRs require at least one approval
- CI must pass (lint, smoke test, CodeQL)
- Maintainers may request changes
- Use strict TypeScript (
strict: true) - Prefer
async/awaitover raw Promises - Use descriptive variable names
- Add JSDoc comments for public APIs
- Follow Unreal Engine coding standards
- Use
UPROPERTY/UFUNCTIONmacros appropriately - Keep thread safety in mind for async operations
src/
├── tools/ # MCP tool implementations
├── automation/ # Unreal bridge logic
├── utils/ # Shared utilities
└── services/ # Background services
Plugins/
└── McpAutomationBridge/ # C++ Unreal plugin
- Open a Discussion for questions
- Open an Issue for bugs or feature requests
Thank you for contributing! 🎮