Whistle哨声代理管理工具
Whistle MCP Server 是基于模型上下文协议(MCP)协议的 Whistle 代理管理工具,它使人工智能助手能够直接操作和控制本地 Whistle 代理服务器。通过这个工具,人工智能可以帮助用户管理规则、组、值,监控网络请求以及重放。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"whistle-mcp": {
"args": [
"--host=\u003cwhistle server IP address\u003e",
"--port=\u003cwhistle server port number\u003e"
],
"command": "whistle-mcp"
}
}
}
该服务需要配置环境变量:host、port
服务介绍
Whistle MCP 服务器
English | 中文
项目介绍
Whistle MCP 服务器是一个基于 Model Context Protocol (MCP) 的 Whistle 代理管理工具,允许 AI 助手直接操作和控制本地的 Whistle 代理服务器。通过这个工具,AI 可以帮助用户管理规则、组、值、监控网络请求、重放和修改请求等,而无需手动操作 Whistle 界面。它极大地简化了网络调试、API 测试和代理规则管理的过程,使用户能够通过与 AI 的自然语言交互完成复杂的网络代理配置任务。
特性
- 规则管理:创建、更新、重命名、删除以及启用/禁用 Whistle 规则
- 组管理:创建、重命名、删除组,并进行规则与组之间的关联操作
- 值管理:创建、更新、重命名和删除值,并支持值组管理
- 代理控制:启用/禁用代理、HTTP/HTTPS 拦截、HTTP/2 协议等
- 请求拦截:查看被拦截的网络请求信息,并支持 URL 过滤
- 请求重放:支持使用自定义请求参数重放捕获的请求
- 多规则模式:支持启用/禁用多规则模式
安装
通过 Smithery 安装
要通过 Smithery 自动为 Claude Desktop 安装 Whistle MCP 服务器:
npx -y @smithery/cli install @7gugu/whistle-mcp --client claude
手动安装
你可以通过 npm 全局安装 Whistle MCP 服务器:
npm install -g whistle-mcp-tool
MCP 配置
安装后,你可以在你的 MCP JSON 配置文件中配置 Whistle MCP:
{
"mcpServers": {
"whistle-mcp": {
"command": "whistle-mcp",
"args": [
"--host=<whistle server IP address>",
"--port=<whistle server port number>"
]
}
}
}
配置详情
- host: Whistle 服务器 IP 地址,未配置时默认为 localhost
- port: Whistle 服务器端口号,未配置时默认为 8899
在 AI 客户端中配置 MCP JSON
- Claude 客户端: https://modelcontextprotocol.io/quickstart/user
- Raycast: 需要安装 MCP 插件
- Cursor: https://docs.cursor.com/context/model-context-protocol#configuring-mcp-servers
MCP 工具说明
Whistle MCP 服务器提供了以下工具,可以通过 MCP 协议调用:
规则管理
| 工具名称 | 描述 | 功能 |
|---|---|---|
| getRules | 获取所有规则 | 列出所有已创建的规则及其内容 |
| createRule | 创建新规则 | 用指定名称创建一个新规则 |
| updateRule | 更新规则内容 | 修改指定规则的内容 |
| renameRule | 重命名规则 | 将规则重命名为新的名称 |
| deleteRule | 删除规则 | 删除指定名称的规则 |
| selectRule | 启用规则 | 启用指定名称的规则 |
| unselectRule | 禁用规则 | 禁用指定名称的规则 |
| disableAllRules | 禁用所有规则 | 一次性禁用所有已创建的规则 |
组管理
| 工具名称 | 描述 | 功能 |
|---|---|---|
| createGroup | 创建组 | 用指定名称创建一个新的规则组 |
| renameGroup | 重命名组 | 将规则组重命名为新的名称 |
| deleteGroup | 删除组 | 删除指定名称的规则组 |
| moveRuleToGroup | 将规则移至组 | 将指定规则移动到特定组中 |
| moveRuleOutOfGroup | 将规则移出组 | 将规则从其所在的组移动到顶层 |
值管理
| 工具名称 | 描述 | 功能 |
|---|---|---|
| getAllValues | 获取所有值 | 列出所有已创建的值和值组 |
| createValue | 创建新值 | 用指定名称创建一个新值 |
| updateValue | 更新值内容 | 修改指定值的内容 |
| renameValue | 重命名值 | 将值重命名为新的名称 |
| deleteValue | 删除值 | 删除指定名称的值 |
| createValueGroup | 创建值组 | 用指定名称创建一个新的值组 |
| renameValueGroup | 重命名值组 | 将值组重命名为新的名称 |
| deleteValueGroup | 删除值组 | 删除指定名称的值组 |
| moveValueToGroup | 将值移至组 | 将指定值移动到特定组中 |
| moveValueOutOfGroup | 将值移出组 | 将值从其所在的组移动到顶层 |
代理控制
| 工具名称 | 描述 | 功能 |
|---|---|---|
| getStatus | 获取服务器状态 | 获取Whistle服务器的当前状态信息 |
| toggleProxy | 启用/禁用代理 | 切换Whistle代理的启用状态 |
| toggleHttpsInterception | 启用/禁用HTTPS拦截 | 切换HTTPS请求拦截的启用状态 |
| toggleHttp2 | 启用/禁用HTTP2 | 切换HTTP/2协议支持的启用状态 |
| toggleMultiRuleMode | 启用/禁用多规则模式 | 切换是否允许同时启用多个规则 |
请求管理
| 工具名称 | 描述 | 功能 |
|---|---|---|
| getInterceptInfo | 获取拦截信息 | 获取被Whistle拦截的网络请求信息,支持过滤 |
| replayRequest | 重新发送请求 | 重新发送指定的网络请求,并可自定义参数 |
联系信息
- 邮箱: gz7gugu@qq.com
- 博客: https://7gugu.com