Islands
Ship a playable Fortnite island — not a chat log about Verse.
Editor on your machine · Verse in the cloud
Spawn Fortnite devices and props, place actors, screenshot the viewport, play in creator, and edit the scene graph in the real UEFN editor on your machine. Verse docs and API search come with the same install. Compile and verify Verse scripts without UEFN open.
What you make
A Fortnite creator sees islands, devices, and play first — not a hosted API.
Ship a playable Fortnite island — not a chat log about Verse.
Place the devices that make the loop: buttons, zones, spawners, scoring.
Spawn from the Fortnite / UEFN library and dress the space your players run.
Edit transforms, properties, and the scene graph like you are in the viewport.
On your machine
Spawn, place, screenshot, play, compile, and edit the scene — in the real editor on your machine.
Pull props and actors from the Fortnite / UE library and drop them on the island.
Drop the devices that make the loop: buttons, zones, spawners, scoring.
Capture what the viewport sees — the island view only, not the editor chrome — so the agent can look before it edits.
See the full editor desktop — Slate chrome, menus, outliner — then click, type, and drag. Distinct from viewport-only screenshots.
Start Play in Creator on your machine and watch the island run.
Check Verse against the real compiler from any client — pass or fail with line numbers, not a guess — and run full builds on the box that has the editor.
Edit transforms, properties, and the scene graph like you are in the viewport.
Anywhere
Compile and verify Verse scripts without UEFN open. Use it from Claude or Codex in the cloud, and from a phone or iPad, anywhere. Audio tools and Studio skills use the same sign-in. Connect Claude, ChatGPT, Codex, or Grok.
Install
Install uefn-mcp once with one PowerShell command. Your agent registers one server. It drives the editor on your machine and looks up Verse at HOSTED_MCP_URL. Source: github.com/BizaNator/uefn-mcp.
One PowerShell command on the Windows box that has UEFN. Source: BizaNator/uefn-mcp. Do not add a second MCP server.
Run the installer
If the client repo is private, the script uses gh or git with your existing GitHub login. The installer writes CONNECT.md and does not dump mcpServers JSON unless you pass -VerbosePaste.
irm https://uefnmcp.com/install.ps1 | iex
Paste this to your agent
One line. The installer writes the full brief to CONNECT.md (and UEFN-MCP-CONNECT.md on the island when the project is known). That file tells the agent to ASK THE HUMAN for the folder that contains the .uefnproject if needed, verify already-written .mcp.json, and run setup.ps1 so Content\Python is armed. One server only. A portal key is not required.
Read %LOCALAPPDATA%\uefn-mcp\CONNECT.md and configure UEFN-MCP according to those instructions. In every new session, call list_toolsets and enable_toolset(...) for any group the task needs that is not already listed.
CONNECT.md
The brief on disk tells the agent to verify already-written .mcp.json — do not hand-author. HOSTED_MCP_URL defaults to the hosted grounding endpoint. -VerbosePaste still prints the old mcpServers dump.
{
"mcpServers": {
"uefn-mcp": {
"command": "node",
"args": [
"<path printed by the installer>\\index.js",
"--stdio"
],
"env": {
"HOSTED_MCP_URL": "https://uefnmcp.com/mcp",
"UEFN_PROJECT_PATH": "<absolute project folder — contains the .uefnproject>",
"UEFN_PROJECT_ROOT": "<absolute Content/Verse or Plugins/<Plugin>/Content/Verse>"
}
}
}
}
Toolsets
Setup lists the verse, scene, session and ui toolsets by default (UEFN_MCP_TOOLSETS=verse,scene,session,ui), and run_editor_python is always in core. call_epic_mcp reaches Epic's built-in UEFN MCP, which setup starts automatically. For anything else (audio, materials, fab, performance and more), the agent calls list_toolsets, then enable_toolset(...) before the task. That repeats in each new session, LAN sessions included. Codex is set to UEFN_MCP_TOOLSETS=all because it may not refresh its tool list after a change.
Driving the editor from another machine? See Remote control over LAN or VPN.
Something not connecting? Tell your agent to call get_skill('uefn-mcp-connectivity') first. It explains the three layers (client tools on the editor PC, uefnmcp.com, and Epic's UEFN MCP) and walks a fix for each, with children for install (uefn-mcp-install), Claude and Codex plus panels (uefn-mcp-clients), LAN or Tailscale (uefn-mcp-network), and a relay game-thread timeout (uefn-editor-dialogs).
Agent playbooks: get_skill('uefn-tool-contracts') maps each job to the exact tool (client, cloud, call_epic_mcp, call_unreal_mcp) and lists what can be created today versus the object types that still cannot. get_skill('verse-change-workflow') runs an intent check, a plan, compile_check and a two-part review before code is called done. get_skill('verse-dependency-audit') maps Verse dependencies with the local graph toolset (enable_toolset('graph')) before a delete, move, or rename. get_skill('uefn-performance-audit') measures Memory Calculation. A cook that fails because GameFeatureSet delmargfs is unavailable is the same skill: explain the error and follow the bug report. get_skill('uefn-memory-reduction') is the child for lowering that bar (instanced static meshes, a zone spawner, a building shell, a lazy device editable). A Lore check-in crash or packstore read error is get_skill('uefn-p4').
Hosted grounding signs in via browser OAuth on first use. Portal keys (uefn_sk_*) are optional — CI and overrides only. CI / override keys. Already installed? Update.
FAQ
Update the desktop client, then reconnect MCP.
Pull the latest client into %LOCALAPPDATA%\uefn-mcp. Then reconnect or reload MCP in your agent.
iex "& { $(irm https://uefnmcp.com/install.ps1) } -UpdateOnly"
After Computer-Use bridge changes, also re-run setup.ps1 against the island and relaunch UEFN so :8766 is replaced.
Already in a checkout? From that folder run npm run update or install.ps1 -UpdateOnly.
The updater refuses a dirty tree, a detached HEAD, the wrong branch, or local commits ahead of origin. A refused update exits nonzero and preserves HEAD and files. Do not treat that divergence as an authentication failure. Do not run gh repo sync ..
Included
Docs, API search, audio tools, and Studio skills. Same client — not a second setup.