AgentDecompile MCP 服务器
使用说明(Markdown 摘要)
-
项目简介
- AgentDecompile 将 Ghidra 集成进一个可通过 MCP 标准向 LLM 客户端提供上下文、工具与 Prompts 的后端服务。核心职责包括托管和管理代码资源、注册与执行工具、定义并渲染提示模板,并通过 JSON-RPC 与客户端通信。
-
主要功能点
- 资源与数据访问:提供对程序、导入/导出信息、内存/符号等资源的访问能力。
- 工具注册与执行:暴露多组工具接口,LLM 客户端可通过 JSON-RPC 调用具体工具,获取分析数据、符号信息、反汇编/去编译等结果。
- Prompt 模板与渲染:支持为 LLM 设计和渲染自定义的提示模板,配合上下文输出进行对话式交互。
- 会话与能力声明:维护会话上下文,声明可用能力与工具集合。
- 传输协议多样化:原生标准输入输出(stdio)、基于 HTTP 的流式传输(streamable-http)、SSE/WebSocket 等,方便本地或远程客户端接入。
-
安装步骤
- 直接发布包安装:从发行页获取 ZIP,解压并在 Ghidra/目标环境中安装扩展。
- 从源码安装(开发模式):在支持的 Python 环境中执行安装命令,如 pip install -e .,以便进行本地开发与调试。
-
服务器配置(示例 JSON 配置,用于 MCP 客户端启动时指定如何启动 MCP 服务器)
- 本地 STDIO 连接的启动方式 { "server_name": "AgentDecompile Local StdIO MCP", "command": "uv", "args": ["run", "mcp-agentdecompile"], "notes": "本配置通过 STDIO 启动 MCP 服务器,客户端通过标准输入/输出进行通信。环境变量如 GHIDRA_INSTALL_DIR 需在客户端或启动脚本中提供。" }
- 远程 HTTP 流式传输的启动方式 { "server_name": "AgentDecompile HTTP MCP", "command": "agentdecompile-server", "args": ["-t", "streamable-http", "-p", "8080", "-o", "0.0.0.0"], "notes": "本配置通过 HTTP 流式传输启动 MCP 服务器,客户端通过 http://<host>:8080/mcp/message 访问。" }
-
基本使用方法
- 本地开发/测试
- 启动 STDIO 服务器:uv run mcp-agentdecompile
- 客户端通过标准输入/输出与服务器对话,传输协议采用 JSON-RPC。
- 远程/浏览器或 IDE 客户端对接
- 启动 HTTP 流式传输服务器:agentdecompile-server -t streamable-http -p 8080 -o 0.0.0.0
- 使用 MCP 客户端指向 http://<服务器地址>:8080/mcp/message 进行通信。
- 常用命令简述
- 打开/导入二进制到 Ghidra 项目
- 获取函数、引用、符号、内存接入等分析数据
- 调用工具执行外部功能、获取并渲染提示输出
- 使用代理模式时,客户端可将请求转发到远端后端,保持本地连接的简化
- 本地开发/测试
-
注意事项
- 依赖与环境:Ghidra 安装与配置、Python 运行环境、MCP 客户端与后端服务器版本匹配。
- 安全性与认证:多种传输都可使用,请确保网络访问控制、凭证与后端权限配置符合安全策略。
-
参考与拓展
- 详细的传输选项、工具集、资源类型及环境变量配置详见官方文档与仓库 README。