nightwing-us/mcpyghidra
GitHub: nightwing-us/mcpyghidra
将 Ghidra 的逆向工程能力通过 MCP 协议暴露给 LLM 客户端,实现 AI 辅助的二进制分析。
Stars: 2 | Forks: 0
# MCPyGhidra
一个将 [Ghidra](https://ghidra-sre.org/) 的
逆向工程能力暴露给 LLM 客户端的 MCP (Model Context Protocol) 服务器。基于 [pyghidra-decaf](https://github.com/nightwing-us/pyghidra-decaf) 构建。
MCPyGhidra 通过 MCP 暴露二进制分析能力:反编译、反汇编、符号查找、交叉引用、类型检查、二进制修补以及可脚本化分析。
## 前置条件
- **Ghidra** 较新的版本(已使用 Ghidra 11.x+ 测试;[下载](https://ghidra-sre.org/))
- **Java** 兼容的 JDK(随 Ghidra 一起提供)
- **Python** 3.10–3.13
- **pyghidra-decaf**(通过 PyPI 与 mcpyghidra 一起安装)
## 安装说明
```
pip install mcpyghidra
```
然后配置你的 Ghidra 安装路径:
```
export GHIDRA_INSTALL_DIR=/path/to/ghidra_12.0_PUBLIC
```
有关详细的设置,请参阅 [docs/installation.md](docs/installation.md)。
## 快速开始
### Headless 模式
以 headless 模式启动 MCP 服务器进行非交互式分析:
```
export GHIDRA_INSTALL_DIR=/path/to/ghidra
mcpyghidra-headless --binary /path/to/firmware.elf
```
服务器将向 stdout 打印 JSON 就绪信号:
```
{"status": "ready", "host": "127.0.0.1", "port": 6050, "binary": "/path/to/firmware.elf"}
```
然后将你的 MCP 客户端配置为连接到 `http://127.0.0.1:6050/mcp`。
### 配合 MCP 客户端使用
将任何兼容 MCP 的客户端指向正在运行的服务器:
```
{
"mcpServers": {
"ghidra": {
"type": "streamable-http",
"url": "http://127.0.0.1:6050/mcp"
}
}
}
```
有关特定客户端的示例,请参阅 [docs/mcp-client-config.md](docs/mcp-client-config.md)。
## 暴露的功能
MCPyGhidra 暴露了 26 个工具,分为以下几个类别:
- **列表与上下文:** 列出入口、检查二进制元数据、解析函数
- **分析:** 反编译、反汇编、交叉引用、控制流图
- **类型:** 类型枚举和详细检查
- **修改:** 重命名符号、更新变量、设置注释、修补指令
- **脚本:** 带有回传客户端 RPC 回调的 Python 代码执行
- **搜索:** 二进制模式和指令序列匹配
完整详情请参阅 [docs/tools-reference.md](docs/tools-reference.md)。
## 故障排除
- **`GHIDRA_INSTALL_DIR not set`** — 将其指向你的 Ghidra 安装路径:`export GHIDRA_INSTALL_DIR=/path/to/ghidra_12.0_PUBLIC`。
- **客户端无法连接** — 确认服务器正在运行,并且可以通过 Streamable HTTP 端点 `http://127.0.0.1:6050/mcp` 访问。
- **服务器启动挂起** — 分析大型二进制文件可能需要几分钟;尝试使用一个小型二进制文件(例如 `mcpyghidra-headless --binary /bin/ls`)来验证设置。
完整的故障排除指南请参阅 [docs/installation.md](docs/installation.md) 和 [docs/quickstart.md](docs/quickstart.md)。
## 文档
- [安装与设置](docs/installation.md)
- [快速入门指南](docs/quickstart.md)
- [连接 MCP 客户端](docs/mcp-client-config.md)
- [工具参考](docs/tools-reference.md)
- [运行模式 (Headless 与 GUI)](docs/quickstart.md)
- [RPC 回调(高级)](docs/specs/rpc-callbacks.md)
- [文档中心](docs/index.md)
## 开发说明
本项目使用 `uv` 进行环境和包管理。
### 环境设置
```
curl -sSf https://astral.sh/uv/install.sh | bash
git clone https://github.com/nightwing-us/mcpyghidra.git
cd mcpyghidra
uv venv
uv pip install -e ".[dev]"
```
### 测试
```
uv run pytest --tb=short
```
### 类型检查
```
uv run mypy
```
### Lint 检查
```
uv run ruff check src tests
uv run ruff format src tests
```
## 相关项目
MCPyGhidra 和 MCPyIDA 作为姐妹项目并行维护,旨在实现功能对等 —— MCPyGhidra 针对 Ghidra,而 MCPyIDA 针对 IDA Pro。
- [MCPyIDA](https://github.com/nightwing-us/mcpyida) — 针对
IDA Pro 的等效 MCP 服务器
- [pyghidra-decaf](https://github.com/nightwing-us/pyghidra-decaf) — 原生
Python 的 Ghidra 插件开发框架(支撑 MCPyGhidra)
## 许可证
Apache-2.0 — 详情请参阅 [LICENSE](LICENSE)。
版权所有 © 2026 Nightwing Group, LLC.
标签:Amass, DLL 劫持, Findomain, Ghidra, JS文件枚举, MCP服务器, URL提取, 二进制分析, 云安全运维, 云资产清单, 反编译, 大语言模型, 逆向工具, 逆向工程