mac端为claude code配置ida mcp

(1)在终端进入ida的路径

bash 复制代码
cd /Applications/IDA\ Professional\ 9.0.app/Contents/MacOS 

(2)为ida设置python

bash 复制代码
./idapyswitch --force-path /opt/homebrew/Cellar/python@3.11/3.11.12/Frameworks/Python.framework/Versions/3.11/Python 

(3)在终端执行安装ida mcp

arduino 复制代码
pip3.11 install --upgrade git+https://github.com/mrexodia/ida-pro-mcp 

验证:

bash 复制代码
ida-pro-mcp --help 

(4)安装Ida插件

css 复制代码
 ida-pro-mcp --install 

(5)配置ida mcp的信息

css 复制代码
% ida-pro-mcp --config
[HTTP MCP CONFIGURATION]
{
  "mcpServers": {
    "ida-pro-mcp": {
      "type": "http",
      "url": "http://127.0.0.1:13337/mcp"
    }
  }
}

[STDIO MCP CONFIGURATION]
{
  "mcpServers": {
    "ida-pro-mcp": {
      "command": "/opt/homebrew/opt/python@3.11/bin/python3.11",
      "args": [
        "/opt/homebrew/lib/python3.11/site-packages/ida_pro_mcp/server.py",
        "--ida-rpc",
        "http://127.0.0.1:13337"
      ]
    }
  }
}

(6)IDA中启动MCP

插件只是加载了,但默认不会自动启动 RPC。

你需要在 IDA 里手动启动一次 MCP 插件,端口才会监听。

请在 IDA 执行:

rust 复制代码
 菜单:Edit -> Plugins -> MCP 

或者快捷键:Ctrl-Alt-M(mac 上 Alt 通常是 Option)

(7)重启Claude Code后,查看可用的MCP列表

输入命令:

arduino 复制代码
List available MCP tools

输出:

arduino 复制代码
❯ List available MCP tools                                                                 
                                                                                           
