Skip to main content
Glama
retrace-mcp

retrace-mcp

by anthoo582

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
retrace_probeA

Diagnose the Retrace installation: Node version, workspace roots, write policy, external analyzer availability (Capstone, binutils, radare2, Ghidra, PS2 toolchain, emulators) and the number of registered tools. Run this first in any session.

retrace_skill_listA

List the bundled engineering skills (hardware, reverse engineering, graphics, audio, build/validation) with their purpose and path.

retrace_skill_readB

Read the full instructions of one bundled skill before performing the matching engineering task.

retrace_limitsA

Show the active safety limits and the level classification of an operation before doing anything destructive.

rom_inspectB

Inspect an N64 ROM file: detects byte-order format (.z64, .v64, .n64), parses header, entry point, CRC and ROM name.

rom_identify_formatA

Identify byte-order format of an N64 ROM without reading entire file.

rom_find_code_regionsB

Scan an N64 ROM for executable MIPS code regions using prologue patterns.

rom_compareA

Compare two N64 ROM versions byte-by-byte and report segment differences.

elf_inspectA

Inspect a PlayStation 2 or MIPS ELF executable: header, machine type, entry point, section count, segment count.

elf_list_sectionsA

List all sections in a PlayStation 2 ELF binary with memory addresses, sizes, and permissions.

elf_list_symbolsB

List symbols from .symtab and .dynsym of a PS2 ELF binary.

elf_find_functionC

Locate a function by virtual address within a PS2 ELF binary.

mips_disassembleA

Disassemble raw MIPS machine code instructions (R4300i for N64 big-endian or R5900 for PS2 little-endian) using Capstone engine.

mips_analyze_functionB

Analyze a MIPS function: detects stack frame size, saved registers (ra, s0-s7, fp), calls, jumps, basic blocks and pseudocode.

mips_reconstruct_functionA

Reconstruct a function's structure from MIPS instructions: CFG edges, stack frame, saved registers, parameters, loops and heuristic pseudo-C. Never claims to be original source.

repo_get_architectureB

Summarize the repository architecture from its real files: languages, build systems, binaries, symbol/config files, directory ownership and Git state.

repo_inspectB

Inspect the workspace repository: file tree, detected languages, build tools, binary assets and architecture summary.

repo_find_referencesB

Find literal references to a symbol or identifier across repository source files without executing project code.

repo_search_codeC

Search repository code files for symbol names, function signatures, or string patterns.

repo_find_dependenciesC

Analyze dependencies declared in build files (Make, CMake, Cargo, npm) in the repository.

repo_get_file_historyC

Get git commit history for a file in the repository.

memory_inspect_regionA

Inspect a virtual memory address: checks which region it belongs to (RDRAM, KSEG, Main RAM, GS registers, VRAM) on N64 or PS2.

memory_check_alignmentB

Check a pointer for 4-byte or 8-byte alignment, nullness, and architectural valid range.

memory_analyze_overlapC

Detect memory layout collisions between buffers, heaps, display lists, and texture staging areas.

crash_analyzeA

Analyze a crash log or register dump from PCSX2 or an N64 emulator: parses PC, RA, SP, BadVAddr, correlates symbols, and formulates hypotheses.

texture_inspectB

Calculate N64 texture metadata (format, size, required buffer bytes, completeness) based on format code, size code, width and height.

texture_analyze_paletteB

Analyze an N64 TLUT palette buffer: count transparent vs opaque colors, unique colors, and hex values.

texture_decode_n64C

Decode raw N64 texture data into RGBA pixels and PNG image.

texture_decode_ps2B

Decode a PS2 GS texture (PSMCT32/16/16S, PSMT8/4) from swizzled or linear data, optionally with a CSM2 CLUT, into RGBA and PNG.

audio_inspectB

Inspect an audio asset file (PS2 VAG, N64 bank, or raw ADPCM) to detect sample rate, channels, and compression.

audio_decode_vag_blockB

Decode a 16-byte Sony PS2 VAG ADPCM block into 28 linear 16-bit PCM samples.

audio_decode_fileA

Decode a PS2 VAG/VAGi or N64 AIFC VADPCM file to 16-bit PCM WAV. N64 decoding requires the file's own VADPCMCODES codebook and refuses to invent one.

decomp_config_inspectB

Inspect a decompilation configuration file (YAML, JSON, splat) for functions, segments, and symbols.

decomp_config_validateC

Validate the syntax and structure of a decompilation configuration file.

decomp_config_propose_changesB

Prepare a safe proposed modification to a decompilation config and inspect the unified diff before applying.

decomp_config_apply_changesB

Apply an approved modification proposal to a decompilation configuration file. Requires RETRACE_ALLOW_WRITE=1.

graph_node_upsertC

Add or update a node in the project Knowledge Graph (file, function, symbol, structure, texture, audio, crash).

graph_edge_upsertC

Add or update a relationship edge between two nodes in the Knowledge Graph.

graph_query_neighborsB

Query related nodes in the Knowledge Graph up to a given depth (e.g. what textures does this function render? What crashes are linked to this address?).

graph_ingestB

Ingest an ELF, an N64 ROM, or a symbol table into the Knowledge Graph. Extracts only what is actually parsed; no code is decompiled during ingestion.

generate_forensic_reportB

Generate a structured forensic investigation report as Markdown, JSON, or both. The default is read-only; writing files requires RETRACE_ALLOW_WRITE=1 and write=true.

build_analyzeA

Inspect real build manifests and report build systems, scripts, targets, toolchain hints and safety warnings without executing commands.

build_runA

Run one allowlisted build command with shell:false, a workspace-bound cwd, a timeout and no shell metacharacters. Requires RETRACE_ALLOW_WRITE=1 and confirm=true.

compare_functionsB

Compare two functions across N64 (R4300i) and PS2 (R5900) by canonical instruction shape. Returns exact|structural|probable|unknown and never claims confirmed equivalence.

compare_rankC

Rank candidate functions against a reference by canonical instruction-shape similarity.

equivalence_recordA

Record a CONFIRMED N64<->PS2 function equivalence with mandatory evidence. Only this tool can mark equivalence as confirmed.

equivalence_listC

List recorded confirmed N64<->PS2 equivalences for a workspace.

port_project_planC

Build an evidence-driven N64/PS2 porting plan with ISA, ABI, runtime, asset and validation gates.

binary_translateA

Translate encoding-preserving MIPS words between N64 and PS2 endian representations. Refuses console-specific instructions unless explicitly allowed.

port_validate_translationB

Validate that a supported N64/PS2 encoding translation round-trips exactly; this is not a semantic equivalence proof.

project_intakeC

Create a read-only, reproducible intake record for an authorized N64 to PS2 port project.

rom_validateB

Validate a local N64 ROM header, byte order, checksum metadata and hash without copying or modifying it.

toolchain_probeC

Probe optional N64 reversing and PS2 development tools and report which automated stages are actually available.

analyze_n64_romB

Analyze an authorized local N64 ROM and produce format, region, entrypoint, checksum, code-region and string metadata.

split_romB

Run the installed splat CLI against a versioned config and return the generated tree. Dry-run is the default.

ghidra_importB

Import and analyze an authorized ROM/ELF using Ghidra Headless. Requires explicit write confirmation because Ghidra creates a project.

ghidra_analyzeC

Run the same reproducible Ghidra Headless import/analyze step under an explicit tool name for pipeline orchestration.

recompile_romC

Run the installed N64Recomp CLI with an authorized config. Returns generated output and diagnostics; it never claims a PS2 port.

decompile_functionB

Run m2c over an authorized assembly file and return candidate C plus raw diagnostics. Candidate code is never treated as recovered source.

diff_functionC

Compare two MIPS function byte strings using the internal canonical diff engine and return an explicit unverified match level.

generate_ps2_projectC

Generate a minimal PS2 port scaffold with CMake, a C entrypoint and an explicit pending-layer checklist.

create_ps2_projectC

Alias with an explicit pipeline name for generating the guarded PS2SDK project scaffold.

run_pcsx2B

Launch an authorized PS2 ELF with the installed PCSX2 adapter after explicit confirmation; captures are not claimed unless the configured CLI emits them.

build_ps2B

Build a PS2 port workspace through the existing allowlisted build runner. Requires explicit confirmation and RETRACE_ALLOW_WRITE=1.

save_findingC

Persist an attributed reverse-engineering finding in the workspace knowledge graph.

project_autopilotB

Plan or execute the evidence-driven N64-to-PS2 pipeline. It runs only installed adapters and records blocked stages instead of simulating results.

project_stateC

Read or persist the reproducible project manifest used by the N64-to-PS2 autopilot.

infer_variablesB

Infer stack locals, globals, arguments, returns and register roles from MIPS dataflow observations. Results are candidates with evidence, not automatic source edits.

infer_structsC

Group repeated base-register offsets into candidate structs and fields for N64-to-PS2 variable translation.

suggest_variable_namesC

Return evidence-ranked names for inferred variables without modifying source files.

validate_variable_mapC

Validate inferred variable names, offsets, widths and conflicting observations before an ABI translation is reviewed.

port_startC

Create a resumable, evidence-driven N64-to-PS2 port job. It preserves the ROM and never claims a port before validation.

port_statusB

Read the last persisted port job, including blocked stages, tool versions, artifacts and source provenance.

port_source_manifestC

Verify that a port project contains inspectable generated source, translated variables and provenance before packaging an ISO.

package_ps2_isoC

Build a PS2 ISO from an authorized ELF and project tree using mkisofs/genisoimage. The source tree and SYSTEM.CNF remain in the project.

iso_verifyB

Verify a PS2 ISO with an installed ISO reader and confirm that SYSTEM.CNF and BOOT.ELF are present. This is a filesystem gate, not a gameplay claim.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.7/5.0

Scored across 76 tools

Disambiguation2/5

Many tools overlap heavily: ghidra_import and ghidra_analyze are explicit aliases, generate_ps2_project and create_ps2_project duplicate the same scaffold generation, and port_start/project_intake/project_autopilot project_state/port_status are hard to distinguish. Several analysis tools also overlap, such as compare_functions, diff_function, compare_rank, and port_validate_translation, making tool selection error-prone despite generally detailed descriptions.

Naming Consistency3/5

All names use snake_case, which helps, but conventions are mixed: some are verb_noun (generate_forensic_report, analyze_n64_rom, validate_variable_map), others are noun_verb or domain-first (rom_inspect, elf_list_sections, texture_decode_n64, project_intake). Explicit aliases with different naming styles further weaken predictability.

Tool Count1/5

With 76 tools, the surface is far beyond a well-scoped set and includes multiple aliases and redundant pipeline names. For a reverse-engineering/porting server this is an extreme count mismatch, even if the domain is broad.

Completeness4/5

Coverage is unusually broad across ROM/ELF inspection, MIPS analysis, memory/crash analysis, textures/audio, config editing, graph knowledge, build/run, porting, and ISO packaging/verification. Only minor lifecycle gaps remain, such as graph node deletion, asset encoding, or direct patching operations.

Maintenance

ActivityMaintained
ResponsivenessNo issues