环境搭建与工具链:MCP SDK安装、调试工具与安全配置

说实话,搞MCP漏洞挖掘这事儿,环境搭不好后面全是坑。我见过太多人一上来就急着挖洞,结果连SDK版本都对不上,调试器跑不起来,白白浪费一整天。今天咱们就把这套工具链彻底捋清楚。

MCP SDK安装:别踩版本坑

MCP SDK目前主要支持Python和TypeScript两种语言。我个人习惯用Python,生态成熟,调试方便。但如果你做前端集成,TypeScript版本会更顺手。

Python SDK安装

pip install mcp-sdk

就这么简单?嗯,但有个坑——Python版本必须≥3.10。我去年有个项目,服务器上默认是3.8,装完SDK跑起来全是协程报错,排查了半天才发现是版本问题。

TypeScript SDK安装

npm install @modelcontextprotocol/sdk

这里要注意Node.js版本,建议≥18。为什么?因为MCP底层用了大量的AsyncIterator和AbortController,老版本Node不支持。

⚠️ 避坑指南
我曾经在Windows环境下装Python SDK,结果pip install死活报编译错误。后来发现是缺少Microsoft C++ Build Tools。解决方案:先装好Visual Studio Build Tools,或者直接用WSL2环境。

MCP Inspector:调试的第一道防线

MCP Inspector是官方提供的调试工具,说白了就是一个交互式客户端。你可以用它手动发送请求、查看响应、检查协议格式。

安装与启动

npx @modelcontextprotocol/inspector

启动后默认监听localhost:5173。打开浏览器,你会看到一个类似Postman的界面,但专门为MCP协议定制。

核心功能

  • 连接测试:输入MCP Server的URL,点Connect,看握手是否成功
  • 请求构造:支持JSON-RPC格式的method、params、id手动填写
  • 响应查看:原始JSON响应、耗时、状态码一目了然
  • 会话管理:可以模拟多个并发会话,测试服务端的状态隔离
💡 我的小技巧
调试时先发一个最简单的ping请求,确认基础通信没问题。然后再逐步增加复杂度。你想想看,如果连ping都过不了,后面挖漏洞就是瞎忙活。

Burp Suite配置:中间人攻击视角

Burp Suite是我们做安全测试的标配。但MCP走的是WebSocket,不是普通HTTP,所以配置上有点讲究。

代理设置

  1. Burp Suite开启代理,默认127.0.0.1:8080
  2. 浏览器或MCP客户端配置代理指向Burp
  3. 在Burp的Proxy → WebSockets History中查看所有WebSocket消息

拦截与修改

Burp对WebSocket的支持其实很强大。你可以拦截MCP的JSON-RPC请求,修改method或params,然后放行。我经常用这招测试参数注入——比如把resource URI改成file:///etc/passwd,看服务端会不会返回敏感文件内容。

🔍 关键配置项
在Burp的Proxy → Options → WebSocket Interception中,勾选"Intercept WebSocket messages"。否则Burp默认只记录不拦截,你就没法改包了。

Wireshark配置:网络层深扒

有时候Burp不够用——比如你想看TLS握手细节,或者服务端返回了非标准响应。这时候Wireshark就派上用场了。

抓包过滤规则

tcp.port == 8080 || tcp.port == 443

但MCP通常走WebSocket over TLS(wss://),所以更精确的过滤是:

websocket

Wireshark 3.4以上版本原生支持WebSocket协议解析,直接显示掩码后的payload。

解密TLS流量

如果你要分析加密的MCP通信,需要配置SSLKEYLOGFILE环境变量:

export SSLKEYLOGFILE=/tmp/sslkeys.log

然后在Wireshark的Preferences → Protocols → TLS中,指定这个日志文件。这样就能看到解密后的WebSocket内容了。

⚠️ 注意
我曾经在抓包时发现Wireshark显示WebSocket payload全是乱码。后来才意识到,MCP协议对某些字段做了Base64编码。别慌,右键选择"Show Packet Bytes",然后手动解码即可。

知识体系总览

下面这张图是我自己整理的MCP环境搭建与工具链关系图,你看一眼就能明白各组件怎么配合:

MCP环境搭建与工具链架构图 MCP Server MCP SDK Python / TypeScript MCP Inspector 交互式调试 Burp Suite WebSocket拦截/改包 Wireshark 网络层抓包/解密 MCP漏洞挖掘 图例: SDK安装 调试工具 安全测试 网络分析 漏洞挖掘 数据流

工具链协同工作流

实际挖洞时,这几个工具不是孤立用的。我一般这么搭配:

场景 主要工具 辅助工具 说明
协议合规性测试 MCP Inspector Wireshark 检查JSON-RPC格式、字段类型是否正确
参数注入测试 Burp Suite MCP Inspector 拦截请求,修改params中的URI、参数值
会话劫持测试 Burp Suite Wireshark 重放WebSocket消息,测试会话隔离
TLS/加密分析 Wireshark Burp Suite 解密流量,分析证书、加密套件
性能/压力测试 自定义脚本 MCP Inspector 批量发送请求,观察服务端响应
💡 实战建议
我个人习惯先开Wireshark全局抓包,然后用MCP Inspector发几个正常请求,确认基线流量。接着切到Burp,开始改包测试。这样万一挖出问题,Wireshark里已经有完整的网络层证据链。

常见问题与排错

环境搭好了,但跑不起来?别急,我列几个高频问题:

  • MCP Inspector连不上Server:检查CORS配置。MCP Server需要允许Inspector的Origin。我遇到过Server只允许localhost,但Inspector跑在127.0.0.1,端口不同就被拦截了。
  • Burp拦截不到WebSocket:确认浏览器或客户端正确配置了代理。有些MCP客户端不走系统代理,需要在代码里显式设置proxy参数。
  • Wireshark看不到WebSocket:可能是TLS加密了。配置SSLKEYLOGFILE,或者直接用Burp的明文流量。
  • SDK版本冲突:用虚拟环境隔离。Python用venv,Node用nvm。我吃过一次亏,全局装了两个版本的SDK,结果import时总是加载错版本。

好了,环境搭好只是第一步。工具链顺了,后面挖洞才能事半功倍。记住,调试工具是你的眼睛,安全工具是你的手术刀——别让工具成为瓶颈。


专注资料整理