Skip to main content

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.

Metadata

Release files for iflow-mcp_pcm 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iflow-mcp_pcm 0.1.0
File Size Uploaded
iflow_mcp_pcm-0.1.0.tar.gz 15.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_pcm 0.1.0
File Interpreter ABI Platform
iflow_mcp_pcm-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 30.7 kB

Release files / iflow_mcp_pcm-0.1.0.tar.gz

Download URL iflow_mcp_pcm-0.1.0.tar.gz
Size 15.5 kB
Tags Source
SHA-256 checksum
How to use checksums
15860bdc792dc99e34c7b23cc7c4562a59d6c1760c63599d548bc929bf599269
BLAKE2b-256 checksum
How to use checksums
ef9f90afea0d4e55b0cbdf925c046b774bfda05851e13b88d973804b907c9e81
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.9

Release files / iflow_mcp_pcm-0.1.0-py3-none-any.whl

Download URL iflow_mcp_pcm-0.1.0-py3-none-any.whl
Size 15.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b6e9464d497f9ff04bf947441b469a5a3de518392ba57f564190321fc27fe61e
BLAKE2b-256 checksum
How to use checksums
1806d4f29e18bc732ccb56868c62fde24ec00ac2a427ad44f6108c9cfab95e61
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.9

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page