使用说明(Markdown 格式)

  • 项目简介

    • 这是一个基于 MCP 的后端服务器,旨在向 LLM 客户端以标准化的 JSON-RPC 方式提供上下文信息、分析资源、以及可调用的工具接口。核心功能包括资源/会话管理、工具注册与执行、以及对 Prompts 的渲染与渲染结果回传,适用于将复杂的二进制分析任务放到 LLM 的对话场景中。
  • 主要功能点

    • 资源管理与数据访问:通过会话机制托管并持久化分析会话及相关数据。
    • 工具注册与执行:将一组分析工具(如 OpenBinary、GetBytes、GetDisasm、GetGlobals 等)暴露给 MCP 客户端,支持按需调用。
    • Prompt 与上下文支持:提供可定制的交互模板和上下文信息,便于 LLM 进行对话式分析。
    • 多传输能力:HTTP 派生传输、SSE 传输等,支持 SPA 与 LLM 客户端的灵活接入。
    • 会话和工作流管理:自动重启、自动分析、缓存、以及对会话的状态与进度进行汇报。
    • 与 IDA Headless 的无缝整合:通过 PythonWorker 对接 IDA 的分析能力,按需创建和管理二进制数据库。
  • 安装步骤

    • 获取并安装依赖
      • 需要 Go 语言环境与依赖包,可通过 go mod 下载处理依赖。
    • 构建服务器
      • 在项目根目录执行构建命令,生成可执行的 MCP 服务器程序。
    • 配置与运行
      • 根据配置文件 config.json 调整服务器参数后启动服务器。
  • 服务器配置(JSON)

    • 该 MCP 服务器对外提供的接口需要通过客户端配置连接信息来建立连接。下方给出符合仓库实现的配置信息示例及字段注释:
    • 配置信息示例(JSON 结构,逐项注释在紧跟字段之后): { "server_name": "ida-headless-mcp", "command": "/path/to/ida-headless-mcp-binary", "args": ["--config","config.json"] }
    • 解释
      • server_name: 服务端名称,描述性名称最好能唯一标识当前 MCP 服务器实例。
      • command: 用于启动服务器的可执行文件路径(替代了直接的 go run 方式,便于在生产环境以二进制形式部署)。
      • args: 启动参数列表,这里包含配置文件路径等运行时参数。客户端并不需要这些参数,但服务器需要通过配置文件对外暴露的端点与行为进行初始化。
  • 基本使用方法

    • 启动前准备
      • 确认具备运行环境(Go 环境或已编译好的二进制)。
      • 配置 config.json,包含服务器端口、最大并发会话、工作进程路径、数据库缓存目录等参数。
    • 连接与使用
      • 使用 MCP 客户端连接到服务器(HTTP/SSE/WebSocket 传输之一),获取工具列表后即可调用注册的工具(如 open_binary、get_functions、get_entry_point 等)。
      • 通过工具调用可以获得 JSON 结构化的结果,便于将上下文信息嵌入到 LLM 的对话中,或在后续流程中进行进一步处理。
    • 常用操作序列
      • 打开二进制并创建会话
      • 调用工具进行数据查询(如获取函数、字符串、引用等)
      • 在需要时关闭会话并持久化数据
    • 运行时注意
      • 服务器内部对会话、缓存和进度有管理,若需要可开启调试日志以观察详细行为。

信息

分类

AI与计算