MCP for reverse engineering
Project description
pcm
PCM (MCP but reversed), MCP for reverse engineering.
Features
- Analysis
- IDA
- repl (IDAPython)
- disassembly
- decompilation
- set types
- ...
- IDA
- Memory
- Engagement reports
- Engagement reports
Full list of features
- `get_function_by_name(name)`: Get a function by its name.
- `get_function_by_address(address)`: Get a function by its address.
- `get_current_address()`: Get the address currently selected by the user.
- `get_current_function()`: Get the function currently selected by the user.
- `list_functions()`: List all functions in the database.
- `decompile_function(address)`: Decompile a function at the given address using Hex-Rays.
- `disassemble_function(address)`: Get assembly code (address: instruction; comment) for a function.
- `get_entrypoints()`: Get all entrypoints in the binary.
- `get_function_blocks(address)`: Get all basic blocks in a function.
- `get_function_cfg(address)`: Get control flow graph for a function.
- `get_xrefs_to(address)`: Get all cross references to the given address.
- `get_xrefs_from(address)`: Get all cross references from the given address.
- `set_decompiler_comment(address, comment)`: Set a comment for a given address in the function pseudocode.
- `set_disassembly_comment(address, comment)`: Set a comment for a given address in the function disassembly.
- `rename_local_variable(function_address, old_name, new_name)`: Rename a local variable in a function.
- `rename_function(function_address, new_name)`: Rename a function.
- `set_function_prototype(function_address, prototype)`: Set a function's prototype.
- `set_local_variable_type(function_address, variable_name, new_type)`: Set a local variable's type.
- `create_structure_type(name, members, is_union)`: Create a new structure type.
- `get_metadata()`: Get metadata about the current IDB.
- `repl_idapython(content)`: Run IDAPython code and return the results with stdout/stderr captured.
- `add_note(title, content, address, tags)`: Add a new analysis note for the current binary.
- `update_note(note_id, title, content, tags)`: Update an existing note.
- `get_notes(file_md5, address, tag)`: Get analysis notes for a binary.
- `delete_note(note_id)`: Delete an analysis note.
Installations
Prerequisites:
- Clone the repository
git clone https://github.com/rand-tech/pcm - Add
pcmto you mcp config example{ "mcpServers": { "pcm": { "command": "uv", "args": [ "--directory", "path_to/pcm", "run", "server.py" ] } } } - Use the MCP
Related projects:
- https://github.com/mrexodia/ida-pro-mcp
- https://github.com/MxIris-Reverse-Engineering/ida-mcp-server
Attribution: This project is based on IDA Pro MCP by Duncan Ogilvie (@mrexodia). Thank you
License: This project is licensed under the MIT License - see the LICENSE file for details. The original code is also licensed under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file iflow_mcp_pcm-0.1.0.tar.gz.
File metadata
- Download URL: iflow_mcp_pcm-0.1.0.tar.gz
- Upload date:
- Size: 15.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15860bdc792dc99e34c7b23cc7c4562a59d6c1760c63599d548bc929bf599269
|
|
| MD5 |
ef10230b0e0f15f076e11fb3f8cbbd7a
|
|
| BLAKE2b-256 |
ef9f90afea0d4e55b0cbdf925c046b774bfda05851e13b88d973804b907c9e81
|
File details
Details for the file iflow_mcp_pcm-0.1.0-py3-none-any.whl.
File metadata
- Download URL: iflow_mcp_pcm-0.1.0-py3-none-any.whl
- Upload date:
- Size: 15.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6e9464d497f9ff04bf947441b469a5a3de518392ba57f564190321fc27fe61e
|
|
| MD5 |
78c4d411cce0a0dacf5dd6e50609c1cc
|
|
| BLAKE2b-256 |
1806d4f29e18bc732ccb56868c62fde24ec00ac2a427ad44f6108c9cfab95e61
|