Ghidra MCP 无头服务器部署指南Docker容器化与CI/CD批量逆向分析【免费下载链接】ghidra-mcpGhidra MCP Server — 200 MCP tools for AI-powered reverse engineering. GUI plugin headless server, lazy tool loading, convention enforcement, batch operations, Ghidra Server integration, and Docker deployment.项目地址: https://gitcode.com/gh_mirrors/ghi/ghidra-mcpGhidra MCP Server 是为 AI 驱动的逆向工程提供 200 个 MCP 工具的开源服务端项目其**无头服务器Headless Server**支持 Docker 容器化部署与 CI/CD 批量逆向分析——无需打开图形界面就能让 Ghidra 分析引擎在服务器上 7×24 小时运转接受 AI 客户端的自动化调用。本文将带你快速完成从零部署到规模化运行的完整流程。为什么选择无头服务器部署传统的 Ghidra 逆向分析依赖 GUI一台一台机器地打开、分析、记录。而 Ghidra MCP 的无头模式专为自动化场景设计使用场景说明 Docker 部署一条docker compose up拉起完整逆向分析服务⚙️ CI/CD 流水线在持续集成中自动执行编译、测试与实机回归 批量分析工作流通过 REST API 批量加载样本、反编译、重命名️ 服务端逆向工程无显示器、无 GUI 的服务器上运行 Ghidra无头服务器与 GUI 插件暴露完全相同的 REST API约 200 个端点核心实现位于 GhidraMCPHeadlessServer.java容器化入口脚本为 entrypoint.sh。一键部署Docker 单实例架构架构说明两个容器各管一摊docker compose up -d --build会拉起两个容器容器端口职责ghidra-mcp8089Ghidra 无头服务器对外提供普通 HTTP REST APIghidra-mcp-bridge8081MCP 桥接层在/mcp路径上提供 streamable-http 协议供 MCP 客户端连接 桥接容器特意共享 Ghidra 容器的网络命名空间network_mode: service因为桥接器出于安全考虑只允许连接回环地址。这一设计的完整原理见 docker-compose.yml 中的注释说明。最快部署步骤3 行命令⚠️鉴权令牌是强制的不是可选的。无头服务器绑定非回环地址时必须携带令牌否则容器会直接拒绝启动——这是针对API 能导入文件、能修改项目这一事实的安全底线。cd docker export GHIDRA_MCP_AUTH_TOKEN$(openssl rand -hex 32) docker compose up -d --build部署完成后用下面的健康检查确认服务就绪每次请求需携带 Bearer 令牌curl -H Authorization: Bearer $GHIDRA_MCP_AUTH_TOKEN \ http://localhost:8089/check_connection连接你的 MCP 客户端将任意 MCP 客户端指向http://localhost:8081/mcp请求头中带上同一个令牌即可开始与 AI 对话式地驱动 Ghidra。桥接层源码位于 python/bridge_mcp_ghidra/镜像构建文件为 Dockerfile.bridge。关键环境变量速查表变量默认值作用GHIDRA_MCP_AUTH_TOKEN必填服务鉴权令牌GHIDRA_MCP_PORT8089HTTP 服务端口JAVA_OPTS-Xmx4g -XX:UseG1GCJVM 内存参数PROGRAM_FILE-启动时自动加载的二进制文件路径PROJECT_PATH-启动时自动打开的 Ghidra 项目路径两个持久化卷也值得关注ghidra-data挂载到/data保存运行时数据ghidra-projects挂载到/projects保存 Ghidra 项目文件容器重建后分析成果不丢失。手动构建镜像如果你想在 CI 中自建镜像两个镜像都以仓库根目录为构建上下文docker build -t ghidra-mcp-headless:latest -f docker/Dockerfile . docker build -t ghidra-mcp-bridge:latest -f docker/Dockerfile.bridge .多阶段构建流程在 Dockerfile 中实现第一阶段下载 Ghidra 12.1.3 并用 Maven 构建无头 JAR第二阶段生成最小运行镜像且以非 root 的ghidra用户运行、内置健康检查。规模化部署多实例 Nginx 负载均衡当样本量大到单机扛不住时用多实例拓扑横向扩展docker compose -f docker-compose.multi.yml up -d --scale ghidra-mcp3该拓扑docker-compose.multi.yml由一个nginx:alpine负载均衡器 3 个可伸缩的 Ghidra 实例组成Nginx 采用least_conn最少连接策略分发请求配置文件为 nginx.conf。⚠️ 注意多实例拓扑刻意不包含 MCP 桥接容器。因为无会话保持的负载均衡会让连续的 MCP 工具调用落到不同实例上导致一次反编译和紧随其后的重命名操作聊不到同一个程序。批量 REST 调用请用 8089 端口直连。CI/CD 流水线让逆向分析跑在持续集成里 Ghidra MCP 自带的 CI 体系本身就是一份批量逆向分析流水线的参考实现全部位于 .github/workflows/ 目录工作流触发方式作用tests.yml推送到 main/dev/develop 或 PR合入门禁Maven 构建、Java 单测、离线测试、文档检查release-regression.yml手动 / PR 标签live-ghidra-regression自托管 Windows runner 上的真实 Ghidra 回归release.yml版本 tag 或手动触发稳定版发布产物构建回归测试的黄金基准机制回归体系依赖一套提交在仓库中的基准样本夹具 tests/fixtures/benchmark/——包含Benchmark.dll、BenchmarkDebug.exe两个 PE 样本及其事实基线 YAML。工作流会先校验这些提交样本与生成器输出仍一致再跑测试确保逆向结果可复现、可断言反编译输出、端点契约、批量写操作都能用快照比对。八档测试层级覆盖发布验证、基准读、基准写、多程序、调试器实机、负向契约等维度完整测试模型见 docs/TESTING.md。部署后常用 REST API 一览类别端点示例健康检查GET /check_connection、GET /get_version列表GET /list_functions、GET /list_strings、GET /list_imports分析GET /decompile_function、GET /get_xrefs_to、GET /search_functions修改POST /rename_function、POST /set_comment程序管理POST /load_program、POST /switch_program、POST /close_program完整的端点清单约 200 个维护在 tests/endpoints.json部署文档与更多示例见 docker/README.md。常见问题排查 ️症状排查方法服务器启动失败检查 8089 端口占用netstat -an \| grep 8089看容器日志docker logs ghidra-mcp没有加载程序通过 API 加载curl -X POST -d file/data/binary.exe http://localhost:8089/load_program或设置PROGRAM_FILE环境变量内存不足调大堆内存JAVA_OPTS-Xmx8g用docker stats ghidra-mcp监控用量容器启动即退出十有八九是忘了export GHIDRA_MCP_AUTH_TOKEN——compose 文件的:?语法会把这种情况变成一行提示而非神秘死机总结Ghidra MCP 无头服务器把重量级的 Ghidra 逆向分析能力变成了可部署、可伸缩、可回归的服务化资产单实例3 行命令拉起服务 MCP 桥接令牌鉴权开箱即安全多实例Nginx 负载均衡横向扩展批量 REST 分析吞吐倍增CI/CD基准样本 快照断言让逆向结果进入可持续验证的流水线如果你的团队正在把 AI 引入逆向工程流程这套 Docker 容器化 CI/CD 的部署模式值得直接借鉴。更多架构细节请阅读 docker/README.md 与 README.md。【免费下载链接】ghidra-mcpGhidra MCP Server — 200 MCP tools for AI-powered reverse engineering. GUI plugin headless server, lazy tool loading, convention enforcement, batch operations, Ghidra Server integration, and Docker deployment.项目地址: https://gitcode.com/gh_mirrors/ghi/ghidra-mcp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考