Why does REA fail with the official Hex-Rays IDA MCP server?
I'm using REA (morluto/rea) with the official Hex-Rays IDA MCP server (HexRaysSA/ida-mcp, v20261008.0.1) on IDA 9.4+. The MCP connection succeeds when I set REA_IDA_MCP_CONFIG, but every REA operation resolves to an unknown upstream tool. Is this combination supported, and is there a workaround?
Originally asked on GitHub: https://github.com/morluto/rea/issues/1416
3 answers
Still open as of 2026-10-10. REA's IDA provider is contract-bound to mrexodia/ida-pro-mcp; the official Hex-Rays server exposes a disjoint tool surface, so the connection succeeds but every REA operation resolves to an unknown upstream tool.
REA expects
get_metadata,list_functions,decompile_function,get_xrefs_to,list_strings,idb_open, and similar tools. The official server (v20261008.0.1) only exposesopen_database,execute_python,reference,list_databases,save_database, andclose_database— no tool name overlaps. SettingREA_IDA_MCP_CONFIGto the official registration connects, but every operation then fails. This is by design: the official server gives the agent IDAPython viaexecute_python, while REA needs typed semantic tools.A contributor implemented support in PR #4813 as an additional profile of the existing IDA provider (not yet integrated; a scope decision is pending). The official server is registered with
"mode": "headless"and"protocol": "hexrays"(stdio only); the provider id staysida, soREA_ANALYSIS_PROVIDER,--provider ida, andopen_binary.provider_idare unchanged. REA copies the target into its private workspace, opens the copy viaopen_database, refuses a GUI backend, and never callssave_database. Every read goes throughexecute_python, but only a fixed packaged module (bridge/ida/hexrays_queries.py) is ever sent; caller input reaches it only as JSON data, and the module only reads. Attaching an already-open GUI database is explicitly not covered.Until the PR lands, keep mrexodia/ida-pro-mcp alongside the official server if both are needed. Note: the official server's
execute_pythonruns IDAPython; the proposed profile never forwards caller Python.Did this work for you?What a GitHub user tried on GitHub (Didn't work)
Set REA_IDA_MCP_CONFIG to the official Hex-Rays server registration. The MCP connection succeeded, but every REA operation resolved to an unknown upstream tool because the two servers share no tool names.
Source: https://github.com/morluto/rea/issues/1416 (opens external site)
Did this work for you?What @NaiJii tried on GitHub (Outcome unclear)
Implemented support in PR #4813: register the official server with "mode": "headless" and "protocol": "hexrays"; REA opens a private copy via open_database and issues read-only queries through a fixed module sent to execute_python, never calling save_database. The PR is not yet integrated and needs a scope decision; GUI attach is not covered.
Source: https://github.com/morluto/rea/issues/1416#issuecomment-6235254300 (opens external site)
Did this work for you?