c0tton-fluff/caido-mcp-server
GitHub: c0tton-fluff/caido-mcp-server
这是一个连接 Caido Web 代理与 AI 助手的 MCP 服务器,支持浏览、重放及分析 HTTP 流量并提供独立 CLI 客户端。
Stars: 35 | Forks: 6
caido-mcp-server
用于 Caido Web 代理的 MCP 服务器和 CLI - 从 AI 助手或终端浏览、重放和分析 HTTP 流量。
## 功能介绍 两种与 Caido 代理交互的方式: - **MCP 服务器** - 通过模型上下文协议 (Model Context Protocol) 向 AI 助手(Claude Code、Cursor 等)暴露 Caido 工具 - **CLI** - 为偏好命令行的渗透测试人员提供的独立终端客户端 两者共享相同的身份验证令牌、相同的 Go SDK 和相同的代码库。 ## 功能特性 | 类别 | 能力 | |----------|-------------| | **代理历史** | 使用 HTTPQL 搜索请求,获取完整的请求/响应详情 | | **重放** | 发送 HTTP 请求,内联获取响应(状态、标头、正文) | | **自动化** | 访问模糊测试会话、结果和载荷。启动/暂停/恢复/取消任务 | | **发现** | 创建、列出、删除和导出安全发现 | | **站点地图** | 浏览已发现的端点 | | **范围** | 创建和管理目标范围定义 | | **项目** | 列出项目并在项目之间切换 | | **工作流** | 列出、运行和切换自动化工作流 | | **篡改** | 列出、创建、切换和删除匹配与替换规则 | | **拦截** | 检查状态、暂停/恢复、列出/转发/丢弃已拦截的请求 | | **环境** | 列出和切换变量环境(令牌、密钥) | | **过滤器** | 列出已保存的 HTTPQL 过滤器预设 | | **实例** | 获取 Caido 版本和平台信息 | **内置的安全性和性能:** - 凭据编辑 - 在工具输出中会对 Authorization、Cookie 和 API key 标头进行编辑 - 输入验证 - 对所有字符串输入进行长度限制以防止上下文泛滥 - 令牌自动刷新 - 过期的 OAuth 令牌会在会话期间自动刷新 - 会话复用 - 每个服务器生命周期内仅使用一个重放会话,避免扩散 - 正文限制 - 响应正文默认限制为 2KB 以节省 LLM 上下文 - 最小化工具描述 - 针对每次 API 调用的低令牌开销进行了优化 ## MCP 服务器 ### 安装 ``` curl -fsSL https://raw.githubusercontent.com/c0tton-fluff/caido-mcp-server/main/install.sh | bash ``` 或者从 [Releases](https://github.com/c0tton-fluff/caido-mcp-server/releases) 下载预构建的二进制文件(macOS、Linux、Windows - amd64/arm64)。从源码构建
``` git clone https://github.com/c0tton-fluff/caido-mcp-server.git cd caido-mcp-server go build -ldflags "-X main.version=$(git describe --tags)" -o caido-mcp-server ./cmd/mcp ```参数参考
#### caido 列出请求 | 参数 | 类型 | 描述 | |-----------|------|-------------| | `httpql` | string | HTTPQL 过滤查询 | | `limit` | int | 最大请求数(默认 20,最大 100) | | `after` | string | 分页游标 | #### caido 获取请求 | 参数 | 类型 | 描述 | |-----------|------|-------------| | `ids` | string[] | 请求 ID(必填) | | `include` | string[] | `requestHeaders`、`requestBody`、`responseHeaders`、`responseBody` | | `bodyOffset` | int | 字节偏移量 | | `bodyLimit` | int | 字节限制(默认 2000) | #### caido 发送请求 | 参数 | 类型 | 描述 | |-----------|------|-------------| | `raw` | string | 完整的 HTTP 请求(必填) | | `host` | string | 目标主机(覆盖 Host 标头) | | `port` | int | 目标端口 | | `tls` | bool | 使用 HTTPS(默认 true) | | `sessionId` | string | 重放会话(如果省略则自动管理) | #### caido 获取 Replay 条目 | 参数 | 类型 | 描述 | |-----------|------|-------------| | `id` | string | 重放条目 ID(必填) | | `bodyOffset` | int | 字节偏移量 | | `bodyLimit` | int | 字节限制(默认 2000) | #### caido 获取 Automate 条目 | 参数 | 类型 | 描述 | |-----------|------|-------------| | `id` | string | 条目 ID(必填) | | `limit` | int | 最大结果数 | | `after` | string | 分页游标 | #### caido 创建 Finding | 参数 | 类型 | 描述 | |-----------|------|-------------| | `requestId` | string | 关联的请求(必填) | | `title` | string | 发现标题(必填) | | `description` | string | 发现描述 | #### caido 创建 Scope | 参数 | 类型 | 描述 | |-----------|------|-------------| | `name` | string | 范围名称(必填) | | `allowlist` | string[] | 要包含的主机名,例如 `example.com`、`*.example.com`(必填) | | `denylist` | string[] | 要排除的主机名 | #### caido 选择项目 | 参数 | 类型 | 描述 | |-----------|------|-------------| | `id` | string | 要切换到的项目 ID(必填) | #### caido 拦截控制 | 参数 | 类型 | 描述 | |-----------|------|-------------| | `action` | string | `pause` 或 `resume`(必填) | #### caido 列出拦截条目 | 参数 | 类型 | 描述 | |-----------|------|-------------| | `filter` | string | HTTPQL 过滤查询 | | `limit` | int | 最大条目数(默认 20,最大 100) | | `after` | string | 分页游标 | #### caido 转发拦截 | 参数 | 类型 | 描述 | |-----------|------|-------------| | `id` | string | 拦截条目 ID(必填) | | `raw` | string | 修改后的原始 HTTP 请求(base64 编码,可选) | #### caido 丢弃拦截 | 参数 | 类型 | 描述 | |-----------|------|-------------| | `id` | string | 拦截条目 ID(必填) | #### caido Automate 任务控制 | 参数 | 类型 | 描述 | |-----------|------|-------------| | `action` | string | `start`、`pause`、`resume` 或 `cancel`(必填) | | `session_id` | string | Automate 会话 ID(启动时必填) | | `task_id` | string | Automate 任务 ID(暂停/恢复/取消时必填) | #### caido 删除 Findings | 参数 | 类型 | 描述 | |-----------|------|-------------| | `ids` | string[] | 要删除的发现 ID | | `reporter` | string | 删除该报告者的所有发现 | #### caido 导出 Findings | 参数 | 类型 | 描述 | |-----------|------|-------------| | `ids` | string[] | 要导出的发现 ID | | `reporter` | string | 导出该报告者的所有发现 | #### caido 列出环境 无需参数。返回所有环境及其变量以及选中/全局上下文。 #### caido 选择环境 | 参数 | 类型 | 描述 | |-----------|------|-------------| | `id` | string | 环境 ID(必填,空字符串表示取消选择) | #### caido 运行 Workflow | 参数 | 类型 | 描述 | |-----------|------|-------------| | `id` | string | 工作流 ID(必填) | | `type` | string | `active` 或 `convert`(必填) | | `request_id` | string | 请求 ID(活动工作流必填) | | `input` | string | 输入数据(转换工作流必填) | #### caido 切换 Workflow | 参数 | 类型 | 描述 | |-----------|------|-------------| | `id` | string | 工作流 ID(必填) | | `enabled` | bool | 启用或禁用(必填) | #### caido 列出 Tamper 规则 无需参数。返回所有包含嵌套规则的篡改规则集合。 #### caido 创建 Tamper 规则 | 参数 | 类型 | 描述 | |-----------|------|-------------| | `collection_id` | string | 集合 ID(必填) | | `name` | string | 规则名称(必填) | | `condition` | string | HTTPQL 过滤条件 | | `sources` | string[] | 流量来源:INTERCEPT、REPLAY、AUTOMATE、IMPORT、PLUGIN、WORKFLOW、SAMPLE | #### caido 切换 Tamper 规则 | 参数 | 类型 | 描述 | |-----------|------|-------------| | `id` | string | 篡改规则 ID(必填) | | `enabled` | bool | 启用或禁用(必填) | #### caido 删除 Tamper 规则 | 参数 | 类型 | 描述 | |-----------|------|-------------| | `id` | string | 篡改规则 ID(必填) |标签:AI辅助安全, Burp Suite替代, Caido, Claude Code, Elastic Stack, EVTX分析, Go语言, HTTPQL, HTTP流量分析, MCP服务器, Web代理, 安全测试, 抓包工具, 拦截代理, 攻击性安全, 日志审计, 服务管理, 流量重放, 程序破解, 网络安全, 自动化渗透, 隐私保护