MCP Pwntools
MCP server exposing pwntools 4.15.0 functionality for binary exploitation
Connector by daedalus · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/daedalus-mcp-pwntools
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 4 read · 7 write · 0 delete · 29 not yet classified
- Secrets
- None asked for
- Install scripts
- Not scanned yet
- Runs as
- Python package
Tools by what they do 40
Read from the source code; the running server may list different tools.
Read 4 · Look things up without changing anything.
context_getcyclic_findelf_readlog_info
Write 7 · Create, change, send or run things.
context_setdynelf_resolveelf_writelistenprocess_createrop_calltube_send
Not yet classified 29 · We could not tell from the name and description.
asmcyclicdisasmelf_asmelf_loadenhexfitflatfmtstr_payloadfmtstr_splithexdumplog_debug
Show 17 more tools
log_errorlog_successlog_warnp16p32p64p8remote_connectrop_loadshellcraftshellcraft_dupshshellcraft_setreuidu16u32u64u8unhex
Files it touches
- Any path the agent passes to its tools
Tools (40)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
asmAssemble code to bytes. Args: code: Assembly code. arch: Architecture (i386, amd64, arm, mips, etc.). Uses context if not specified. os: OS (linux, freebsd, etc.). Uses context if not specified. Returns: Hex string of assembled bytes. Example: >>> asm('nop') '90'
context_getGet current pwntools context. Returns: Current context settings. Example: >>> context_get() {'arch': 'amd64', 'os': 'linux', ...}
context_setSet pwntools context. Args: arch: Architecture (i386, amd64, arm, mips, etc.). os: OS (linux, freebsd, etc.). endian: Endianness (little, big). word_size: Word size in bits (32, 64). log_level: Logging level (debug, info, warning, error). Returns: Current context settings. Example: >>> context_set(arch='amd64', os='linux', log_level='debug')
cyclicGenerate cyclic pattern. Args: length: Length of pattern. n: Alphabet size (default 256). Returns: Cyclic pattern as hex string. Example: >>> cyclic(20) '61616162616163616164616165616166'
cyclic_findFind offset in cyclic pattern. Args: pattern: Hex string of pattern to find. Returns: Offset of pattern in cyclic. Example: >>> cyclic_find('66616661') 120
disasmDisassemble bytes to code. Args: data: Hex string to disassemble. arch: Architecture. Uses context if not specified. bits: Bits (32, 64). Uses context if not specified. Returns: Disassembled code. Example: >>> disasm('90') ' 0: 90 nop'
dynelf_resolveDynamic ELF resolution. Note: Requires active memory leak. Args: leak_func: Memory leak function. elf_path: Optional ELF path. Returns: Resolution status.
elf_asmAssemble code at a specific address in an ELF. Args: path: Path to ELF file. address: Address (hex string like '0x400000'). code: Assembly code. Returns: Success message. Example: >>> elf_asm('/bin/cat', '0x401000', 'ret') 'Assembly applied successfully'
elf_loadLoad an ELF file. Args: path: Path to ELF file. Returns: Dictionary with ELF info (address, symbols, plt, got, etc.). Example: >>> elf_load('/bin/ls') {'address': '0x400000', 'symbols': {...}, ...}
elf_readRead bytes from an ELF at address. Args: path: Path to ELF file. address: Address (hex string like '0x400000'). length: Number of bytes to read. Returns: Bytes as hex string. Example: >>> elf_read('/bin/cat', '0x400000', 16)
elf_writeWrite bytes to an ELF at address. Args: path: Path to ELF file. address: Address (hex string like '0x400000'). data: Hex string to write. Returns: Success message. Example: >>> elf_write('/bin/cat', '0x401000', '90') 'Write successful'
enhexEncode bytes to hex string. Args: data: Hex string to encode. Returns: Hex string. Example: >>> enhex('41424344') '41424344'
fitFit data into buffer. Args: data: Dictionary mapping offsets to values. length: Total length of buffer. filler: Hex string for filler bytes. Returns: Fitted buffer as hex string. Example: >>> fit({0: '41424344', 8: '45464748'}) '414243450000000045464748'
flatFlatten arguments into bytes. Args: args: List of arguments to flatten (integers or hex strings). endian: Endianness (default from context). sign: Signedness (default from context). Returns: Flattened bytes as hex string. Example: >>> flat([0x41424344, '68656c6c6f']) '44434241000000000000000068656c6c6f'
fmtstr_payloadGenerate format string payload. Args: offset: Offset to format string. writes: Dict of {address: value} to write. nbytes: Number of bytes. Returns: Format string payload as hex string. Example: >>> fmtstr_payload(6, {0x8048000: 0x41424344})
Show 25 more tools
fmtstr_splitSplit format string writes. Args: writes: Dict of {address: value} to write. nbytes: Number of bytes. Returns: List of format string parts. Example: >>> fmtstr_split({0x8048000: 0x41424344})
hexdumpHexdump utility. Args: data: Hex string to dump. begin: Offset to start from. Returns: Formatted hexdump string. Example: >>> hexdump('41424344')
listenCreate a listening socket. Args: port: Port to listen on (0 for random). bindaddr: Address to bind to. Returns: Listener info dict. Example: >>> listen(8080) {'port': 8080, 'lport': 8080, ...}
log_debugLog debug message. Args: msg: Message to _log. Returns: Success message.
log_errorLog error message. Args: msg: Message to _log. Returns: Success message.
log_infoLog info message. Args: msg: Message to _log. Returns: Success message.
log_successLog success message. Args: msg: Message to _log. Returns: Success message.
log_warnLog warning message. Args: msg: Message to _log. Returns: Success message.
p16Pack an integer into 2 bytes. Args: n: Integer to pack (0-65535). endian: 'little' or 'big'. Returns: Hex string of packed bytes. Example: >>> p16(0x4142, endian='little') '4241'
p32Pack an integer into 4 bytes. Args: n: Integer to pack. endian: 'little' or 'big'. Returns: Hex string of packed bytes. Example: >>> p32(0x41424344, endian='little') '44434241'
p64Pack an integer into 8 bytes. Args: n: Integer to pack. endian: 'little' or 'big'. Returns: Hex string of packed bytes. Example: >>> p64(0x4142434445464748, endian='little') '4847464544434241'
p8Pack an integer into 1 byte. Args: n: Integer to pack (0-255). Returns: Hex string of packed bytes. Example: >>> p8(0x41) '41'
process_createCreate and interact with a process. Args: argv: Command and arguments as list. env: Environment variables dict. stdin: Stdin redirect (PIPE, STDOUT, etc.). stdout: Stdout redirect. stderr: Stderr redirect. timeout: Timeout in seconds. Returns: Process info dict. Example: >>> process_create(['/bin/sh']) {'pid': 1234, 'proc': {...}, 'unique': '...'}
remote_connectConnect to a remote host. Args: host: Hostname or IP. port: Port number. timeout: Timeout in seconds. Returns: Connection info dict. Example: >>> remote_connect('example.com', 80) {'host': 'example.com', 'port': 80, 'connected': True}
rop_callGenerate ROP call. Note: Requires an active ROP object. Args: runtime: Runtime/ELF path. func: Function name to call. args: Arguments for the call. Returns: ROP chain as hex string.
rop_loadLoad ELF for ROP. Args: path: Path to ELF file. Returns: ROP info dict. Example: >>> rop_load('/bin/ls') {'path': '/bin/ls', 'elf': {...}, 'gadgets_count': ...}
shellcraftGenerate shellcode. Args: shellcode_type: Type of shellcode (e.g., 'amd64.linux.sh', 'i386.linux.bind', 'setreuid'). arg1: Optional first argument. arg2: Optional second argument. Returns: Assembly code for the shellcode. Example: >>> shellcraft('amd64.linux.sh') ' ...'
shellcraft_dupshGenerate dup shellcode with execve. Args: fd: File descriptor to dup. Returns: Assembly code. Example: >>> shellcraft_dupsh(4)
shellcraft_setreuidGenerate setreuid shellcode. Args: uid: UID to set. euid: Effective UID to set. Returns: Assembly code for setreuid. Example: >>> shellcraft_setreuid(0, 0)
tube_sendSend data through a tube. Note: This is a placeholder - actual tube handling requires state management. Args: data: Hex string to send. tube_type: Type of tube to create. Returns: Status message.
u16Unpack 2 bytes to integer. Args: data: Hex string of 2 bytes. endian: 'little' or 'big'. Returns: Unpacked integer. Example: >>> u16('4241', endian='little') 16706
u32Unpack 4 bytes to integer. Args: data: Hex string of 4 bytes. endian: 'little' or 'big'. Returns: Unpacked integer. Example: >>> u32('44434241', endian='little') 1094795857
u64Unpack 8 bytes to integer. Args: data: Hex string of 8 bytes. endian: 'little' or 'big'. Returns: Unpacked integer. Example: >>> u64('4847464544434241', endian='little') 3203391512993874777
u8Unpack 1 byte to integer. Args: data: Hex string of 1 byte. Returns: Unpacked integer. Example: >>> u8('41') 65
unhexDecode hex string to bytes. Args: data: Hex string to decode. Returns: Bytes as hex string. Example: >>> unhex('41424344') '41424344'
Signals
- Stars
- 1
- Forks
- 1
- Open issues
- 0
- Weekly downloads
- 27
- Last commit
- May 3, 2026 (6 months ago)
- Last release
- Apr 6, 2026 (6 months ago)
- Last package publish
- Apr 6, 2026 (6 months ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.daedalus/mcp-pwntools- Version
- 0.1.0
- Auth
- No auth
- Packages
- pypi mcp-pwntools
- License
- MIT
- Repository
- github.com/daedalus/mcp-pwntools
- First seen
- Oct 24, 2026
- Last checked
- Oct 25, 2026
More from daedalus
- 0.454score
MCP Reverse Engineering
daedalus
A sandboxed MCP tool for reverse engineering with multiple tool integrations
ConnectorCFreshness: CLocal★ 1↓ 59/wkClaude Code +5 - 0.433score
MCP Manimgl
daedalus
MCP server exposing manimgl mathematical animation functionality as tools for LLMs
ConnectorCFreshness: CLocal↓ 50/wkClaude Code +5 - 0.431score
MCP Qiskit
daedalus
MCP server exposing Qiskit 2.3.1 quantum computing functionality
ConnectorCFreshness: CLocal↓ 38/wkClaude Code +5 - 0.427score
MCP Sparql
daedalus
MCP server exposing SPARQL query functionalities for LLMs
ConnectorCFreshness: CLocalRead-only↓ 29/wkClaude Code +5 - 0.381score
MCP Sigrok
daedalus
MCP server exposing sigrok-cli functionality for logic analyzer hardware and protocol decoding
ConnectorDFreshness: DLocal★ 2↓ 36/wkClaude Code +5 - 0.380score
MCP LLM Gateway
daedalus
MCP-compatible LLM gateway that proxies completion requests.
ConnectorDFreshness: DLocal↓ 59/wkClaude Code +5
Cite this page
MCP Pwntools. Agent Mart. https://agentmart.dev/connectors/daedalus-mcp-pwntools (last updated 2026-10-25)