SkillAgentSearch skills...

pinwright-ue

Unreal Editor MCP server for AI coding agents

Install / Use

claude mcp add PinWright -- npx -y github:PinWright/pinwright-ue

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

69/100

Supported Platforms

Claude Code
Claude Desktop

Our assessment of pinwright-ue

pinwright-ue scores 69/100 on our quality scale, 899th of 964 AI & Machine Learning skills we index.

Its MCP Server is 158 KB long, well organised into 16 sections with 8 code examples: long enough that it reads more like full documentation than a focused instruction file, which agents can find harder to follow.

It has 10 GitHub stars, so there is little community track record yet; judge it on its content.

Substance
21/30
Structure
20/20
Description
8/15
Adoption
4/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated 4 days ago, so pinwright-ue is actively maintained.
  • It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 92/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

pinwright-ue compared with similar skills

All 4 of these similar skills score higher than pinwright-ue; compare them before choosing.

SkillScoreStarsUpdatedFormat
pinwright-ue (this skill)by PinWright69104d agoMCP Server
claude-memby thedotmack100100.4ktodayCLAUDE.md
Agent-Reachby Panniantong10097.0k5d agoCLAUDE.md
Understand-Anythingby Egonex-AI10086.2k1d agoCLAUDE.md
headroomby headroomlabs-ai10075.2ktodayCLAUDE.md

Frequently asked questions

How do I install pinwright-ue?
Run claude mcp add PinWright -- npx -y github:PinWright/pinwright-ue. The install tabs above show the steps for each supported agent.
Which AI agents does pinwright-ue work with?
It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
Is pinwright-ue safe to use?
It is MIT-licensed and scores 92/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is pinwright-ue still maintained?
The repository was last updated 4 days ago, so pinwright-ue is actively maintained.
<p align="center"><img src="./assets/readme/hero-requests.svg" width="100%" alt="PinWright, an MCP server inside the Unreal Editor for AI coding agents. Things you can ask your agent to do: build the settings menu from this mockup; make a forest level with a river and a cabin; why did the HUD go blank in the last playtest"></p>

Describe what you want in plain language and your AI coding assistant does it in the Unreal Editor: builds Blueprints, edits the ones you already have, lays out UMG screens, creates assets, generates levels, runs tests. PinWright is an editor plugin that runs a local MCP server and connects the assistant you already use (Claude Code, Codex, Cursor, Gemini CLI, VS Code Copilot, or any other MCP client) to the editor itself. If you use one of these, you have everything you need: PinWright needs no subscription, API key or credits of its own and works through the AI plan you already pay for.

Install

Open your AI coding assistant (Claude Code, Codex CLI, Cursor in agent mode, Gemini CLI, Cline) in your Unreal project's folder and give it this prompt. Give it the same prompt again later to update. To install by hand, see Install it yourself.

Install PinWright into this Unreal project and connect yourself to it by following https://github.com/PinWright/pinwright-ue/blob/master/AGENT_INSTALL.md

How it compares

PinWright fully supports more features than any other Unreal MCP tool. Each product was graded on 341 features from its own source code (full matrix with evidence; graded 2026-09-28, PinWright re-checked 2026-10-03):

| | Yes | Partial | No | |---|---:|---:|---:| | PinWright | 224 | 87 | 30 | | ue-mcp | 177 | 115 | 49 | | Monolith | 110 | 151 | 79 | | ChiR24 Unreal_mcp | 100 | 132 | 109 | | Epic UE 5.8 MCP | 73 | 124 | 142 | | VibeUE | 59 | 188 | 94 |

What you can ask for

