Ghidra MCP桥
这个项目提供了一个基于Python的桥梁来连接 克劳德桌面 和 Gemini CLI 到 吉德拉 使用 模型上下文协议(MCP).
它充当中介:
- 听着 通过标准输入/输出(Stdio)连接到Claude Desktop或Gemini CLI。
- 代理 向Ghidra的请求 GhidrAssistMCP 服务器通过服务器发送事件(SSE)和HTTP。
这是必要的,因为Claude Desktop和Gemini CLI主要通过Stdio使用本地MCP服务器,而Ghidra插件则公开了一个SSE端点。
先决条件
- Python 3.10+ 安装在您的系统上。
- 克劳德桌面 已安装应用程序(或 Gemini CLI 已配置)。
- 吉德拉 安装。
- GhidrAssistMCP 插件安装在Ghidra中。
安装
- 克隆或下载此存储库。
- 安装所需的Python依赖项:
pip3 install -r requirements.txt用法
1.启动Ghidra
确保Ghidra正在运行 GhidrAssistMCP 服务器处于活动状态。默认情况下,它会监听 http://127.0.0.1:8080/sse.
2.配置克劳德桌面
您需要告诉Claude Desktop如何启动此网桥。打开配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json
将以下条目添加到 mcpServers 对象:
{
"mcpServers": {
"ghidra": {
"command": "python3",
"args": [
"/absolute/path/to/ghidra_mcp_bridge/ghidra_mcp_sse_bridge.py"
]
}
}
}注: 替换/absolute/path/to/ghidra_mcp_bridge/保存文件的实际路径。如果您正在使用虚拟环境(推荐),请更换"python3"使用venv-python可执行文件的绝对路径(例如。,"/path/to/venv/bin/python").
3.配置Gemini CLI
您需要告诉Gemini CLI如何启动此网桥。打开Gemini CLI配置文件,该文件通常位于 ~/.gemini/settings.json (用户级别)或 .gemini/settings.json (项目层面)。
将以下条目添加到 mcpServers 对象:
{
"mcpServers": {
"ghidra": {
"command": "python3",
"args": [
"/absolute/path/to/ghidra_mcp_bridge/ghidra_mcp_sse_bridge.py"
]
}
}
}注: 替换/absolute/path/to/ghidra_mcp_bridge/保存文件的实际路径。如果您正在使用虚拟环境(推荐),请更换"python3"使用venv-python可执行文件的绝对路径(例如。,"/path/to/venv/bin/python").
4.连接
重新启动Claude Desktop或Gemini CLI。您应该在界面中看到一个“ghidra”连接图标(插头)。现在,您可以让Claude(或Gemini CLI)在Ghidra中执行任务,它将使用GhidrAssistMCP插件提供的工具。
故障排除
- 连接错误: 如果网桥无法连接,请确保Ghidra正在运行,GhidrAssistMCP服务器已启动。检查日志(Claude Desktop或Gemini CLI通常会记录stderr)中是否有以下消息
CONNECTION ERROR: Could not connect to http://127.0.0.1:8080/sse. - 端口冲突: 如果您的Ghidra服务器在其他端口上运行,请修改
GHIDRA_SSE_URL变量inghidra_mcp_sse_bridge.py以匹配您的设置。
