Craftwire vs Unreal MCP Ue4
A side-by-side look at the Craftwire and Unreal MCP Ue4 MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Craftwire for gaming work as a local process; choose Unreal MCP Ue4 for gaming as a local process. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose Craftwire when
- You need dedicated capabilities in the Gaming domain.
- You prefer a local stdio subprocess transport.
- You want tools like
list_instances, get_request_status, wait_for.
Choose Unreal MCP Ue4 when
- You need dedicated capabilities in the Gaming domain.
- You prefer a local stdio subprocess transport.
- You want tools like
get_unreal_engine_path, get_unreal_project_path, get_unreal_version.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Gaming | Gaming |
| Quality signal | 63/100 · Good | 61/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | None listed | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 2 | 27 |
| Directory activity | 2 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 35 | 34 |
| Full listing | View Craftwire | View Unreal MCP Ue4 |
Tools & capabilities
Craftwire tools 35
list_instancesList connected Minecraft clients and servers (id, name, versions, tools added by plugins or mods). Call this first.get_request_statusStatus of a request sent with an operationId: unknown, running, done (with result) or failed (with error). Kept 5 minutes.wait_forWait until something happens (after the call). Events: chat_match, hud_match, screen_open, screen_closed, log_match, player_join {pattern}. Server, every tick: block, player_near, inventory, event, message, expr {js}. Returns what held and its value. Details: craftwire://docs/tools.player_stateLocal player: position, rotation, health, game mode, dimension, hotbar slot, inventory, crosshair target.hud_readRead the HUD as text: bossbars, actionbar, title, sidebar (lines as drawn), tab list (header, footer, players), belowName.gui_readDescribe the open screen: title, slots (item, count, name, lore), hovered tooltip, widgets. {open:false} when none is open.gui_actionAct on the open screen: hover/click/right_click/shift_click {slot}, drag {slot,toSlot}, click_widget {widget}, type {text}, close. Returns the new gui_read.inputGameplay input with no screen open: keys (forward, back, left, right, jump, sneak, sprint, attack, use, pick, drop, inventory, swap_hands, chat, command, ...) with mode press|hold|release; look adds yaw/pitch; hotbar 1-9.cameraMove the render camera, not the player: set, look_at {target}, frame_area {area}, frame_entity {entity}, freecam_on/off, reset; path {keyframes}/orbit {center,radius} play over time. Details: craftwire://docs/video.client_settingsRead or set guiScale, fov, renderDistance, hideHud, windowSize; no arguments only reads.screenshotCapture the game frame. hud/chat:false hide them; maxSize: long edge; savePath writes full size (.png/.jpg); camera: this shot only. layer gui|tooltip|gui+tooltip: transparent PNG of the open menu (craftwire://docs/gui-capture).recordRecord a video with sound through the user's ffmpeg. start {savePath, preset max|high|balanced|light, durationMs?, camera? (a camera tool path/orbit motion), wait?}; stop; status. layer gui|tooltip|gui+tooltip: transparent .mov/.webm. Details: craftwire://docs/video.- +23 more on the listing page
Unreal MCP Ue4 tools 34
get_unreal_engine_pathGet the active Unreal Engine root path from the connected editor sessionget_unreal_project_pathGet the active Unreal project file path from the connected editor sessionget_unreal_versionGet the active Unreal Engine version string from the connected editor sessioneditor_create_objectCreate a new object/actor in the world Example output: {'success': true, 'actor_name': 'StaticMeshActor_1', 'actor_label': 'MyCube', 'class': 'StaticMeshActor', 'location': {'x': 100.0, 'y': 200.0, 'z': 0.0}, 'rotation': {'pitch': 0.0, 'yaw': 45.0, 'roll': 0.0}, 'scale': {'x': 1.0, 'y': 1.0, 'z': 1.0}} Returns created actor details with final transform values.editor_update_objectUpdate an existing object/actor in the world Example output: {'success': true, 'actor_name': 'StaticMeshActor_1', 'actor_label': 'UpdatedCube', 'class': 'StaticMeshActor', 'location': {'x': 150.0, 'y': 200.0, 'z': 50.0}, 'rotation': {'pitch': 0.0, 'yaw': 90.0, 'roll': 0.0}, 'scale': {'x': 2.0, 'y': 2.0, 'z': 2.0}} Returns updated actor details with new transform values.editor_delete_objectDelete an object/actor from the world Example output: {'success': true, 'message': 'Successfully deleted actor: MyCube', 'deleted_actor': {'actor_name': 'StaticMeshActor_1', 'actor_label': 'MyCube', 'class': 'StaticMeshActor', 'location': {'x': 100.0, 'y': 200.0, 'z': 0.0}}} Returns deletion confirmation with details of the deleted actor.manage_assetAsset tool namespace for listing, searching, inspecting, exporting, validating, duplicating, renaming, moving, deleting, saving, and folder-management actions.manage_actorActor tool namespace for listing, searching, spawning, deleting, transforming, and inspecting level actors.manage_editorEditor tool namespace for run_python, console_command, project_info, map_info, world_outliner, is_pie_running, start_pie, stop_pie, screenshot, and move_camera actions.manage_systemSystem tool namespace for console commands and asset validation actions.manage_inspectionInspection tool namespace for asset, actor, map, and basic Blueprint summary actions.manage_toolsTool-namespace registry for listing registered tool namespaces and describing supported actions. Use this as the discovery entry point for the namespace-first MCP surface.- +22 more on the listing page
Ready-to-paste client configs
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
Craftwire
{
"mcpServers": {
"craftwire": {
"command": "npx",
"args": [
"-y",
"craftwire"
]
}
}
}
Unreal MCP Ue4
{
"mcpServers": {
"unreal-mcp-ue4": {
"command": "npx",
"args": [
"-y",
"unreal-mcp-ue4"
]
}
}
}
Frequently asked questions
Craftwire is categorized under Gaming and uses a local stdio subprocess. Unreal MCP Ue4 belongs to Gaming and uses a local stdio subprocess. Pick Craftwire for gaming work and Unreal MCP Ue4 for gaming.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.
Craftwire has no declared pricing — check the project's own site. Unreal MCP Ue4 has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add craftwire and unreal-mcp-ue4 as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, Craftwire has a quality signal of 63/100 (Good) with 2 views, 0 installs and 2 GitHub stars. Unreal MCP Ue4 has 61/100 (Good) with 1 views, 0 installs and 27 GitHub stars.