Talk to your agent about the game, and it works in the editor you have open:

  • "Build the settings menu from this mockup." It authors the widget tree, styles and bindings in UMG, and you see the result in the designer.
  • "Make a forest level with a river and a cabin." Landscape, foliage, sky and props, placed by measurement rather than guessed coordinates. The video below is one such level.
  • "Create a jump pad Blueprint that launches the character upward on overlap." Gameplay logic from a sentence, compiled and ready to place.
  • "Find every Blueprint that still reads the old Health variable and fix them." It dumps the project to text, greps it, edits the graphs and compiles them.
  • "The door in the lobby does not open when the player walks up to it. Find out why and fix it." The agent starts Play-In-Editor, sends input to reproduce the bug, reads live game state and logs, fixes the Blueprint or C++, rebuilds, and plays again to confirm the fix.
  • "Why did the HUD go blank in the last playtest?" It queries the recorded Play-In-Editor session (gameplay data needs instrumentation in your project).
  • "Model a spur gear and a chess rook for the workshop scene." Both become Static Mesh assets from short text recipes; the same recipes ship as examples.
  • "Set up sunset lighting: directional light, sky atmosphere, height fog, warm color grading." Placed and tuned in the open level.

Example: a level from one prompt

Landscape, foliage, sky and placed props, generated by an agent through PinWright's level-generation namespaces from a single prompt. The video is the unedited result.

<p align="center"><a href="https://www.youtube.com/watch?v=XI2VqS1dJJ4"><img src="https://img.youtube.com/vi/XI2VqS1dJJ4/maxresdefault.jpg" width="100%" alt="Video: an AI agent with PinWright built this Unreal Engine level from one prompt"></a></p>

What it is

An editor-only Unreal Engine plugin that speaks MCP (Model Context Protocol) on a loopback port. The assistant reads your project first, makes the change, compiles, and shows you the result. It also keeps everything it could already do on its own, including writing your C++ and rebuilding it through Unreal Build Tool; PinWright adds the editor side on top. We use it daily on a commercial UE5 title. It is strongest at inspecting and dumping a project, authoring Blueprints and UMG widgets, creating data assets, and recording Play-In-Editor sessions. It also generates meshes, skeletons and animation from text recipes, builds levels (terrain, foliage, sky, precise placement), and authors materials and Niagara systems. 1,309 operations across 68 namespaces, developed against 5,839 automated tests.

Quick start

Install it yourself

  1. Get the plugin. Download the prebuilt zip for your engine version from Releases (Windows), install from Fab through the Epic Launcher, or clone this repository and build it (Windows and Linux). All three are the same code under MIT:

    git clone https://github.com/PinWright/pinwright-ue.git <Project>/Plugins/PinWright
    

    If you cloned it elsewhere, move the PinWright folder into your project's Plugins directory or the engine's.

  2. Build and open. Regenerate project files if your project is a C++ source checkout, build the editor target if Unreal asks for a rebuild, then open the editor and confirm the plugin under Editor Preferences -> Plugins -> PinWright.

  3. Click Install for your agent. The PinWright Setup screen opens on startup (Tools -> PinWright Setup reopens it). One click writes that agent's project-local MCP config with the endpoint and token already filled in, so there is no file to edit and no port to look up.

    <p align="center"><img src="./assets/readme/setup-screen.png" width="100%" alt="The PinWright Setup tab in the Unreal Editor: server listening on a loopback endpoint, Install buttons for Claude Code, Codex CLI, Cursor, Gemini CLI and VS Code Copilot, and a copyable agent setup prompt"></p>
  4. Ask for something small. For example: "Dump /Game/UI to text, then tell me which widget bindings point at variables that no longer exist."

Features

| Area | What it does | Maturity | | --- | --- | --- | | Project inspection and dumps | Inspect assets, query dependencies, import, rename and organize; dump any asset or folder to readable text for review and accurate agent context | Core | | Graph text IRs | Round-trip for Blueprint (BPIR), material (MGIR), animation Blueprint (AGIR), Control Rig (CRIR); decompile-to-text for behavior tree, sound cue, MetaSound, Niagara, PCG | Core | | Blueprints and data assets | Create and edit classes, variables, functions, events and graphs; compile and decompile; author Data Tables and other data assets | Core | | Widgets (UMG) | Author the widget tree, styles, bindings and animations; export and import as XML | Core | | Actors, levels and system operations | Spawn actors, edit transforms, manage levels, inspect world state, read logs, run editor commands and build or test helpers | Core | | Playtesting and bug fixing | Start Play-In-Editor, send input, read live game state and logs; an agent can reproduce a bug, fix it, rebuild, and play again to verify the fix | Core | | Session recorder | Record a Play-In-Editor session and query it to debug what happened (needs small documented C++ hooks in your game for gameplay values) | Core | | Model generation | .pwmodel text recipes of geometry operations compile into Static Mesh assets, with materials, collision and UVs; live modeling helpers on placed meshes (geometry, model) | Core | | Skeleton and animation generation | .pwskel defines skeletons, skin weights, sockets and physics assets; .pwanim compiles animation clips; helpers for montages, blend spaces, IK and retargeting (skeleton, animation, anim) | Core | | Level generation | Landscape terrain (grid spawn, sculpting, noise seeding), foliage, sky, fog and time of day, plus spatial reasoning: raycasts, surface placement and annotated captures so the agent places things by measurement (landscape, environment, foliage, spatial) | Core | | Materials and Niagara | Material graph authoring through MGIR; Niagara system and emitter editing | Core |

