ReversePort
Provides reverse engineering support for Android targets, including APK/app decompilation through JADX, symbol analysis, and cross-referencing of code and project structure.
Supports reverse engineering Electron/JavaScript desktop apps, including dependency graphs, symbols, and decompilation workflows for Electron-based targets.
Analyzes JavaScript and TypeScript projects and Electron/JavaScript targets, including dependency graphs, symbols, and monorepo resolution without a build step.
Resolves Lerna JavaScript/TypeScript monorepos, enabling dependency graph and symbol analysis for projects managed with Lerna.
Supports managed .NET targets, including decompilation and cross-referencing of native and managed code.
Resolves pnpm JavaScript/TypeScript monorepos, enabling dependency graph and symbol analysis without a build step.
Resolves Rust workspaces and supports Rust symbols and dependency analysis as a reverse-engineering target.
Ports Godot projects to three.js, converting scenes and transforms and supporting agent-driven code porting with verification.
Resolves Turborepo JavaScript/TypeScript monorepos, enabling dependency graph and symbol analysis for Turborepo-managed projects.
Resolves TypeScript/JavaScript monorepos and tsconfig paths, enabling dependency graph and symbol analysis for TypeScript targets.
Ports Godot projects to Unity, converting scenes and transforms, porting code with API maps, and verifying parity with port_verify.
Provides reverse engineering for WebAssembly targets, including decompilation and cross-referencing in browser and Electron contexts.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
ReversePort
Reverse engineer anything. Port it anywhere.
One CLI and one MCP server that let your coding agent take apart apps, games, binaries and websites — and rebuild them.
npx reverseport setupA real run on Godot's 2D platformer demo, JSON trimmed to the key fields.
Website · Quick start · Every agent · Skills · What it does · How it compares · FAQ · Changelog · Docs
See a feature you like in an app or a game? Ask your agent how it works — down to the decompiled function — and then ask it to build your own version. Have a game in Godot and want it in Unity? Ask your agent to port it, unit by unit, verified. No files at all? Give it a name or a store page.
ReversePort gives agents one consistent way to do all of that:
🔍 Understand anything — engine and version of any project or exported game, dependency graphs, scenes, symbols in 30+ languages, executables, packs and unknown data. JS/TS monorepos (pnpm, Turborepo, Nx, Lerna, Rush, tsconfig paths) and Rust workspaces resolve too. No build step, no dependencies.
🧠 Go deep — decompile, cross-reference and trace native, managed (.NET), Android, Electron/JavaScript, WebAssembly, firmware and browser targets through Ghidra, Hopper, IDA, JADX and more. ReversePort connects to the tools you have installed, drives them and shows the evidence behind every conclusion.
🌐 No files? Still recon — a name, a store page, a website or a public repo is enough to learn the engine, stack, file layout and open-source remakes from public sources.
🧩 Rebuild precisely — turn what you learned into a clean-room rebuild spec: every system, the parameters to measure on the original, a parity table and a project skeleton with every value as a tunable.
🚚 Port for real — Godot ⇄ Unity, Godot → Unreal, Godot → three.js, GDScript → C#, or language to language. Scenes and transforms convert automatically; code is ported by your agent with API maps;
port_verifyproves nothing was left behind.🔒 Local — runs on your machine. Targets are only read; output goes to new folders. Nothing is uploaded to an analysis service and there is no extra API bill.
Quick start
1. Connect your agent
With Node.js 22.23.4 or newer (24.22.1+ on Node 24):
npx reverseport setupPick your agents, review the changes and approve. Setup registers one MCP server and installs the matching skill, with backups of existing configuration. Restart your agent afterwards. Setup supports Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and more agents; other clients can use manual MCP registration.
Claude Code plugin (instead of setup for Claude Code — includes the server, the porting skills and the
port-architect agent; do not use both):
/plugin marketplace add laaielichter/reverseport
/plugin install reverseport@reverseportThe same marketplace also offers the sister plugins stashpad@reverseport and
agentdisk@reverseport.
From source:
git clone https://github.com/laaielichter/reverseport && cd reverseport
npm ci && npm run build
./bin/reverseport.mjs setupThe recon, build-inspection, lookup, blueprint and porting commands already work right after git clone, with no
install at all: node bin/reverseport.mjs scan ./MyGame.
2. Ask your agent
Understand how search works in the Notes app, show me the evidence, and build a similar feature for my project.That's it. The agent picks the tools; you get answers with the evidence behind them.
Related MCP server: universal-asset-ripper
Works with every agent
Any vendor, any framework, any model size — the same tools through the door that fits:
MCP:
npx -y reverseport@latest setupconfigures installed agents;reverseport connect <client>prints the snippet for any other MCP client (Windsurf, Cline, Continue, Zed, Goose, LM Studio, VS Code…).MCP over HTTP:
reverseport serve→http://127.0.0.1:32147/mcp.Function calling:
/api/agent/tools?format=openai-strict|responses|anthropic|gemini, plus OpenAPI 3.1 at/api/openapi.jsonfor GPT Actions, LangChain, LlamaIndex, Semantic Kernel, CrewAI, AutoGen and n8n.Shell-only agents: JSON on stdout, errors as JSON on stderr,
reverseport describe <tool>.
Built for the agent's circumstances too:
A short list by default. About 57 tools are listed instead of more than 200. Every other tool is one call away:
engine_toolsfinds it andengine_callruns it.The list fits the agent. Small or older models use
compact, large-context agents usefull, and an agent can switch itself withset_tool_profile.One error shape everywhere, with a code, whether retrying helps, and the exact next step.
A
nextfield wherever there is an obvious next step (graphs, truncated results, every porting step), with the exact call.Big results do not flood the context. Lists are short by default. Answers over 256 KB are saved to
~/.reverseport/tool-output/; the agent gets a short version with the path and an MCP resource link. Slightly wrong input from smaller models is repaired where it is safe.Several steps, one call.
run_batchruns up to 20 calls andselectkeeps only the fields the agent needs. The same failing call twice gets a plain "do not repeat it" instead of the same error again.Long work does not time out. On MCP 2026-07-28 a call still running after a few seconds (a cold Ghidra import, a big port plan) comes back as a task the client polls, with progress in its status; quick calls answer directly. Older clients keep the classic handshake on the same server.
Agents are heard.
share_feedbackleaves a note for the maintainers; it stays on the user's machine until they share it.
See Connect any agent.
Skills
Setup and the Claude Code plugin install skills that teach the agent the workflows, so it knows which tool comes next without being told:
Skill | Use it for |
| "How does this work?" — engine and stack, architecture, dependency graph, classes, scenes, unknown files |
| Exported builds: engine and version, what is inside the |
| No files: find out how a game, app or site is built, then write a measured clean-room rebuild spec |
| Any port, unit by unit in dependency order, with API maps, converted scenes and a verified result |
| Godot 4 → Unity, Unreal, three.js or Godot C#: signals, node paths, autoloads, physics, input, axes |
| Unity → Godot 4: MonoBehaviours, prefabs and scenes to |
| The finish line: fix leftovers and missing functions, then hand over with an honest list of what is left |
| Keep an investigation honest: evidence, claims that cite it, decisions, tests and open unknowns |
| Errors and odd results: unreadable scenes, packs that will not list, refused paths, MCP problems |
The Claude Code plugin also adds the port-architect agent, which runs a whole port from recon to hand-over, and
guard hooks that ask before a tool attaches to a program and stop a "done" while a proof
case fails its check.
A skill copied into an agent's folder can be older than the installed tool. reverseport skills lists the skills of
the version you have and reverseport skills get <name> prints the matching guide.
Prompts to try
You ask | ReversePort does |
What is this game made with, and how is it built? |
|
Map this codebase and write ARCHITECTURE.md. |
|
How do the packages in this Turborepo/pnpm monorepo depend on each other? |
|
Show me how this button on the website is built. |
|
All I have is data.win / an .rpa / a .pak / a .swf / a sound bank / a web build. |
|
I only have the exported Godot game, not the project. |
|
A Unity IL2CPP game without its C# source. |
|
What changed between build 43 and 44? |
|
Why are my Unity materials pink and scripts "missing" after a move? |
|
Get every player-facing string out of this game so we can translate it. |
|
Is this GDScript valid for Godot 4.3, or did the model mix in Godot 3? |
|
What is in this save file, is it checksummed, and which field is the gold? |
|
Upgrade my Godot 3 game to Godot 4. |
|
Decompile the function that saves settings in this app and explain it. | opens the binary, finds it, decompiles it, shows the evidence |
How does this Electron app talk to its native side? | maps modules, IPC and Electron boundaries |
What is |
|
Rebuild the movement of |
|
Port my Unity UI, prefab variants and Animator to Godot. |
|
Port this Unity shader (or a Shadertoy) to Godot. |
|
Why does my ported game fall, slide and jump differently? |
|
Does the port really behave the same? |
|
Move my RPG Maker MV/MZ game to Godot. |
|
Port my Godot game to Unity. |
|
You: Port my Godot game to Unity.
Agent: re_scan → Godot 4.3, 6 scripts, 5 scenes, main scene main.tscn, autoload Global
port_plan → 13 units, dependencies first; Unity scene builder + PORT-PLAN.md created
port_unit / port_write × 7 → C# MonoBehaviours (signals → events, $Node → [SerializeField])
port_scene × 5 → prefab and scene specs, transforms mirrored to Unity's axes
port_verify → passed: 13/13 units, 0 leftovers, 0 missing functionsWhat it does
Understand and go deep
Target | What you get | Needs |
Source projects and exported games | Engine + version (Godot, Unity, Unreal, GameMaker, RPG Maker, Ren'Py, LÖVE, Defold, Bevy, MonoGame, web, Electron, Flutter, .NET, Go, Rust…), dependencies, cycles, scenes, symbols | Nothing |
Packs and archives | Godot | Nothing |
Native binaries | Mach-O, ELF, PE, wasm: functions, pseudocode, strings, xrefs, call paths, layout | Ghidra, Hopper or IDA for decompilation (setup) |
.NET assemblies | Metadata, CIL, native boundaries, build comparisons | Nothing |
Android | Manifest, classes, decompiled methods, references, resources, devices | JADX / Apktool / adb (guide) |
JavaScript and Electron | Modules, imports, source maps, Electron boundaries, runtime observation | Nothing; a browser for runtime |
Websites | Page, network and runtime evidence; one element by CSS selector (cropped image, HTML, computed CSS); stack fingerprint without files | A browser for runtime |
Firmware, EVM, crashes, captures | Regions and extraction, selectors, recorded crashes, HAR/mitmproxy captures | See the guides |
Rebuild and port
From → to | Code | Scenes / prefabs | Transforms | Project skeleton |
Godot → Unity | agent, with API map | automatic → specs + one-click editor builder | Z-mirror | scene builder script |
Godot → Unreal | agent (.h/.cpp), with API map | automatic → specs (cm, Z-up) | axes + ×100 | .uproject, module, targets |
Godot → three.js | agent (TypeScript), with API map | automatic → TypeScript builder modules | unchanged | Vite + TS + fixed-step loop |
Godot → Godot C# | agent, with API map | automatic (script paths swapped) | unchanged | .csproj, project.godot |
Unity → Godot | agent (GDScript), with API map | automatic → | Z-mirror | project.godot |
Unity → Unreal | agent, with API map | — | axes + ×100 | .uproject, module |
any → language | agent | — | — | — |
CLI
Everything the agent can do, you can do from the shell. Results are JSON.
reverseport scan ./MyGame # engine, languages, entry points
reverseport lookup "Some Game" # no files: engine, stack, structure, remakes
reverseport binary ./Build/Game.exe # sections, imports, .NET types, strings, hints
reverseport archive ./Build/Game.pck --action extract --match "*.gd"
reverseport diff ./Build-43 ./Build-44 # what changed between builds
reverseport analyze /Applications/Notes.app # deep analysis: open and summarize a binary/app
reverseport decompile /path/to/binary 0x1000 # pseudocode (Ghidra, Hopper or IDA)
reverseport blueprint --lookup-id <id> # clean-room rebuild spec + parity.json + skeleton
reverseport plan ./MyGame --to unity # start a port
reverseport case init --question "…" --target ./Build # proof case: evidence → claims → decision → tests
reverseport doctor # check engines and agent registrations
reverseport skills get port-project # the skill guide that matches this version
reverseport help # overview · reverseport port help · reverseport engine --helpInstall the command for regular use with npm install --global reverseport, or run any of these through
npx reverseport@latest …. In a checkout, use ./bin/reverseport.mjs.
Tools
One MCP server (reverseport mcp) serves every tool:
ReversePort tools | |
| projects and builds: engine, dependencies, symbols, scenes |
| executables, packs (Godot, zip, asar, Ren'Py, GameMaker, FMOD/Wwise, Unreal, SWF), unknown data, diffs, GUID audit, localisation, API check, save files, ARCHITECTURE.md |
| recon without files, clean-room rebuild specs |
| porting, verified |
| Godot 3 → 4 as a converted copy plus the manual list; shader first drafts; per-tick behaviour traces compared |
| proof case: evidence, claims, unknowns, decisions, tests |
Next to these come the deep-analysis tools — open_binary, procedure_pseudo_code, xrefs, search_strings, analyze_javascript_application,
inspect_android_package, inspect_managed_artifact, observe_web_session and many more. engine_tools lists them from the running server, and
npm run docs:generate writes the generated tool catalog with every
contract. The HTTP API
(reverseport serve) exposes the same tools in every vendor's format; see Connect any agent.
How it compares
ReversePort | A single decompiler MCP server | By hand | |
Setup |
| One server per tool, per agent | Install and learn each tool |
Source projects and builds | Engine, version, scenes, packs, diffs, no build needed | Binaries only | Read files yourself |
Native binaries | Through Ghidra, Hopper or IDA that you have installed | One backend | The tool's own UI |
Porting | Plan, API maps, scene and asset conversion, | Not part of the job | Rewrite and check by hand |
Runs | Locally, target read-only | Usually locally | Locally |
Does not | Crack DRM or anti-cheat, or write ported code without your agent | Port or compare builds | Scale |
FAQ
Is this legal? Use it on software you own or are allowed to analyse. ReversePort does not decrypt, crack or bypass DRM, anti-cheat or licensing. See RESPONSIBLE-USE.md.
Does it upload my files? No. It runs on your machine, only reads the target and writes output to new folders. There is no telemetry; PRIVACY.md lists the few times it uses the network.
Where do I get it? Only from npm as reverseport, the MCP Registry
as io.github.laaielichter/reverseport, or this repository. Copies under other names are not ours.
Does it port my code automatically? Scenes, transforms and assets convert automatically. Code is written by your
agent, one unit at a time, with an API map for the engine pair; port_verify then checks for leftovers, missing
functions and dormant logic (stub bodies, functions nothing calls, silenced warnings), so a port that "compiles" but
does nothing is not reported as done.
Do I need Ghidra? Only for decompiling native binaries. Scanning, packs, lookup, blueprints and porting need nothing extra.
How do I update or remove it? reverseport update updates a global install, and reverseport uninstall removes
the agent registrations and skill files it added. See Diagnose, update, and remove.
Something broke or is missing. Open an issue with the command and its JSON error. Every error names the next step, so include that line too.
Sister tools
Two small tools from the same author that work well next to ReversePort. Both are local, open source and have their own MCP server, and both install from the ReversePort marketplace:
Tool | What it does | Claude Code |
Memory for agents that you can read, edit and trust: plain Markdown files with a source and dates, a review queue for agent writes, and a handoff note for the next session. |
| |
The disk report for coding agents: the worktrees, checkpoints, |
|
Add the marketplace first with /plugin marketplace add laaielichter/reverseport. Other agents: see each project's
README.
Responsible use
Only analyse or port software you own or are allowed to analyse. ReversePort does not decrypt, crack or bypass DRM, anti-cheat or licensing. Read RESPONSIBLE-USE.md and the disclaimer.
Documentation
Connect any agent: MCP, HTTP, OpenAI/Anthropic/Gemini formats, OpenAPI, shell; profiles and errors.
Installation and setup: agent registration, analysis engines, updates and uninstall.
CLI and Evidence: commands, provider selection, snapshots, import/export.
MCP contracts and agent prompts: tool results, sessions, guided investigations.
Porting and rebuilds: the recon, rebuild and port workflows.
Proof cases, guard hooks and memory:
re_case, the Claude Code hooks, the optional Stashpad link and context cost.Challenge self-check: programs with known answers (from rea-lab) and what
re_binaryreveals.Rated by agents: independent agent reviews, round by round, and what is still open.
Nederlands · AGENTS.md for contributors · CONTRIBUTING.md
Credits
The deep-analysis engine is based on REA: Reverse Engineer Anything 6.8.0 (MIT). Proof cases are ported from Digfox (MIT) and the guard hooks follow rea-jev (MIT); the challenge self-check uses rea-lab's generator and oracle (MIT). Third-party components are listed in THIRD_PARTY_NOTICES.md.
Support
ReversePort is free and open source. If it saves you or your agent time, a gift is welcome but never expected. SOL and any token on Solana (such as USDC) can be sent to:
Solana:
BDRA7dHGBYtPsZPNzVQccDYZ8BqstJGCsWx3kopPSCDK
Gifts go to new model credits to keep improving ReversePort, and to work on better working conditions and wellbeing for LLMs and agents.
License
Related MCP Connectors
Evidence-oriented REA + Ghidra static-analysis workflows, read-only PE32 and Delphi VMT tools.
Code intelligence platform for AI agents. 20 tools for architecture, security & impact analysis.
AI Agent with Architectural Memory. Impact analysis (free), tests and code from the graph (pro).
Design domain models and generate deterministic multi-stack code, driven by your coding agent.
Related MCP Servers
- AlicenseCqualityBmaintenanceEnables an AI agent to auto-detect a game's engine (Unity, Unreal, Godot, Java, or native) from its files and then inspect, search, and patch the underlying binaries with in-process PE analysis, hex editing, pattern scanning, string extraction, checksums, diffing, and disassembly. Everything runs locally and offline with no cloud dependency or telemetry.1010055 npm5MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to detect game engines, inspect and catalog package manifests, extract or decrypt assets from Godot, Unreal, Unity, Electron and Windows PE containers, and scan binaries for AES keys and reverse-engineering evidence over stdio.1MIT
- AlicenseNot gradedqualityBmaintenanceConnects AI agents to reverse-engineering tools that inspect native binaries, JavaScript/Electron apps, .NET assemblies, websites, and runtime behavior without source code. Returns pseudocode, references, and evidence so agents can explain how a feature works or reimplement it.500,256 npm6MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to inspect and decompile software they have no source for — Android APKs, Electron bundles, .NET assemblies, and Go, Rust or WASM binaries — plus adb device interaction, through a token-guarded Streamable HTTP MCP endpoint, stdio MCP, or a CLI. Ghidra-powered native binary decompilation can be opted in at startup for ELF, PE and Mach-O targets.4Do What The F*ck You Want To Public