Integration tests verify the interaction between the MCP server and IDA Pro across several transport and functional layers:
Stdio Integration (just test)
Verifies the MCP protocol handshake, tool discovery (tool_catalog, tool_help), and a wide range of IDA operations including:
- Database:
open_idb, close_idb, idb_meta, analysis_status. - Analysis:
list_functions, resolve_function, disasm_by_name, find_insns, find_insn_operands. - Editing:
set_comments, rename, patch, patch_asm. - Types/Stack:
declare_type, apply_types, infer_types, stack_frame, declare_stack, delete_stack. - Metadata:
segments, strings, imports, exports, structs, xrefs_to_field, search_structs.
HTTP/SSE Integration (just test-http)
Verifies streamable HTTP transport using Server-Sent Events (SSE). It ensures tools/list returns the full toolset and that database operations (like open_idb and list_functions) function correctly over the HTTP transport.
Scripting Integration (just test-script)
Verifies the run_script tool, which allows running inline Python or executing .py files. It checks for correct stdout/stderr capture and Python error reporting.
Elicitation and Background Analysis (just test-elicitation)
Tests how the server handles clients with different capabilities:
- Non-elicitation clients: Verifies that
open_idb(auto_analyse=true) silently routes analysis to a background task. - Elicitation-capable clients: Verifies the client receives
elicitation/create, accepts it, and receives analysis_background=true along with a pollable analysis_task_id.