home / mcp / pcileech mcp server

PCILeech MCP Server

Provides a local MCP server to perform DMA-based memory read, write, and formatting via PCILeech with a natural language interface.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "evan7198-mcp_server_pcileech": {
      "command": "C:\\\\path\\\\to\\\\mcp_server_pcileech\\\\.venv\\\\Scripts\\\\python.exe",
      "args": [
        "C:\\\\path\\\\to\\\\mcp_server_pcileech\\\\main.py"
      ]
    }
  }
}

You deploy the PCILeech MCP server to expose memory operations via a simple, low-latency MCP interface. It lets AI assistants perform memory read, write, and multi-view formatting through natural language commands, by running PCILeech as a local subprocess and communicating over a standard MCP channel.

How to use

You connect to the MCP server from your MCP client by selecting the local stdio server configuration described here. Use the three MCP tools to read, write, and format memory across the target system via PCILeech, enabling memory debugging and analysis with natural language interactions.

How to install

Follow these steps to set up the MCP server locally on Windows with Python and PCILeech.

Step 1: Prepare prerequisites

  • Windows 10/11 (x64)
  • Python 3.10+
  • PCILeech hardware properly configured and working
  • PCILeech binary included in the pcileech/ folder

Step 2: Clone the project

git clone https://github.com/Evan7198/mcp_server_pcileech
cd mcp_server_pcileech

Step 3: Create and activate a virtual environment

python -m venv .venv
.venv\Scripts\activate

Step 4: Install dependencies

pip install -r requirements.txt

Step 5: Verify PCILeech is detectable

cd pcileech
pcileech.exe probe

Step 6: Configure the MCP client (Claude Code)

"mcpServers": {
  "pcileech": {
    "command": "C:\\path\\to\\mcp_server_pcileech\\.venv\\Scripts\\python.exe",
    "args": [
      "C:\\path\\to\\mcp_server_pcileech\\main.py"
    ],
    "cwd": "C:\\path\\to\\mcp_server_pcileech",
    "env": {}
  }
}

Step 7: Start or restart your MCP client

Restart Claude Code to load the MCP server configuration and establish the stdio channel to the local Python process running the MCP server.

Configuration

The server uses a configuration block to define how to launch the PCILeech wrapper and how the MCP server exposes itself. The recommended local setup for the PCLeech MCP server is shown below.

Example configuration

{
  "pcileech": {
    "executable_path": "pcileech\\pcileech.exe",
    "timeout_seconds": 30
  },
  "server": {
    "name": "mcp-server-pcileech",
    "version": "0.1.0"
  }
}

Usage examples

Once configured, you can issue natural language requests to perform memory operations through the MCP interface. Examples include reading, writing, and formatting memory around specific addresses.

Troubleshooting

If you encounter issues, check the following common problems and solutions.

PCILeech not found

Error: PCILeech executable not found. Verify the path in the configuration points to the correct location of pcileech.exe.

Hardware not connected

Warning: PCILeech connection verification failed. Ensure PCILeech hardware is properly connected and drivers are installed. Test with pcileech.exe probe directly.

Memory read/write failures

Error: Memory read/write failed. Check that the target address is valid and accessible. Confirm hardware access permissions and test with the PCILeech CLI.

Timeouts

Error: PCILeech command timed out. If operations are legitimately slow, increase timeout_seconds in the configuration.

Project structure

The project includes an MCP server entry point, a PCILeech integration layer, configuration, dependencies, and PCILeech binaries. This organization supports a clean separation between MCP protocol handling and direct PCILeech interactions.

Development notes

Code formatting, type checking, and tests help ensure reliability. Use tools like Black for formatting, MyPy for type checking, and PyTest for tests to maintain quality during development.

Notes on security and licensing

Operate only on systems you are authorized to debug. Respect legal and organizational policies when performing memory operations, especially in production or sensitive environments.

Version and support

Version: v0.1.0. Support via the established channels for the PCILeech and MCP communities.

Available tools

memory_read

Read raw memory from a specified address and length, returning a hex string with metadata.

memory_write

Write hex-encoded data to a specified memory address and return a success status.

memory_format

Read memory and present it in multiple views, including hex dump, ASCII, byte array, DWORDs, and raw hex.