Skip to main content

MCP for reverse engineering

Project description

pcm

PCM (MCP but reversed), MCP for reverse engineering.

Features

  • Analysis
    • IDA
      • repl (IDAPython)
      • disassembly
      • decompilation
      • set types
      • ...
  • Memory
    • Engagement reports 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:

  1. Clone the repository
    git clone https://github.com/rand-tech/pcm
    
  2. Add pcm to you mcp config example
    {
        "mcpServers": {
            "pcm": {
                "command": "uv",
                "args": [
                    "--directory",
                    "path_to/pcm",
                    "run",
                    "server.py"
                ]
            }
        }
    }
    
  3. Use the MCP

Related projects:

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_pcm-0.1.0.tar.gz (15.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iflow_mcp_pcm-0.1.0-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

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

Hashes for iflow_mcp_pcm-0.1.0.tar.gz
Algorithm Hash digest
SHA256 15860bdc792dc99e34c7b23cc7c4562a59d6c1760c63599d548bc929bf599269
MD5 ef10230b0e0f15f076e11fb3f8cbbd7a
BLAKE2b-256 ef9f90afea0d4e55b0cbdf925c046b774bfda05851e13b88d973804b907c9e81

See more details on using hashes here.

File details

Details for the file iflow_mcp_pcm-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for iflow_mcp_pcm-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b6e9464d497f9ff04bf947441b469a5a3de518392ba57f564190321fc27fe61e
MD5 78c4d411cce0a0dacf5dd6e50609c1cc
BLAKE2b-256 1806d4f29e18bc732ccb56868c62fde24ec00ac2a427ad44f6108c9cfab95e61

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page