storm-re-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| STORM_RE_DB | No | Path to the SQLite cache (config key db; CLI flag --db). Default: ~/.local/share/storm-re/storm-re.db. | |
| STORM_RE_HOT | No | Path to the hot-set topics JSON used by the index command (config key hot_json). Default: hot.json in the repo. | |
| STORM_RE_MCP | No | URL of the pyghidra-mcp endpoint (config key mcp_url; CLI flag --mcp). Default: http://127.0.0.1:8770/mcp. | |
| STORM_RE_BSIM | No | Root of *.bsim.tsv exports (config key bsim_root). Default: ~/ghidra/match/out. | |
| STORM_RE_HOST | No | Label stored with indexed programs (config key host). Default: local. | |
| STORM_RE_NUCC | No | Root of name CSVs laid out as games/<game>/<sha256>/functions.csv (config key nucc_root). Default: ~/nucc-symbols. | |
| STORM_RE_ASSETS | No | Root of your extracted CPK tree, used by asset_index/asset_find/asset_info (config key assets_root). Default: ~/storm-cpk-extracted. | |
| STORM_RE_CONFIG | No | Path to the config file. Defaults to $XDG_CONFIG_HOME/storm-re/config.toml (~/.config/storm-re/config.toml). | |
| STORM_RE_MANUAL | No | Root containing *.manual.csv hand-verified names (config key manual_root). Default: ~/ghidra/storm-research. | |
| STORM_RE_MCP_TOKEN | No | Bearer token for the optional HTTP JSON endpoint (bin/storm-re-mcp --http ...). A non-loopback bind requires a token. | |
| STORM_RE_ASSETS_WIN | No | Windows mirror of the extracted CPK tree, reported as win_path (config key assets_win_root). Default: off. | |
| STORM_RE_TRILOGY_TSV | No | Path to a Switch dynsym TSV dump (config key trilogy_tsv). Default: ~/ghidra/trilogy-dynsym.tsv. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| storm_resolveB | Resolve a VA, RVA or full symbol name in one build. Cheap and local; returns build/program/sha/rva/va/name/confidence/source. |
| storm_decompB | Bounded decompile summary, cache-first. detail=summary default; sig is cheapest; full can be large. |
| storm_xrefsC | Deduplicated callers, callees and data refs for one function. |
| storm_diffB | Compare one function across two builds: signature, similarity, callee delta. |
| storm_mapC | Map a symbol across builds via direct BSim, Trilogy-mediated, name and RVA. |
| storm_findC | Search symbols (local, cheap), strings, or code. |
| storm_symbolizeC | Rewrite FUN_/SUB_/DAT_ placeholders to Storm names with mapping and confidence. |
| storm_showB | Read pre-decompiled hot-set entries from SQLite; no Ghidra call. |
| storm_state_surfaceC | Static field-access surface for a root object: offsets, sizes, r/w, functions, confidence. Static inference only. |
| storm_write_sitesC | Who writes an address or root+offset, with evidence and confidence. |
| storm_input_pathD | Pad poll -> ccPlayerPad -> CtrlInputPad -> vfunc gates -> ChangeAction. |
| storm_frame_tickC | Timer idioms and per-frame constants; flags 60 FPS risks. |
| storm_net_sessionD | Steam/net-session send/recv/tick surface and Steam imports. |
| storm_scene_dispatchD | Story scene/message dispatch, stage strings and boss ids. |
| storm_patch_diffC | Batch function diff between builds; byte mode finds call-site patches. |
| storm_exportC | Write a compact markdown report from indexed facts. |
| storm_explainC | One-call explanation: resolve + decompile + symbolize + xrefs + maps. |
| storm_batchB | Run several read-only storm-re tools in one call. Excludes export and batch. |
| storm_asset_findA | Search decrypted CPK files of storm1/2/3hd/3fb/rev/4/gen by path substring or glob. Returns game, cpk, entry, size, magic, path, win_path. Empty query = per-game/per-CPK overview. |
| storm_asset_infoC | One extracted CPK file: paths, same entry in other games, and the xfbin chunk list (type, name, path) for NUCC files. |
| storm_buildsB | List build aliases, programs, SHA-256, base and counts. |
| storm_statB | Database, cache, BSim, map and index statistics. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| rollback_audit | Audit a rollback surface for a root object. |
| story_port | Trace a story scene/boss dispatch path. |
| clean_vs_mod | Diff a clean exe against a modded build. |
| function_explain | Explain one function with names, xrefs and maps. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Builds | Build aliases, programs, SHA-256 and counts |
| Stats | Cache, BSim, map and index statistics |
| Assets | Extracted CPK files per game and archive |
TDQS
Scored across 22 tools
Most tools have clearly distinct purposes (resolve, decompile, xrefs, diff, map, find, etc.). A few pairs overlap—storm_diff vs storm_patch_diff, storm_decomp vs storm_show vs storm_explain, and the meta-tools storm_explain/storm_batch vs their individual components—but descriptions make the boundaries readable.
Every tool uses the storm_ prefix with snake_case, with no mixing of conventions. Suffix patterns vary between verbs and nouns, but the naming scheme is entirely predictable.
22 tools is heavy for a single MCP server. While the reverse-engineering domain is broad, some convenience/meta tools (explain, batch) and specialized analysis tools could potentially be consolidated without losing capability.
The surface covers core RE workflows: symbol resolution, decompilation, xrefs, cross-build diff/mapping, search, symbolization, state/write-site analysis, asset discovery, and build/stat inspection. Minor gaps exist, such as raw disassembly/CFG extraction or general import/export listing, but agents can work around them.