WineDbg MCP Server
A server that wraps the Wine Debugger (winedbg) and exposes its functionality through a simple API, allowing you to debug Windows applications running under Wine from a remote client.
README Documentation
WineDbg MCP Server
This project provides a server that wraps the Wine Debugger (winedbg) and exposes its functionality through a simple API. This allows you to debug Windows applications running under Wine from a remote client.
Installation
-
Install Wine and
winedbg. -
Create a Python virtual environment and install the required dependencies:
python -m venv .venv source .venv/bin/activate pip install -r requirements.txt
Usage
-
Start the server:
python -m src.mcp_server -
Run the test client to see the server in action:
python tests/test_client.py
Testing with the Test App
This project includes a simple C application that can be used for testing the server.
-
Compile the test application for 32-bit Windows:
i686-w64-mingw32-gcc -o tests/test_app.exe tests/test_app.cIf you don't have the MinGW-w64 cross-compiler, you can install it on Debian/Ubuntu with:
sudo apt-get install gcc-mingw-w64-i686 -
Run the test client:
python tests/test_client.pyThe test client will automatically use the
test_app.exeto test the server's functionality.
MCP Server Configuration
If you are using a client that supports launching MCP servers, you can configure it with the following JSON. This tells the client how to start the winedbg server.
Note: Make sure to replace /ABSOLUTE/PATH/TO/PARENT/FOLDER/mcp-winedbg with the actual absolute path to this project directory on your system.
{
"mcpServers": {
"winedbg": {
"command": "/ABSOLUTE/PATH/TO/PARENT/FOLDER/mcp-winedbg/.venv/bin/python",
"args": [
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/mcp-winedbg/src/mcp_server.py"
]
}
}
}
Available Tools
The server exposes the following tools:
run: Run an executable inwinedbg.attach: Attach to a process.quit: Quitwinedbg.detach: Detach from the process.kill: Kill the process.cont: Continue execution.break_at: Set a breakpoint.watch: Set a watchpoint.info_break: Get breakpoint info.delete_breakpoint: Delete a breakpoint.backtrace: Get a backtrace.frame: Select a stack frame.up: Move up the stack.down: Move down the stack.step: Step execution.next: Next execution.stepi: Step instruction.nexti: Next instruction.finish: Finish execution of the current function.print_var: Print a variable.examine_memory: Examine memory.info_locals: Get local variables.info_args: Get function arguments.info_proc: Get process info.info_threads: Get thread info.info_share: Get shared library info.set_debug_channel: Set theWINEDEBUGenvironment variable.get_debug_channels: Get theWINEDEBUGenvironment variable.