README
🚀 Another™ MCP 服务器用于 Binary Ninja
Another™ MCP 服务器是一款为 Binary Ninja 打造的插件,它能为每个分析的二进制文件配备强大的 Web 服务器。该服务器功能丰富,可实现重命名符号、生成伪代码和中间表示(IR)、提取字符串、查找段和节等操作。
🚀 快速开始
要使用 Another™ MCP 服务器,你需要进行服务器和客户端的设置,具体步骤如下:
服务器设置
- 克隆仓库到 Binary Ninja 插件目录:
git clone https://github.com/MCPPhalanx/binaryninja-mcp.git "${env:APPDATA}\Binary Ninja\plugins\MCPPhalanx_binaryninja_mcp"
- 安装 Python 环境:
使用
uv工具管理 Python 环境:
uv venv
uv sync --dev
binaryninja-mcp install-api
- 运行服务器: 在插件目录中,使用以下命令启动服务器:
uv run python -m binaryninja_mcp.server
客户端设置
- 配置 MCP 客户端(例如 Claude Desktop)的
config.json文件:
{
"mcpServers": {
"binaryninja": {
"command": "uv",
"args": [
"--directory",
"C:/path/to/binaryninja-mcp",
"run",
"binaryninja-mcp",
"client"
]
}
}
}
- SSE 客户端连接: 使用以下 URL 连接到 SSE(服务器发送事件)服务:
http://localhost:7000/sse
✨ 主要特性
可用工具
- 重命名符号:
import binaryninja as bn
# 示例:将函数重命名为 "main"
func = bn.current_function()
func.name = "main"
- 生成伪代码和 IR:
# 获取当前函数的伪代码
pseudo_code = bn.current_function().get_pseudo_code()
# 获取中间表示(LLVM IR)
ir = bn.current_function().get_llil()
资源
MCP 服务器为每个二进制文件提供以下资源类型:
- triage_summary:Binary Ninja 分析视图的基本信息
- imports:导入的符号/函数字典
- exports:导出的符号/函数字典
- segments:内存段列表
- sections:二进制部分列表
- strings:二进制中提取的字符串列表
- functions:函数列表
- data_variables:数据变量列表
📦 安装指南
服务器设置
- 克隆仓库到 Binary Ninja 插件目录:
git clone https://github.com/MCPPhalanx/binaryninja-mcp.git "${env:APPDATA}\Binary Ninja\plugins\MCPPhalanx_binaryninja_mcp"
- 安装 Python 环境:
使用
uv工具管理 Python 环境:
uv venv
uv sync --dev
binaryninja-mcp install-api
- 运行服务器: 在插件目录中,使用以下命令启动服务器:
uv run python -m binaryninja_mcp.server
客户端设置
- 配置 MCP 客户端(例如 Claude Desktop)的
config.json文件:
{
"mcpServers": {
"binaryninja": {
"command": "uv",
"args": [
"--directory",
"C:/path/to/binaryninja-mcp",
"run",
"binaryninja-mcp",
"client"
]
}
}
}
- SSE 客户端连接: 使用以下 URL 连接到 SSE(服务器发送事件)服务:
http://localhost:7000/sse
💻 使用示例
基础用法
import binaryninja as bn
# 示例:将函数重命名为 "main"
func = bn.current_function()
func.name = "main"
高级用法
# 获取当前函数的伪代码
pseudo_code = bn.current_function().get_pseudo_code()
# 获取中间表示(LLVM IR)
ir = bn.current_function().get_llil()
📚 详细文档
开发
环境搭建
- 克隆仓库并安装依赖:
git clone https://github.com/MCPPhalanx/binaryninja-mcp.git
cd binaryninja-mcp
uv install
- 运行开发服务器:
uv run python -m binaryninja_mcp.server --dev
- 测试:
pytest
pytest --snapshot-update # 更新测试快照
版本控制
使用 uvx 和 hatch 进行版本管理:
uvx hatch version a # 增加测试版
uvx hatch version minor,rc # 发布候选版本
uvx hatch version release # 发布正式版本
发布
uv publish
📄 许可证
本项目采用 Apache 2.0 许可证。
演示

项目地址: https://github.com/MCPPhalanx/binaryninja-mcp
Scan to contact