Another™ MCP 服务器是一款为 Binary Ninja 打造的插件,它能为每个分析的二进制文件配备强大的 Web 服务器。该服务器功能丰富,可实现重命名符号、生成伪代码和中间表示(IR)、提取字符串、查找段和节等操作。
要使用 Another™ MCP 服务器,你需要进行服务器和客户端的设置,具体步骤如下:
git clone https://github.com/MCPPhalanx/binaryninja-mcp.git "${env:APPDATA}\Binary Ninja\plugins\MCPPhalanx_binaryninja_mcp"
uv
工具管理 Python 环境:uv venv
uv sync --dev
binaryninja-mcp install-api
uv run python -m binaryninja_mcp.server
config.json
文件:{
"mcpServers": {
"binaryninja": {
"command": "uv",
"args": [
"--directory",
"C:/path/to/binaryninja-mcp",
"run",
"binaryninja-mcp",
"client"
]
}
}
}
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()
MCP 服务器为每个二进制文件提供以下资源类型:
git clone https://github.com/MCPPhalanx/binaryninja-mcp.git "${env:APPDATA}\Binary Ninja\plugins\MCPPhalanx_binaryninja_mcp"
uv
工具管理 Python 环境:uv venv
uv sync --dev
binaryninja-mcp install-api
uv run python -m binaryninja_mcp.server
config.json
文件:{
"mcpServers": {
"binaryninja": {
"command": "uv",
"args": [
"--directory",
"C:/path/to/binaryninja-mcp",
"run",
"binaryninja-mcp",
"client"
]
}
}
}
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