Skip to content

feat: Implement headless MCP Server and UI integration#14

Merged
mylovereturns merged 2 commits into
mainfrom
mlr-improvements-and-updates
Jun 11, 2026
Merged

feat: Implement headless MCP Server and UI integration#14
mylovereturns merged 2 commits into
mainfrom
mlr-improvements-and-updates

Conversation

@mylovereturns

Copy link
Copy Markdown
Collaborator
  • Added nlohmann-json dependency to vcpkg.json and CMakeLists.txt.
  • Created standalone McpServer class supporting the Model Context Protocol over stdio (--mcp flag).
  • Exposed key analysis functions through MCP tools (open_binary, get_status, get_functions, get_strings, get_xrefs_to, get_imports, get_exports, get_segments, get_bytes, set_comment, set_name, disassemble_at, decompile_function).
  • Modified App and main.cpp to correctly handle headless execution without invoking GLFW/ImGui.
  • Ensured stdout cleanliness when running in MCP mode by redirecting spdlog to a dedicated hyperion_mcp.log file.
  • Fixed undefined identifier errors (Sar, Rol, Ror) and excessive exception loops in the lifter and PE loader.
  • Added an 'MCP Server' UI dialog under the 'View' menu for easy 1-click installation to Cursor (.cursor/mcp.json) and Claude Desktop (claude_desktop_config.json).
  • Documented MCP usage in README.md.

- Added nlohmann-json dependency to vcpkg.json and CMakeLists.txt.
- Created standalone McpServer class supporting the Model Context Protocol over stdio (--mcp flag).
- Exposed key analysis functions through MCP tools (open_binary, get_status, get_functions, get_strings, get_xrefs_to, get_imports, get_exports, get_segments, get_bytes, set_comment, set_name, disassemble_at, decompile_function).
- Modified App and main.cpp to correctly handle headless execution without invoking GLFW/ImGui.
- Ensured stdout cleanliness when running in MCP mode by redirecting spdlog to a dedicated hyperion_mcp.log file.
- Fixed undefined identifier errors (Sar, Rol, Ror) and excessive exception loops in the lifter and PE loader.
- Added an 'MCP Server' UI dialog under the 'View' menu for easy 1-click installation to Cursor (.cursor/mcp.json) and Claude Desktop (claude_desktop_config.json).
- Documented MCP usage in README.md.
- Addressed unused variable warnings (RSP_ID, RBP_ID, kPattern, field_idx, PT_DYNAMIC, SHT_STRTAB, SHT_DYNAMIC, DT_NEEDED, DT_PLTGOT, DT_STRTAB, DT_JMPREL, DT_PLTRELSZ, REG_RAX...REG_R15, REG_ARM64_SP, REG_ARM64_NZCV, kMaxExceptions).
- Fixed unused function warnings (va_to_ptr, safe_add32) by marking them with [[maybe_unused]].
- Corrected windows.h missing file error on non-Windows platforms by wrapping the include in #ifdef _WIN32 in instrumentation_cb.h.
- Fixed missing field initializer warnings for DecompType structs by providing explicit initializers in make_void(), make_bool(), make_char(), make_int(), make_sizet(), and inline member initializers.
- Updated TypeInfer to use the fully explicit initializers.
@mylovereturns mylovereturns merged commit d745f4b into main Jun 11, 2026
5 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant