MCP server
The Model Context Protocol (MCP) server allows LLM agents and IDE integrations to query analysis results, navigate the timeline, and trigger passes through a structured tool interface.
Start the server
Section titled “Start the server”./tenet trace.bin --mcp-port 13337Or start from a GUI session using File → Start MCP Server. The server uses the same session and pass results as the running GUI/TUI/CLI.
Available tools
Section titled “Available tools”MCP tools mirror the JSON-RPC methods with additional metadata and structured parameter schemas:
Session and trace
Section titled “Session and trace”trace_info— Trace metadata, format version, module informationlist_passes— Catalog of available passes with statesrun_pass— Run a named pass with optional parameterspass_result— Retrieve cached results for a completed passcancel_pass— Cancel a running pass
Navigation
Section titled “Navigation”goto_inst— Jump to instruction IDgoto_pc— Jump to runtime PCset_breakpoint/set_watchpoint— Set PC or memory breakpointslist_breakpoints— List active breakpoints
State queries
Section titled “State queries”get_registers— GPR state at an instructionget_memory— Memory region at a point in timeget_hex_dump— Raw byte dumpget_call_stack— Dynamic call stack
Analysis
Section titled “Analysis”taint_forward/taint_backward— Taint analysiscfg_export— Export CFG as DOTcall_graph— Export call graphfunctions/find_function— Function queriesxref— XRef occurrences for a PCstrings— Discovered stringsobjc_messages— ObjC message analysisloops— Loop informationalgorithm_summary— Algorithm candidatespattern_results— Pattern scan resultsentropy_analysis— Entropy measurementmem_search— Memory value/pattern searchvm_abstract— VM handler analysis
Address rebase
Section titled “Address rebase”rebase_addr— Convert between runtime and static addresses using the trace’smodule_slide. Use this instead of manual arithmetic when carrying addresses to/from IDA or Ghidra.
Integration with IDA
Section titled “Integration with IDA”Tenet’s MCP server is designed to work alongside IDA’s own MCP hub. A typical workflow:
- Open the trace in Tenet with
--mcp-port. - Open the same binary in IDA with its MCP server.
- Use an MCP client (or IDE integration) that connects to both servers.
- Query Tenet for dynamic evidence (taint, values, call stacks) at addresses obtained from IDA.
- Use
rebase_addrto translate between runtime (Tenet) and static (IDA) addresses.
Limitations
Section titled “Limitations”- The MCP server requires an active Tenet process with an open trace.
- It shares the same session lock: only one process can own a trace at a time.
- Long-running passes return progress notifications; the client must handle these.
- Not all pass parameters are exposed through MCP; use JSON-RPC or CLI for fine-grained control.