capstone-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_supported_architecturesA | List all supported CPU architectures. Returns available architecture identifiers for the 'arch' parameter used by disassemble_hex, disassemble_file_section, etc. |
| disassemble_hexA | Disassemble a hex-encoded byte string into assembly code. Args: hex_code: Hex-encoded machine code bytes, e.g. "554889e5" or "55 48 89 e5" (spaces are auto-stripped). arch: CPU architecture. Use list_supported_architectures to see available values. Default: x86_64. base_address: Base address as a hex string (e.g. "0x401000"). Default: "0". max_instructions: Maximum number of instructions to disassemble. 0 means unlimited. Returns: Formatted disassembly output with address, bytes, mnemonic and operands. |
| disassemble_file_sectionA | Disassemble a named section from a binary file (PE/ELF/Mach-O). Args: file_path: Absolute path to the binary file. section_name: Section name to disassemble. Default: ".text". arch: CPU architecture. Auto-detected from file header if omitted. max_instructions: Maximum instructions to disassemble. Default: 200. Set 0 for unlimited. Returns: Disassembly output for the section, including file metadata. |
| disassemble_at_addressA | Disassemble code at a specific virtual address in a binary file. Args: file_path: Absolute path to the binary file. virtual_address: Starting virtual address as hex string (e.g. "0x401000"). size: Number of bytes to read. Default: 256. arch: CPU architecture. Auto-detected if omitted. max_instructions: Maximum instructions to disassemble. Default: 50. Returns: Disassembly output at the specified address. |
| get_binary_infoA | Get detailed metadata of a binary file (PE/ELF/Mach-O). Includes file format, architecture, entrypoint, section list, imports/exports, etc. Args: file_path: Absolute path to the binary file. Returns: File metadata in JSON format. |
| search_instructionsA | Search for instructions matching a specific pattern in disassembled code. Filter by mnemonic name or instruction group (call/jump/ret/interrupt). Args: hex_code: Hex-encoded machine code bytes. arch: CPU architecture. Default: x86_64. base_address: Base address. Default: "0". mnemonic: Mnemonic to search for (partial match), e.g. "mov", "call", "push". group: Instruction group to filter: call, jump, ret, interrupt. Returns: List of matching instructions. |
| search_instructions_in_fileA | Search for instructions matching a pattern in a binary file's section. Args: file_path: Absolute path to the binary file. section_name: Section name. Default: ".text". arch: CPU architecture. Auto-detected if omitted. mnemonic: Mnemonic to search for (partial match). group: Instruction group to filter: call, jump, ret, interrupt. Returns: List of matching instructions. |
| analyze_code_flowA | Perform control flow analysis on machine code, identifying basic blocks, jumps, calls and returns. Args: hex_code: Hex-encoded machine code bytes. arch: CPU architecture. Default: x86_64. base_address: Base address. Default: "0". Returns: JSON-formatted control flow analysis with basic blocks, edges, calls and return info. |
| find_xrefs_hexA | Find all cross-references to a target address in hex-encoded machine code. Searches for call, jump, immediate value, and memory displacement references to the specified target address. Args: hex_code: Hex-encoded machine code bytes. target_address: Target address to find references to (hex string, e.g. "0x401000"). arch: CPU architecture. Default: x86_64. base_address: Base address. Default: "0". Returns: List of cross-references with source address, type, and instruction. |
| find_xrefs_in_fileA | Find all cross-references to a target address in a binary file's section. Scans the specified section for all instructions that reference the target address via call, jump, immediate operand, or memory displacement. Args: file_path: Absolute path to the binary file. target_address: Target address to find references to (hex string, e.g. "0x401000"). section_name: Section to scan. Default: ".text". arch: CPU architecture. Auto-detected if omitted. Returns: List of cross-references with source address, type, and instruction. |
| disassemble_entrypointA | Disassemble code at the binary file's entrypoint. Automatically locates the entrypoint address and disassembles from there. Args: file_path: Absolute path to the binary file. size: Number of bytes to read from the entrypoint. Default: 512. arch: CPU architecture. Auto-detected if omitted. max_instructions: Maximum instructions to disassemble. Default: 100. Returns: Disassembly output at the entrypoint. |
| disassemble_raw_offsetA | Read raw bytes at a file offset and disassemble them. Unlike disassemble_at_address, this uses a raw file offset instead of a virtual address. Args: file_path: Absolute path to the file (any file, not limited to PE/ELF). offset: File offset as hex string (e.g. "0x400"). size: Number of bytes to read. Default: 256. arch: CPU architecture. Default: x86_64. base_address: Display base address for disassembly. Defaults to offset value. max_instructions: Maximum instructions to disassemble. Default: 50. Returns: Disassembly output at the file offset. |
| find_rop_gadgets_hexA | Search for ROP gadgets (instruction sequences ending with ret) in hex-encoded machine code. Used for ROP chain construction in CTF Pwn challenges. Args: hex_code: Hex-encoded machine code bytes. arch: CPU architecture. Default: x86_64. base_address: Base address. Default: "0". max_gadget_len: Maximum number of instructions per gadget. Default: 5. max_results: Maximum number of results to return. Default: 100. Returns: List of ROP gadgets with addresses and instruction sequences. |
| find_rop_gadgets_in_fileB | Search for ROP gadgets in a binary file's section. Args: file_path: Absolute path to the binary file. section_name: Section name. Default: ".text". arch: CPU architecture. Auto-detected if omitted. max_gadget_len: Maximum instructions per gadget. Default: 5. max_results: Maximum results to return. Default: 100. Returns: List of ROP gadgets found. |
| extract_strings_from_fileA | Extract readable strings from a binary file (similar to the Args: file_path: Absolute path to the file. min_length: Minimum string length. Default: 4. encoding: Encoding type: "ascii", "utf16le", or "both" (default). max_results: Maximum results to return. Default: 300. Returns: List of extracted strings with offset and encoding info. |
| xor_brute_forceA | Brute-force single-byte XOR decryption, ranked by printable character ratio. Commonly used in CTF to decrypt simple XOR-encrypted flags or strings. Args: hex_data: Hex-encoded ciphertext data. min_printable_ratio: Minimum printable character ratio threshold. Default: 0.75. Returns: Candidate decryption results sorted by printable ratio. |
| xor_encode_decodeB | XOR encode/decode data with a specified key. Args: hex_data: Hex-encoded data. hex_key: Hex-encoded key (supports multi-byte keys, applied cyclically). Returns: XOR result as hex output with ASCII preview. |
| buffer_overflow_patternA | Generate or find offset in a cyclic buffer overflow pattern (De Bruijn sequence). Used to determine the exact EIP/RIP overwrite offset. Similar to Metasploit's pattern_create / pattern_offset. Args: action: "create" to generate a pattern, "offset" to find an offset. value: When action="offset", the value to search for (hex like "0x41386141" or ASCII string). length: When action="create", pattern length (default 200). When action="offset", search range. Returns: Generated pattern or offset lookup result. |
| check_securityA | Check security features of a binary file (similar to the checksec tool). ELF: NX, PIE, RELRO, Stack Canary, FORTIFY, RPATH, Stripped PE: DEP/NX, ASLR, SEH, CFG, Authenticode Mach-O: PIE, Stack Canary, Code Signing Args: file_path: Absolute path to the binary file. Returns: Security feature detection results. |
| analyze_plt_got_tableA | Analyze PLT/GOT tables (ELF) or IAT (PE) of a binary file. PLT/GOT is the core of ELF dynamic linking and the target of GOT overwrite attacks. IAT is the PE Import Address Table, commonly used for hooking and patching. Args: file_path: Absolute path to the binary file. Returns: PLT/GOT or IAT analysis results in JSON format. |
| hex_dump_fileA | View file contents as a formatted hex dump. Args: file_path: Absolute path to the file. offset: Starting file offset as hex string. Default: "0". length: Number of bytes to display. Default: 256. Max: 4096. Returns: Formatted hex dump with address, hex values, and ASCII display. |
| detect_crypto_in_fileA | Scan a binary file for known cryptographic algorithm constants and signatures. Detects: AES S-Box, SHA-256, SHA-1, MD5, DES, RC4, Blowfish, TEA/XTEA, CRC32, Base64 alphabet, and common file format signatures. Args: file_path: Absolute path to the file. Returns: List of detected crypto constants. |
| analyze_shellcode_hexA | Comprehensively analyze shellcode: disassembly + pattern detection + statistics. Detects NOP sleds, syscalls, common shellcode jump patterns, null bytes, etc. Args: hex_code: Hex-encoded shellcode. arch: CPU architecture. Default: x86_64. base_address: Base address. Default: "0". Returns: JSON-formatted shellcode analysis results. |
| syscall_lookupA | Look up Linux system call information. Supports lookup by number or name (partial match). Args: query: Syscall number (e.g. "59") or name (e.g. "execve", supports partial match). platform: Platform: x86, x86_64/x64, arm/arm32, arm64/aarch64. Default: x86_64. Returns: Matching syscall info including number, name, and arguments. |
| syscall_listA | List all system calls for a given platform. Args: platform: Platform: x86, x86_64/x64, arm/arm32, arm64/aarch64. Default: x86_64. Returns: Complete syscall table for the platform. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| binary_analysis_prompt | Generate a guided prompt for analyzing a binary file. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| architectures_resource | Return all supported CPU architecture reference information. |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Tokeii0/capstone-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server