yakit-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@yakit-mcp重放这个HTTP请求包并在Yakit里截图"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
yakit-mcp
驱动本机 Yakit 引擎(gRPC 127.0.0.1:10053)重放 HTTP 包,并通过 Chrome DevTools Protocol(CDP)控制 Yakit GUI 展示请求/响应画面并截图。Agent 说"用 Yakit 重放这个包并截图"即可完成全链路自动化。
背景与动机
在 Web 渗透测试中,测试人员经常在 Burp Suite 中抓取 HTTP 请求包,需要在 Yakit 中复现验证,并把"请求 + 响应"的画面截图存档(用于报告、文档、教学)。
本 MCP 的目标:一句话完成"抓包 → 重放 → GUI 展示 → 截图"全链路,让 AI Agent 能直接驱动 Yakit 完成原本需要人工操作的流程。
核心价值:
不依赖手工点击:CDP 自动化等价模拟"填入请求 → 点发送 → 看响应"的完整人工操作
协议自适应:Burp 包往往不带协议信息,自动识别 + http/https 双试探
截图三级降级:任何环境下都能拿到"请求+响应"画面
Related MCP server: Caido MCP Server
功能总览
能力 | 说明 |
重放 | 原始 HTTP 报文 → Yakit Web Fuzzer 引擎( |
协议识别 | Host |
协议双试探 | unknown 时 http + https 各发一遍(对应 Yakit"强制 HTTPS"勾选/不勾选) |
GUI 联动 | 重放结果写入流量库( |
CDP 控制 | 自动化:打开 Web Fuzzer 页面 → 新开干净 tab → 填入请求 → 点发送 → 截图 |
HTTPS 开关同步 |
|
截图三级降级 | CDP 页面级高清 → PrintWindow 窗口截图(无视遮挡)→ PIL 渲染兜底 |
批量重放 | JSON 数组批量发包 |
历史查询 | 查引擎库中的 HTTP 流量记录 |
报文解析 | 提取 method/host/headers/body/协议线索 |
清空历史 | 数据库层删除 Web Fuzzer 历史任务(根治"旧内容残留") |
任务列表 | 列出 Web Fuzzer 历史任务(历史 tab 数据源) |
分组标签 | Web Fuzzer 分组标签的增/查/删(如"登录爆破"分组) |
快速开始
环境要求
Windows(本工具面向 Windows + Yakit 桌面版)
Python 3.11+
Yakit 桌面版(
D:\My_apps\Yakit\Yakit.exe或自动探测)
安装
pip install -r requirements.txt启动 MCP Server
python -m yakit_mcp.server(stdio 模式,由 Reasonix / Claude 等 MCP 客户端自动拉起)
调用示例
# 用户场景: 重放 Burp 复制的包 + 截图
yakit_replay(
packet="POST /api/login HTTP/1.1\nHost: target.com\nContent-Type: application/json\n\n{\"user\":\"admin\"}",
auto_protocol=True, # 自动识别 http/https
try_both=True, # unknown 时双协议各发一次
save_to_gui=True, # 写入流量库(GUI 历史可见)
capture=True, # 重放后截图(返回 base64 + PNG 文件)
)返回 JSON 结构:
{
"ok": true,
"protocol_detected": "https",
"selected_protocol": "https",
"status_code": 200,
"url": "https://target.com/api/login",
"duration_ms": 120,
"response_raw": "HTTP/1.1 200 OK\r\n...",
"user_visible": true,
"flow": {"id": 51},
"capture": {
"mode": "cdp",
"saved_path": "C:\\Users\\...\\screenshots\\yakit_cdp_20260809_010744.png",
"image_base64": "..."
}
}协议识别与双试探(重要)
识别规则
线索 | 判定 |
Host 带 | https |
Host 带 | http |
Request 行 path 是 | https |
Request 行 path 是 | http |
| https |
无任何线索 | unknown(推荐 try_both=True) |
HTTPS 站点抓的 Burp 包 Host 往往不写端口,无法判断协议 → 必须双试。这是渗透测试中的常见场景,也是本工具默认推荐
try_both=True的原因。
双端尝试
try_both=True 时:
先以
http发一次(FuzzerRequest.IsHTTPS=false)再以
https发一次(FuzzerRequest.IsHTTPS=true)返回
attempts[]包含两次的完整明细
GUI 开关同步
Web Fuzzer 界面的"强制 HTTPS"开关(.ant-switch,默认勾选)通过 CDP 自动同步:
尝试 http 时 → 关掉开关
尝试 https 时 → 打开开关
截图真实反映勾选状态(截图存档时能看出用的是哪个协议)
CDP 控制架构
Yakit GUI 是 Electron 应用,本工具以 --remote-debugging-port=9333 启动它,通过 Chrome DevTools Protocol 完全自动化控制:
yakit_mcp.cdp
├── open_webfuzzer() 打开 Web Fuzzer 页面(弹窗自适应:项目管理/升级提示)
├── cdp_new_webfuzzer_tab() 新开干净 tab(数字 tab 右侧 + 按钮)
├── cdp_fill_and_send() 填入请求包(CDP Input.insertText)→ 点"发送请求"
├── cdp_set_https_switch() "强制 HTTPS"开关状态
└── cdp_screenshot() 页面级高清截图关键细节
弹窗自适应:首次启动有"项目管理"引导(点 [default] 进入项目)和升级提示弹窗(点"取 消"),CDP 自动循环处理直到主界面。
Tab 管理:
新增:Web Fuzzer 多实例 tab 栏(数字(如 123456)右侧
+按钮)→ 新开空白编辑器关闭:点击 tab 的
×关闭按钮(防止小窗口越开越多导致 Yakit 卡顿)每个请求使用新 tab,避免向旧编辑器追加导致请求体混乱
Monaco 编辑器:
textarea.inputarea是输入代理(value 不可信)直接用
Input.insertText模拟真实键盘输入最可靠通过
.view-lineDOM 读取渲染内容验证
截图三级降级
优先级 | 方式 | mode | 特点 |
1 | CDP |
| 1923×2315 页面级高清,最清晰 |
2 | PrintWindow 直接 Win32 绘制窗口 |
| 无视其他窗口遮挡,无需把 Yakit 置顶级 |
3 | PIL 渲染 Web Fuzzer 风格图 |
| GUI 不可见时兜底,永远有图 |
所有 mode 均返回:
image_base64(MCP image content,Agent 可见)saved_path(PNG 文件,存档/文档用)
保存目录默认 %LOCALAPPDATA%\yakit-mcp\screenshots\,可用 capture_output_dir 指定。
引擎管理
引擎来源
优先:Yakit 上位目录
bins/yak_windows_amd64.exe(若已解压)否则:从
bins/yak.zip自动解压到%LOCALAPPDATA%\yakit-mcp\engine\环境变量:
YAKIT_ENGINE(指定 exe)、YAKIT_HOME(数据目录)
启动方式
GUI 未运行:MCP 自动独立启动引擎(
yak_windows_amd64.exe grpc --port 10053),重放 + 入库照常GUI 已运行:GUI 自带引擎占 10053,MCP 直接复用(联动),重放内容实时出现在界面
gRPC 关键接口
接口 | 用途 |
| 重放(FuzzerRequest → stream FuzzerResponse) |
| 入库(GUI 可见) |
| 历史流量查询 |
| 项目管理(CDP 引导) |
proto 从 Yakit GUI app.asar 提取(protos/grpc.proto),用 grpc_tools.protoc 生成 Python 类。
工具清单(12 个)
工具 | 说明 |
| 引擎/GUI 状态、版本、路径 |
| 核心:重放 + 协议双试 + GUI 联动 + 可选截图 |
| 批量重放 |
| 用 CDP 打开/启动 Yakit Web Fuzzer 页面 |
| 截取 Yakit 画面(CDP → PrintWindow 三级降级) |
| 查询历史 HTTP 流量 |
| 解析报文(method/host/headers/body/协议线索) |
| 清空 Web Fuzzer 历史(根治"旧内容残留",数据库层) |
| 列出 Web Fuzzer 历史任务(历史 tab 数据源) |
| 列出分组标签 |
| 新建分组标签 |
| 删除分组标签 |
项目结构
yakit-mcp/
├── README.md # 本文档
├── SKILL.md # Agent Skill(触发词 + 使用流程)
├── requirements.txt # 依赖
├── protos/
│ └── grpc.proto # Yakit gRPC 协议定义(从 app.asar 提取)
├── yakit_mcp/ # MCP Server(Python 包)
│ ├── server.py # 入口 + 7 个 MCP 工具
│ ├── engine.py # 引擎管理 + 重放 + 协议识别 + 入库
│ ├── cdp.py # CDP 控制 GUI(开页/新tab/填包/发送/HTTPS开关/截图)
│ ├── capture.py # PrintWindow 窗口截图
│ └── render.py # PIL 渲染兜底
└── tests/ # 自测脚本部署方式
MCP 注册(config.toml)
[[plugins]]
name = "yakit-mcp"
type = "stdio"
command = "python"
args = ["C:\\...\\yakit-mcp\\yakit_mcp\\server.py"]Skill 部署
SKILL.md 放到 skills 目录(触发词自动发现)。
已知限制(v0.2-beta)
CDP 新增/关闭 Tab(
+/×按钮)依赖 hover 显示,已实现多级查找逻辑,需在 GUI 长时间运行的真实环境完整验证"旧内容残留"已从数据库层根治(
yakit_clear_history删除web_fuzzer_tasks/web_fuzzer_configs),不再依赖脆弱的 Monaco UI 清空Yakit 首次启动的引导弹窗(项目管理/版本提示)已自适应处理,但极端状态(引擎版本不匹配循环弹窗)可能仍需手动介入一次
截图依赖 Yakit GUI 可见(CDP 模式);GUI 不在时降级为渲染视图
逆向分析成果(Web Fuzzer 存储机制)
通过静态逆向 Yakit GUI app.asar 的 main.js + SQLite 数据库分析,确认:
数据 | 存储位置 | 管理方式 |
历史任务(数字 tab 列表) |
| gRPC |
任务响应 |
| 随任务级联删除 |
配置归档 |
| gRPC |
分组标签 |
| gRPC |
当前编辑器内容 | 前端内存态(打开时从最近历史加载) | 新开 tab + 填包解决 |
开发作者
框架:Python MCP SDK(FastMCP)
协议:Yakit gRPC(proto 提取自 Yakit GUI app.asgar)
截图:CDP / Win32 PrintWindow / PIL
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables reverse engineering of web applications and chat interfaces through browser automation, network traffic capture, and streaming API discovery. Provides comprehensive tools for analyzing network patterns, capturing streaming responses, and automating complex web interactions.1481ISC
- Flicense-qualityDmaintenanceEnables AI agents to perform automated security testing through Caido, providing 10 security tools for vulnerability scanning (XSS, SQLi, command injection), HTTP request manipulation, and penetration testing workflows with whitelist protection.1
- AlicenseBqualityBmaintenanceEnables AI agents to debug code and automate browsers using Chrome DevTools Protocol, supporting breakpoints, variable inspection, and replayable interaction recording.35014MIT
- AlicenseCqualityAmaintenanceTransforms mitmproxy into a toolset for AI agents to inspect, modify, and replay HTTP/HTTPS traffic in real-time.2599MIT
Related MCP Connectors
The web capability layer for AI agents: render, extract, DNS, SSL, WHOIS & more via x402.
Screenshots, PDFs and Markdown from any URL or HTML for AI agents, via the SnapForge API
Provides cloud browser automation capabilities using Stagehand and Browserbase, enabling LLMs to i…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/l0s3r-Q/yakit-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server