⏺ 以下是当前会话中可用的 IDA Pro MCP 工具列表:                                            
                                                                                           
  查找与导航工具                                                                           
  ┌──────────────────────────────────┬────────────────────────────────┐                    
  │              工具名              │              功能              │                    
  ├──────────────────────────────────┼────────────────────────────────┤                    
  │ mcp__ida-pro-mcp__lookup_funcs   │ 按地址或名称查找函数           │                    
  ├──────────────────────────────────┼────────────────────────────────┤                    
  │ mcp__ida-pro-mcp__list_funcs     │ 列出函数(支持过滤和分页)     │                    
  ├──────────────────────────────────┼────────────────────────────────┤                    
  │ mcp__ida-pro-mcp__list_globals   │ 列出全局变量(支持过滤和分页) │                    
  ├──────────────────────────────────┼────────────────────────────────┤                    
  │ mcp__ida-pro-mcp__imports        │ 列出导入函数                   │                    
  ├──────────────────────────────────┼────────────────────────────────┤                    
  │ mcp__ida-pro-mcp__basic_blocks   │ 获取函数的基本块用于控制流图   │                    
  ├──────────────────────────────────┼────────────────────────────────┤                    
  │ mcp__ida-pro-mcp__search_structs │ 搜索结构体                     │                    
  └──────────────────────────────────┴────────────────────────────────┘                    
  反编译与汇编工具                                                                         
  ┌────────────────────────────────┬────────────────────────┐                              
  │             工具名             │          功能          │                              
  ├────────────────────────────────┼────────────────────────┤                              
  │ mcp__ida-pro-mcp__decompile    │ 将函数反编译为伪代码   │                              
  ├────────────────────────────────┼────────────────────────┤                              
  │ mcp__ida-pro-mcp__disasm       │ 将函数反汇编为汇编指令 │                              
  ├────────────────────────────────┼────────────────────────┤                              
  │ mcp__ida-pro-mcp__declare_type │ 声明类型               │                              
  ├────────────────────────────────┼────────────────────────┤                              
  │ mcp__ida-pro-mcp__infer_types  │ 推断类型               │                              
  └────────────────────────────────┴────────────────────────┘                              
  交叉引用与调用图                                                                         
  ┌──────────────────────────────────┬────────────────────────────┐                        
  │              工具名              │            功能            │                        
  ├──────────────────────────────────┼────────────────────────────┤                        
  │ mcp__ida-pro-mcp__xrefs_to       │ 获取到指定地址的交叉引用   │                        
  ├──────────────────────────────────┼────────────────────────────┤                        
  │ mcp__ida-pro-mcp__xrefs_to_field │ 获取到结构体字段的交叉引用 │                        
  ├──────────────────────────────────┼────────────────────────────┤                        
  │ mcp__ida-pro-mcp__callees        │ 获取指定函数调用的函数     │                        
  ├──────────────────────────────────┼────────────────────────────┤                        
  │ mcp__ida-pro-mcp__callgraph      │ 从根函数构建调用图         │                        
  └──────────────────────────────────┴────────────────────────────┘                        
  搜索工具                                                                                 
  ┌──────────────────────────────┬────────────────────────────┐                            
  │            工具名            │            功能            │                            
  ├──────────────────────────────┼────────────────────────────┤                            
  │ mcp__ida-pro-mcp__find       │ 搜索字节数据               │                            
  ├──────────────────────────────┼────────────────────────────┤                            
  │ mcp__ida-pro-mcp__find_regex │ 使用正则表达式搜索字符串   │                            
  ├──────────────────────────────┼────────────────────────────┤                            
  │ mcp__ida-pro-mcp__find_bytes │ 搜索字节模式(支持通配符) │                            
  └──────────────────────────────┴────────────────────────────┘                            
  内存读取与数据获取                                                                       
  ┌────────────────────────────────────┬────────────────────────────┐                      
  │               工具名               │            功能            │                      
  ├────────────────────────────────────┼────────────────────────────┤                      
  │ mcp__ida-pro-mcp__get_bytes        │ 从内存地址读取字节         │                      
  ├────────────────────────────────────┼────────────────────────────┤                      
  │ mcp__ida-pro-mcp__get_int          │ 从内存地址读取整数值       │                      
  ├────────────────────────────────────┼────────────────────────────┤                      
  │ mcp__ida-pro-mcp__get_string       │ 从内存地址读取字符串       │                      
  ├────────────────────────────────────┼────────────────────────────┤                      
  │ mcp__ida-pro-mcp__get_global_value │ 按地址或名称读取全局变量值 │                      
  ├────────────────────────────────────┼────────────────────────────┤                      
  │ mcp__ida-pro-mcp__read_struct      │ 读取结构体类型并解析内存值 │                      
  └────────────────────────────────────┴────────────────────────────┘                      
  修改与编辑工具                                                                           
  ┌────────────────────────────────┬────────────────────────────────────────────┐          
  │             工具名             │                    功能                    │          
  ├────────────────────────────────┼────────────────────────────────────────────┤          
  │ mcp__ida-pro-mcp__patch        │ 用十六进制数据在内存地址打补丁             │          
  ├────────────────────────────────┼────────────────────────────────────────────┤          
  │ mcp__ida-pro-mcp__patch_asm    │ 用汇编指令在地址打补丁                     │          
  ├────────────────────────────────┼────────────────────────────────────────────┤          
  │ mcp__ida-pro-mcp__put_int      │ 将整数值写入内存地址                       │          
  ├────────────────────────────────┼────────────────────────────────────────────┤          
  │ mcp__ida-pro-mcp__set_type     │ 应用类型(函数/全局/局部/栈变量)          │          
  ├────────────────────────────────┼────────────────────────────────────────────┤          
  │ mcp__ida-pro-mcp__set_comments │ 在地址设置注释                             │          
  ├────────────────────────────────┼────────────────────────────────────────────┤          
  │ mcp__ida-pro-mcp__rename       │ 统一重命名函数、全局变量、局部变量和栈变量 │          
  └────────────────────────────────┴────────────────────────────────────────────┘          
  函数与代码定义                                                                           
  ┌───────────────────────────────┬──────────────────────────────┐                         
  │            工具名             │             功能             │                         
  ├───────────────────────────────┼──────────────────────────────┤                         
  │ mcp__ida-pro-mcp__define_func │ 在地址定义函数               │                         
  ├───────────────────────────────┼──────────────────────────────┤                         
  │ mcp__ida-pro-mcp__define_code │ 将字节转换为地址处的代码指令 │                         
  ├───────────────────────────────┼──────────────────────────────┤                         
  │ mcp__ida-pro-mcp__undefine    │ 取消定义项目,转换回原始字节 │                         
  └───────────────────────────────┴──────────────────────────────┘                         
  栈变量工具                                                                               
  ┌─────────────────────────────────┬────────────┐                                         
  │             工具名              │    功能    │                                         
  ├─────────────────────────────────┼────────────┤                                         
  │ mcp__ida-pro-mcp__stack_frame   │ 获取栈变量 │                                         
  ├─────────────────────────────────┼────────────┤                                         
  │ mcp__ida-pro-mcp__declare_stack │ 创建栈变量 │                                         
  ├─────────────────────────────────┼────────────┤                                         
  │ mcp__ida-pro-mcp__delete_stack  │ 删除栈变量 │                                         
  └─────────────────────────────────┴────────────┘                                         
  导出工具                                                                                 
  ┌────────────────────────────────┬────────────────────────┐                              
  │             工具名             │          功能          │                              
  ├────────────────────────────────┼────────────────────────┤                              
  │ mcp__ida-pro-mcp__export_funcs │ 以各种格式导出函数数据 │                              
  └────────────────────────────────┴────────────────────────┘                              
  Python 执行                                                                              
  ┌───────────────────────────┬─────────────────────────────────────────────────────┐      
  │          工具名           │                        功能                         │      
  ├───────────────────────────┼─────────────────────────────────────────────────────┤      
  │ mcp__ida-pro-mcp__py_eval │ 在 IDA 上下文中执行 Python 代码(访问所有 IDA API) │      
  └───────────────────────────┴─────────────────────────────────────────────────────┘      
  数字转换                                                                                 
  工具名: mcp__ida-pro-mcp__int_convert                                                    
  功能: 将数字转换为不同格式(十六进制、十进制、二进制、ASCII)                            
  ---                                                                                      
  总计: 34 个 MCP 工具可用
相关推荐
本末倒置18320 小时前
我研究了OpenClaw一周,发现它不是另一个ChatGPT,而是数字员工的起点
openai·ai编程·claude
刮涂层_赢大奖1 天前
我把 AI 编程 Agent 变成了宝可梦,让它们在像素风办公室里跑来跑去
前端·typescript·claude
孟健1 天前
AI编程效率翻10倍:一个IDE同时跑10+个Claude Code
claude
叶落阁主1 天前
揭秘 Happy:如何实现 AI 编程助手输出的实时同步
人工智能·claude·vibecoding
Nutcracker1 天前
Claude Code Commands 指南:打造你的专属 AI 工作流
claude
Terran1 天前
一日一撸码(No.2):把 Claude Code 装进 Telegram:一个周末的轻量级方案
claude
lanshan1 天前
claude code国内免登录使用指南
claude
崔庆才丨静觅1 天前
Claude Code GitHub Actions 使用教程
github·api·claude
烛阴2 天前
Claude CLI 从安装到使用完整教程(Windows 版)
claude
ygxb2 天前
如何去创建一个规范化的Agent SKIll?
后端·ai编程·claude