基本介绍
MCP 全称 Model Context Protocol,是由 Anthropic 公司在 2024 年 11 月推出一个开放协议,主要用于标准化应用程序向大语言模型提供上下文的方式。
就像给AI装了个“万能接口”,让大语言模型(比如ChatGPT、Claude)能像人类一样调用各种工具和数据源,不再是只会“空想”的聊天机器人
下面用大白话解释:
举个栗子🌰:你想让AI帮你整理电脑里的照片。
- 传统方法:手动导出照片路径→复制给AI→等它生成建议→再自己操作
- 用MCP:直接对AI说“按时间整理D盘的照片”,AI通过MCP自动读取文件、分析时间戳、创建文件夹一气呵成
MCP 的工作方式就是:
模型(比如 ChatGPT、Claude) ←→ MCP 协议 ←→ 你的工具(比如 IDA Pro)
你写一个 MCP server,它就会暴露一堆标准化的 API 接口,比如“给我这个函数的伪代码”、“搜索所有字符串”、“查找某个地址的交叉引用”……然后模型那边会通过 HTTP/JSON 去请求这些接口。模型像在跟你的工具“聊天”,但其实是通过 MCP 这个中间协议来对接的。
所以你不用再写复杂的 bridge、plugin、wrapper,直接通过 MCP,把你写的 server 接到模型那边就完事了。
和传统API的区别
普通API像“定制插座”——每个设备都要单独接线;MCP则是“无线充电板”——所有设备放上去就能用,开发者不用再为每个工具写代码,用户也不用担心AI乱动数据(权限可控)
下面是原理图:
核心设计
-
协议层次:MCP 定义了应用层格式,AI client(如 Claude、ChatGPT Agent)与 MCP server(各类工具的“桥梁”)通过 JSON‑RPC/HTTP 交换请求与响应。
-
模型无关:MCP 不绑定任何特定 LLM,实现了“USB‑C for AI integrations”的理念,任何支持 HTTP/JSON 的模型皆可接入。
-
安全与权限:通过预先注册的 API 端点和身份验证机制,将系统权限显式暴露给 AI,减少“任意执行”风险,但仍需用户自行评估安全边界
在 IDA Pro 中的 MCP 实现
这是我最近看文章发现的一个项目,具体点就是一个IDA pro插件,可以辅助一些简单的比较基础的逆向分析。
插件架构
-
ida-pro-mcp(mrexodia):由 mrexodia 发布的官方 MCP Server 插件,使用 Python 3.11+ 与 IDA Pro 9.x,通过
ida-pro-mcp --install
一键集成。 -
fdrechsler/mcp-server-idapro:另一社区实现,分为三部分——IDA Remote Control Plugin(
ida_remote_server.py
)、TypeScript 客户端,以及 MCP Server(index.ts
),在 VSCode、Claude 等环境下均可无缝使用。
安装与使用
安装的话倒是挺容易的,这里可以参考官方的github仓库IDA-pro-MCP
简单说就是先用git从官方仓库拉取下载,然后配置MCP服务器安装
pip install --upgrade git+https://github.com/mrexodia/ida-pro-mcp
ida-pro-mcp --install
// 如果无法使用ida-pro-mcp --install命令,则cd到python目录下Scripts目录,运行ida-pro-mcp.exe --install
这里我配置的时候遇到了No module named 'cgi'的报错,具体原因分析了下是python3.13版本已经完全移除cgi这个模块了,所以引用的时候系统没找到。
但是我又注意到官方的文档里有说明需要python3.11及更高的环境
这说明我的python3.13是支持的,重新分析下报错,直到看到下面这个
这个是httpx的1.0Beta 版本,它内部还在用 import cgi
,所以一到 Python 3.13 就炸了
于是我索性先把这个测试版卸了,然后安装旧版本的稳定版,确认安装的版本
pip uninstall httpx
pip install --upgrade httpx
pip show httpx
之后就正常安装了
安装完成后可以在IDA pro的插件列表里找到MCP,点击后Output里输出了[MCP] Server started at http://localhost:13337即安装成功
之后在IDE集成环境里添加MCP服务并且配置json就行,这里附上json参考:
{
"mcpServers": {
"github.com/mrexodia/ida-pro-mcp": {
"isActive": true,
"command": "C:\\Users\\你的用户名\\AppData\\Local\\Programs\\Python\\你的python版本\\python.exe",
"args": [
"C:\\Users\\你的用户名\\AppData\\Local\\Programs\\Python\\你的python版本\\Lib\\site-packages\\ida_pro_mcp\\server.py"
],
"timeout": 1800,
"disabled": false,
"autoApprove": [
"check_connection",
"get_metadata",
"get_function_by_name",
"get_function_by_address",
"get_current_address",
"get_current_function",
"convert_number",
"list_functions",
"list_strings",
"search_strings",
"decompile_function",
"disassemble_function",
"get_xrefs_to",
"get_entry_points",
"set_comment",
"rename_local_variable",
"rename_global_variable",
"set_global_variable_type",
"rename_function",
"set_function_prototype",
"declare_c_type",
"set_local_variable_type"
],
"alwaysAllow": [
"check_connection",
"get_metadata",
"get_function_by_name",
"get_function_by_address",
"get_current_address",
"get_current_function",
"convert_number",
"list_functions",
"list_strings",
"search_strings",
"decompile_function",
"disassemble_function",
"get_xrefs_to",
"get_entry_points",
"set_comment",
"rename_local_variable",
"rename_global_variable",
"set_global_variable_type",
"rename_function",
"set_function_prototype",
"declare_c_type",
"set_local_variable_type"
],
"name": "github.com/mrexodia/ida-pro-mcp"
}
}
}
关于MCP的未来
现在来看,
说成熟吧,还没完全标准化;说实验吧,也已经在很多生产环境用了。
目前社区活跃度挺高:
-
OpenAI、Anthropic、DeepMind 都支持 MCP 格式
-
GitHub 上一堆 plugin 在更新,尤其是安全圈在搞自动分析和漏洞挖掘的那帮人
-
IDA 插件市场和 VSCode extension 也在跟进
问题也有,比如权限管理、安全隔离还在完善,MCP server 和模型之间的信任边界怎么画、执行脚本时的沙箱机制等,都还是坑。但这些都属于“做大做强之前必须填”的坑,不是致命伤。
但是不可否认的是,MCP 可以成为 LLM 与逆向工具融合的核心协议,未来或见证“AI 直接写 exploit”流水线落地,期待更多研究者与工程师加入,共同见证 MCP 在二进制安全领域的革命性突破。