Pyghidra MCP Server
Ghidra reverse engineering capabilities accessible to AI agents and development workflows.
Data last scanned today · Reviewed today
Overview
Pyghidra-MCP serves as a functional bridge between the Ghidra software reverse engineering suite and the Model Context Protocol. By leveraging pyghidra and jpype, it exposes the ProgramAPI and FlatProgramAPI to language models, allowing for automated analysis of binaries within an AI-assisted environment. The server operates in two distinct modes to support varying use cases. A headless mode provides a path for CLI-driven automation and CI/CD integration, while a GUI mode launches the full Ghidra interface to share live program state during analysis.
Our verdict
This project holds a high risk level with a security score of 45/100. Because it is a community-maintained tool that has not yet undergone editorial or security review, users should exercise caution. Specifically, the lack of an audit for read-only modes and authentication mechanisms means users should carefully monitor its behavior when integrating with sensitive reverse engineering projects.
- Supports headless CLI analysis for automated workflows
- Allows live GUI synchronization with Ghidra state
- Zero direct dependencies reduces supply-chain surface area
- Includes active unit and integration test coverage
- Community-maintained without official vendor support
- Authentication methods remain unreviewed
- Security properties of read-only mode not yet verified
Tools
| Tool | Description | Risk |
|---|---|---|
| search_code | Search decompiled pseudo-C using semantic vector search or literal matching. | low |
| list_xrefs | List cross-references to function(s), symbol(s), or address(es). | low |
| gen_callgraph | Generates a MermaidJS call graph for a specified function. | low |
| decompile_function | Decompile function(s) by name or address. | low |
| list_exports | Lists all exported functions and symbols from a specified binary. | low |
| list_imports | Lists all imported functions and symbols for a specified binary. | low |
| read_bytes | Reads raw bytes from memory at a specified address. | low |
| search_strings | Searches strings within a binary. | low |
| search_symbols_by_name | Search for symbols within a binary by name. | low |
| import_binary | Imports a binary from a designated path into the current Ghidra project. | medium |
Compatibility
| Client | Local | Docker | Remote | Read-only |
|---|---|---|---|---|
| Claude Desktop | ||||
| Cursor | ||||
| VS Code | ||||
| Windsurf | ||||
| ChatGPT |
Frequently asked questions
›What operating modes are available for running the server?
The server supports a headless mode for CLI-driven automation and a --gui mode that launches Ghidra and shares live program state with the GUI.
›What transport mechanisms can be used to connect to the server?
The server supports stdio for local MCP hosts, streamable-http for multi-client access, and legacy sse.
›Can I use this server to interact with existing Ghidra projects?
Yes, you can specify a path to an existing Ghidra project file using the --project-path flag, which is particularly relevant when using the GUI mode.
›How does the server handle program analysis during startup?
The server features asynchronous startup, allowing it to begin handling incoming requests while binaries are still being analyzed in the background.
›Is there a command-line interface tool available for this server?
Yes, pyghidra-mcp-cli is an HTTP client designed to issue terminal commands against a server running in streamable-http mode.
Badge
Maintain this server? Add the live badge to your README.