Radare2 MCP服务器
 
要使用的MCP服务器 雷达2 使用OpenCode、Mai、VSCode、Claude、CLION等人工智能代理。..
特性
该实施提供了:
- 💻 使用本机r2 API完全用C编写
- 🧩 作为r2插件和MCP服务器从CLI工作
- 🔍 使用radare2进行无缝二元分析
- 🔗 通过r2pipe连接到任何本地或远程r2/iaito会话
- 🔒 支持只读模式、沙盒锁定和限制工具
- 🔩 细粒度工具配置
- 🔁 直接stdin/stdout通信模型
- 🌐 HTTP MCP服务器模式,可选
X-Session-ID多路复用 - 🛠️ 运行r2命令或r2js脚本的可选原始访问权限
安装
使用r2pm
安装该软件包的最简单方法是使用 r2pm:
$ r2pm -Uci r2mcp这 r2mcp 可执行文件将被复制到r2pm主目录中的bindir中。然而,这个二进制文件不应该直接从shell执行;它只有在由所选语言模型的MCP服务处理程序启动时才能工作。
$ r2pm -r r2mcp这是常见的mcpServer JSON配置文件:
{
"mcpServers": {
"radare2": {
"command": "r2pm",
"args": ["-r", "r2mcp"]
}
}
}法典
要安装codex插件,只需运行以下命令:
make codex-plugin-install这将在您的家中创建一个个人市场,并从其中的dist/codex插件复制文件。
使用Docker
或者,您可以构建Docker镜像:
docker build -t r2mcp .更新您的MCP客户端配置文件(见下文)以使用Docker镜像:
"command": "docker""args": ["run", "--rm", "-i", "-v", "/tmp/data:/data", "r2mcp"].
配置
HTTP服务器模式
使用 -H 将r2mcp作为HTTP MCP服务器运行,而不是使用 stdin/stdout:
r2mcp -H 8765每个会话的HTTP状态已启用 -X max[:idle_seconds] 并由以下人员路由 这 X-Session-ID 请求标头:
r2mcp -H 8765 -X 8:600-X 需要radare2 ABI 91或更新版本,因为较旧的radare2标头不需要 公开HTTP请求头API。对于较老的ABI, -H 仍然作为一个 单个共享HTTP服务器,但是 -X 被忽略。
r2核心插件模式
r2核心插件公开了 r2mcp 现有雷达内的命令2 会议。从r2启动HTTP模式会重用当前 RCore,因此MCP工具 对该会话中已加载的文件和分析状态进行操作:
r2 -e r2mcp.port=8765 -c 'r2mcp start' /bin/ls有用的子命令:
r2mcp start或r2mcp http在后台启动HTTP MCP服务器。r2mcp stop,r2mcp restart,以及r2mcp status管理后台服务器。r2mcp logs on|off和 `r2mcp logs file
` 控制插件调试日志。
r2mcp approve on|off和r2mcp approve url控制主管批准。r2mcp yolo on|off禁用审批并暴露危险的运行工具。r2mcp config列出r2mcp.*eval密钥。
该插件为CLI公开的相同服务器选项注册eval密钥: r2mcp.port, r2mcp.log, r2mcp.logfile, r2mcp.approve, r2mcp.svc, r2mcp.yolo, r2mcp.mini, r2mcp.permissive, r2mcp.run, r2mcp.readonly, r2mcp.ignore_analysis, r2mcp.prompts, r2mcp.prompts.dir, r2mcp.sandbox, r2mcp.sandbox.grain, r2mcp.content, r2mcp.enabled, r2mcp.disabled, r2mcp.session_tools, r2mcp.sessions, r2mcp.sessions.max, r2mcp.sessions.timeout, r2mcp.decompiler,以及 r2mcp.baseurl.
使用手动加载插件时 -i,在插件打开后设置这些键 加载,例如 -c 'e r2mcp.port=8765',因为radare2进程 早 -e adhoc插件初始化前的选项。
Claude桌面集成
在Claude Desktop应用程序中,按 CMD + , 打开开发人员设置。编辑配置文件,并在编辑JSON文件后重新启动客户端,如下所述:
- 找到您的Claude Desktop配置文件:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - 窗户: %APPDATA%\Claude\claude_desktop_config.json
- 将以下内容添加到配置文件中:
{
"mcpServers": {
"radare2": {
"command": "r2pm",
"args": ["-r", "r2mcp"]
}
}
}VS代码集成
- 使用以下命令打开命令面板
CMD + Shift + P(macOS)或Ctrl + Shift + P(Windows/Linux)。 - 搜索并选择
Copilot: Open User Configuration(通常在~/Library/Application Support/Code/User/mcp.json在macOS中)。 - 将以下内容添加到配置文件中:
{
"servers": {
"radare2": {
"type": "stdio",
"command": "r2pm",
"args": ["-r", "r2mcp"]
}
},
"inputs": []
}Zed集成
您也可以通过以下方式将r2mcp与Zed一起使用 将其添加到您的配置中:
- 打开命令选项板:
CMD + Shift + P(macOS)或Ctrl + Shift + P(Windows/Linux)。 - 搜索
agent: open configuration或搜索settings. - 按如下方式添加您的服务器:
"context_servers": {
"r2-mcp-server": {
"source": "custom",
"command": "r2pm",
"args": ["-r", "r2mcp"],
"env": {}
}
}注意:您需要另一个LLM代理,如Claude、Gemini或其他,才能使用它。
对于开发者
从源代码构建
Linux/macOS
要在本地测试服务器,您可以使用make构建和安装它:
make install这将编译服务器并放置 r2mcp 二进制in /usr/local/bin 在macOS上。
视窗
对于Windows,只需使用介子和忍者,就像在CI中一样:
meson b
ninja -C b