<!-- namespaces:begin --> <details> <summary><strong>All 67 public namespaces (1308 operations)</strong></summary>

Every operation is documented in the in-editor wiki; the agent reads call("<namespace>") for any of these.

Not listed: internal plumbing namespaces, not intended for direct use - pipeline (1 operation).

Project & assets

<details> <summary><code>asset</code>: Operate on /Game/... content packages - discover, load, dump, import, rename/move, delete, and read dependencies (40 operations, Core)</summary>

| Operation | What it does | | --- | --- | | asset.bulk_delete | Delete many assets in a single call. | | asset.bulk_rename | Apply prefix/suffix/search-replace transformations to many asset names in one call. | | asset.create_folder | Create a folder in the content browser | | asset.delete | Delete one or more assets or whole content folders. | | asset.dependencies | Get assets that reference this asset (inbound referencers). | | asset.dump | Dump an asset's full inspectable state to disk as separate text files. | | asset.dump_folder | Start an async dump of every asset under a content folder. | | asset.duplicate | Duplicate an asset or folder | | asset.exists | PIE-safe existence probe via the asset registry, loaded objects, and mounted package files. | | asset.find_by_tag | Search the asset registry for assets whose UMetaData contains a given tag, optionally filtered by tag value. | | asset.find_objects_by_tag | Find actors and components in the world by tag | | asset.fixup_redirectors | Walk redirectors left behind by asset.rename / asset.move. | | asset.generate_lods | Auto-generate UE's standard LOD chain for one or more StaticMesh assets using the default reduction settings. | | asset.generate_thumbnail | Render an asset's thumbnail offscreen and optionally write it to disk. | | asset.get | Read summary metadata (name, class, package, asset registry tags) for one asset by path. | | asset.get_asset_graph | Get asset dependency graph via BFS traversal | | asset.get_dependencies | Return assets that the given asset directly hard-references (Hard package dependencies). | | asset.get_dependencies_classified | Get classified asset dependencies with mode and role filtering | | asset.get_material_stats | Get a material's compiled shader statistics. | | asset.get_metadata | Read all UMetaData key/value entries plus class-derived tags for one asset. | | asset.import | Import a file from the local filesystem into the content browser using the matching UFactory. | | asset.is_dirty | Read whether ONE loaded package currently needs saving. | | asset.list | Browse a FOLDER: assets plus subfolders under one package path, with filtering and pagination. | | asset.list_material_instances | List material instances that use a given parent material | | asset.map_references | Return soft-UWorld UPROPERTY references for a single loaded asset, matching map_references.json from asset.dump. | | asset.mark_dirty | Mark ONE loaded package dirty without writing anything to disk. | | asset.move | Move an asset to a different folder and leave a redirector at the old path. | | asset.nanite_rebuild_mesh | Toggle Nanite and/or rebuild its data for a StaticMesh. | | asset.references | Get both directions for one asset. | | asset.reload | Force-evict a loaded asset package and re-read it from disk within the current editor session. | | asset.rename | Rename an asset and create a redirector at the old path so existing references keep resolving. | | asset.reset_instance_parameters | Reset all parameter overrides on a material instance | | asset.save | Persist ONE loaded asset

Truncated for display — read the full file on GitHub.

Related Skills

View on GitHub
GitHub Stars10
CategoryAI
Updated4d ago
Forks0

Languages

C++

Trust signals

92/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 low1 info