idapin-mcp
Uses Intel PIN to instrument Windows executables, providing debugger capabilities such as launching targets, setting breakpoints, reading and writing registers/memory, controlling execution, and instruction tracing.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@idapin-mcp pin_launch on C:\Windows\System32\calc.exe, set breakpoint at CreateFileW, resume, trace"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
idapin-mcp
Windows pipeline that compiles IDA’s idadbg PIN tool, wires it to IDA Pro, and exposes the same pintool to any MCP-capable AI (Grok, Claude Desktop, Cursor, VS Code, …) without opening the IDA GUI.
This repository includes full project source: the Windows pintool (pintool/), the MCP server (src/idapin_mcp/), and the install/build pipeline (scripts/).
PIN instruments a live process. idadbg speaks the IDA pintool protocol (v9). The MCP process is a TCP client for that protocol, so AI tools do not need the IDA GUI.
Intel PIN (pin.exe) is not vendored here (Intel license). scripts/setup.ps1 downloads the PIN 3.31 MSVC kit.
What you get
Path | Role |
|
|
| MCP stdio server ( |
| Download PIN → build pintools → patch IDA |
| Example IDA + MCP snippets |
AI client --stdio MCP--> python -m idapin_mcp --TCP--> pin.exe + idadbg*.dll --instrument--> target.exe
IDA Pro --dbg_pin.cfg--> pin.exe + same DLLs (optional GUI tracer)Related MCP server: headless-re-mcp
Requirements (Windows)
Windows 10/11 x64
Python 3.10+
Visual Studio 2017 or newer with MSVC x86/x64 (2019, 2022, 2026 all work; the build script picks the newest toolset)
Windows 10 SDK (any 10.0.* installed with VS)
IDA Pro 7.x/8.x/9.x optional, only if you also want the GUI PIN tracer
Network once, to fetch Intel PIN 3.31 (
pin-external-3.31-98869-…-msvc-windows.zip)
Admin is not required if you cannot write C:\pin — set -PinRoot "$env:LOCALAPPDATA\idapin-mcp\pin" (paths without spaces are safer for PIN).
One-command setup
In PowerShell from the repo root:
Set-ExecutionPolicy -Scope Process Bypass
.\scripts\setup.ps1That will:
Create
%LOCALAPPDATA%\idapin-mcp\venvandpip install -e .Download PIN 3.31 into
C:\pin(or the path you pass)Copy
pintool/intoPIN\source\tools\idapin, retarget the VS project, build Win32 + x64 ReleasePatch
dbg_pin.cfgin every IDA install it findsRegister the MCP server in Grok, Claude Desktop, Cursor, and VS Code user configs
Then restart the AI client.
Custom PIN location:
.\scripts\setup.ps1 -PinRoot "$env:LOCALAPPDATA\idapin-mcp\pin"Step-by-step instead of the umbrella script: docs/windows-build.md.
MCP tools (for any AI)
After launch the process is suspended at PROCESS_STARTED. Set breakpoints, then resume.
Tool | Purpose |
| Start PIN + pintool on a Windows EXE |
| Session and debug events |
| Software breakpoints |
| Registers / memory |
| Control |
| Mapped sections |
| Instruction tracing |
| Kill the PIN process tree |
Example prompt:
Use idapin MCP:
pin_launchonC:\Windows\System32\cmd.exewith args/c echo hi, read registers, thenpin_resumeandpin_stop.
Manual MCP snippet: configs/mcp.example.json. Client-specific notes: docs/ai-clients.md.
IDA Pro (GUI tracer)
setup.ps1 writes:
PIN_PATH = "C:\\pin\\pin.exe";
PIN_TOOL_PATH = "C:\\pin\\source\\tools\\idapin";
PIN_TOOL_OPTIONS = 1In IDA: Debugger → Select debugger → PIN tracer, then F9. Details: docs/ai-clients.md.
Headless idalib cannot start pin_user.dll; that is why this MCP talks to the pintool directly.
License
Split licensing. The MCP server is MIT; the pintool is not.
Tree | License / copyright |
| MIT — LICENSE |
| Hex-Rays copyright 2014–2019 — pintool/COPYRIGHT. Not MIT. Kept in source form because Intel forbids redistributing compiled PIN tools. |
Intel PIN kit ( | Intel. Not in this repo. Download separately and accept Intel’s license. |
See NOTICE. Do not relicense pintool/ as MIT.
Do not commit pin.exe, the PIN zip, or compiled *.dll.
Publish to GitHub from a browser (no Git install): docs/publish-github.md.
Available Tools
15 toolspin_add_bptB
Add a software breakpoint at ea (hex or int).
Inputs: ea (required).
pin_del_bptB
Remove a software breakpoint.
Inputs: ea (required).
pin_eventsB
Return (and optionally clear) queued debug events from the pintool.
Inputs: clear.
pin_launchA
Start Intel PIN + idadbg on a Windows EXE (no IDA GUI). Leaves the process suspended at PROCESS_STARTED so you can set breakpoints, then call pin_resume.
Inputs: target (required), args, port, trace_insns, +1 more.
pin_meminfoB
List mapped image/section ranges from the pintool.
Inputs: no named parameters.
pin_pauseB
Pause the instrumented process.
Inputs: no named parameters.
pin_read_memA
Read up to 1024 bytes of target memory. Returns hex.
Inputs: ea (required), size.
pin_read_regsC
Read general-purpose registers for a thread.
Inputs: tid.
pin_resumeA
Resume after an event. eid defaults to the last received event (PROCESS_STARTED=1, BREAKPOINT=5, STEP=6).
Inputs: eid.
pin_set_traceB
Set tracing flags (TF_TRACE_INSN=2, TF_REGISTERS=0x10, TF_TRACE_EVERYTHING=0x40). Combine with bitwise OR.
Inputs: flags (required).
pin_statusB
PIN session status: connected, last event, paths.
Inputs: no named parameters.
pin_stepB
Single-step the given OS thread (tid 0 = last event thread).
Inputs: tid.
pin_stopA
Send EXIT to the pintool and kill the PIN process tree.
Inputs: no named parameters.
pin_trace_countB
Number of recorded trace events currently buffered.
Inputs: no named parameters.
pin_write_memC
Write hex bytes to target memory.
Inputs: ea (required), hex (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 15 tools
Each tool targets a distinct debugger operation: session control (launch/status/resume/pause/step/stop), event retrieval, breakpoint add/del, register/memory read/write, and tracing. The only slight adjacency is pin_events vs pin_trace_count, but the descriptions clearly separate debug events from buffered trace events.
All tools use a uniform pin_ prefix in snake_case with predictable verb_noun or noun forms (pin_add_bpt, pin_read_mem, pin_set_trace, pin_status). No mixed conventions or casing inconsistencies.
15 tools is well-scoped for a debugger/instrumentation control surface, with each tool covering a necessary operation rather than redundant variants. The count supports full session lifecycle without bloat.
Core debugger coverage is strong: launch/attach, breakpoints add/remove, stepping, memory read/write, register read, memory map, tracing, and teardown. Notable gaps remain: no pin_write_regs (only read), no breakpoint enumeration/list, and no module/symbol lookup, which slightly limits register and breakpoint management workflows.
Maintenance
Related MCP Connectors
MCP server for OpenAI API (chat completions, image generation, embeddings) via AceDataCloud
Reasoning, code, anti-deception, memory harness MCP tools. Stdio or HTTPS api.ejentum.com/mcp
Persistent memory, knowledge graph, task management and more for AI agents via MCP.
Generate AI video, images and audio, and browse your history, from any MCP client.
Related MCP Servers
- FlicenseBqualityDmaintenanceA simple MCP server exposing persistent, scriptable Frida dynamic instrumentation to an AI agent for Windows reversing, malware/security analysis, and dynamic debugging.19-
- AlicenseNot gradedqualityBmaintenanceHeadless reverse engineering MCP server integrating IDA Pro for static analysis and x64dbg for dynamic debugging via controlled MCP tools.5GPL 3.0
- AlicenseNot gradedqualityFmaintenanceEnables AI-driven reverse engineering with x64dbg via 71+ MCP tools for breakpoints, memory, disassembly, tracing, debug control, PE analysis, and anti-anti-debugging, supporting HTTP, SSE, and stdio transports.2MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to autonomously inspect and control IDA Pro via MCP, providing tools for decompilation, disassembly, cross-references, renaming, typing, patching, searching, debugging, and arbitrary IDAPython execution.MIT