Skip to main content
pwno-mcp is built for concurrent workflows. You can keep more than one binary, attach target, or exploit driver active by assigning stable session_id values.

Example pattern

{"tool":"create_debug_session","arguments":{"session_id":"patched"}}
{"tool":"create_debug_session","arguments":{"session_id":"original"}}
{"tool":"set_file","arguments":{"binary_path":"/workspace/chal-patched","session_id":"patched"}}
{"tool":"set_file","arguments":{"binary_path":"/workspace/chal","session_id":"original"}}
{"tool":"set_breakpoint","arguments":{"location":"main","session_id":"patched"}}
{"tool":"set_breakpoint","arguments":{"location":"main","session_id":"original"}}

Good practices

  • use one session per target binary or scenario
  • keep session names semantic: patched, remote, local, heap, rop, stage2
  • pass session_id explicitly on every debugger and pwncli call
  • use list_debug_sessions and list_pwncli_sessions to keep track of what is still alive

Cleanup

When you are done, close idle sessions so GDB processes and driver state are released.
{"tool":"close_debug_session","arguments":{"session_id":"patched"}}
{"tool":"close_debug_session","arguments":{"session_id":"original"}}
Named sessions are especially useful when several agent subtasks are running in parallel, because each thread can keep its own debugger state without reloading the binary.