whistle-mcp
Whistle MCP Server
English | 中文
项目介绍
Whistle MCP Server 是一个基于模型上下文协议 (MCP) 的 Whistle 代理管理工具,允许 AI 助手直接操作和控制本地 Whistle 代理服务器。通过此工具,AI 可以帮助用户管理规则、分组、值、监控网络请求、重放和修改请求等,而无需手动操作 Whistle 界面。它极大地简化了网络调试、API 测试和代理规则管理的流程,使用户能够通过与 AI 的自然语言交互来完成复杂的网络代理配置任务。
Related MCP server: MCP Server
功能特性
规则管理:创建、更新、重命名、删除以及启用/禁用 Whistle 规则
分组管理:创建、重命名、删除分组,以及规则与分组之间的关联操作
值管理:创建、更新、重命名和删除值,支持值分组管理
代理控制:启用/禁用代理、HTTP/HTTPS 拦截、HTTP/2 协议等
请求拦截:查看拦截的网络请求信息,支持 URL 过滤
请求重放:支持使用自定义请求参数重放捕获的请求
多规则模式:支持启用/禁用多规则模式
安装
要求
需要 Node.js 18.20.0 或更高版本(请参阅 package.json 中的 engines)。不支持旧版本。
通过 Smithery 安装
通过 Smithery 自动为 Claude Desktop 安装 Whistle MCP Server:
npx -y @smithery/cli install @7gugu/whistle-mcp --client claude手动安装
你可以通过 npm 全局安装 Whistle MCP Server:
npm install -g whistle-mcp-tool从源码构建
在仓库根目录下:
npm install
npm run build构建输出入口为 dist/index.js(与全局安装后 whistle-mcp CLI 使用的文件相同)。你也可以通过 node 和 dist/index.js 的路径将其指向 MCP 配置。
MCP 配置
传输方式 (stdio vs HTTP)
默认情况下,服务器使用 stdio(适用于 Cursor 等本地 MCP 客户端)。
要在同一进程上公开 Streamable HTTP 和 SSE(用于远程或支持 HTTP 的客户端),请使用 --transport http-stream。FastMCP 将监听 --mcp-host / --mcp-port 并提供以下服务:
Streamable HTTP:
http://<mcp-host>:<mcp-port><mcp-endpoint>(默认路径/mcp)SSE:
http://<mcp-host>:<mcp-port>/sse
http-stream 的别名:sse,streamable-http(模式相同;两个 URL 均可用)。
标志 / 环境变量 | 含义 |
|
|
| MCP HTTP 端口(使用 HTTP 传输时默认为 8085) |
| 绑定地址(默认 0.0.0.0) |
| Streamable HTTP 路径(默认 |
| 无状态 HTTP 模式(可选) |
Whistle 连接选项保持不变:--host、--port、--username / --password(或 -n / -w)。
示例(HTTP 传输 + 本地 Whistle 在 8899 端口;MCP 默认监听 8085):
whistle-mcp --transport http-stream --host 127.0.0.1 --port 8899使用 --mcp-port <port> 覆盖默认的 8085。
安装后,你可以在 MCP JSON 配置文件中配置 Whistle MCP:
{
"mcpServers": {
"whistle-mcp": {
"command": "whistle-mcp",
"args": [
"--host=<whistle server IP address>",
"--port=<whistle server port number>"
]
}
}
}如果你在启动 Whistle 时使用了基本身份验证(与 Whistle CLI 标志相同:w2 start -n <username> -w <password>),请将相同的凭据传递给此 MCP 服务器,以便对 Whistle API 的 HTTP 请求能够成功:
{
"mcpServers": {
"whistle-mcp": {
"command": "whistle-mcp",
"args": [
"--host=localhost",
"--port=8899",
"--username=<username>",
"--password=<password>"
]
}
}
}短选项(与 w2 对齐):-n / -w 等同于 --username / --password。
whistle-mcp --host localhost --port 8899 -n myuser -w mypass配置详情
host: Whistle 服务器 IP 地址;如果省略,默认为
localhostport: Whistle 服务器端口;如果省略,默认为
8899username (
-n/--username): 使用-n启动 Whistle 时的基本身份验证用户名;如果 Whistle 没有登录,则省略password (
-w/--password): 使用-w启动 Whistle 时的基本身份验证密码;如果设置了用户名但省略了密码,则发送空密码
在 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 Server 提供以下工具,可通过 MCP 协议调用:
规则管理
工具名称 | 描述 | 功能 |
getRules | 获取所有规则 | 列出所有已创建的规则及其内容 |
createRule | 创建新规则 | 使用指定的名称创建新规则 |
updateRule | 更新规则内容 | 修改指定规则的内容 |
renameRule | 重命名规则 | 将规则重命名为新名称 |
deleteRule | 删除规则 | 删除指定名称的规则 |
enableRule | 启用规则 | 启用指定名称的规则 |
disableRule | 禁用规则 | 禁用指定名称的规则 |
setAllRulesState | 设置所有规则状态 | 一次性启用或禁用所有规则 |
分组管理
工具名称 | 描述 | 功能 |
createGroup | 创建分组 | 使用指定的名称创建新的规则分组 |
renameGroup | 重命名分组 | 将规则分组重命名为新名称 |
deleteGroup | 删除分组 | 删除指定名称的规则分组 |
addRuleToGroup | 将规则添加到分组 | 将指定的规则添加到特定分组 |
removeRuleFromGroup | 从分组中移除规则 | 将规则从其分组中移除到顶层 |
值管理
工具名称 | 描述 | 功能 |
getAllValues | 获取所有值 | 列出所有已创建的值和值分组(注意:数据量可能较大,建议先使用 getValueList) |
getValueList | 获取值列表 | 仅获取包含索引和名称的值列表(不包含数据字段,以避免大数据负载) |
getValue | 获取单个值 | 按名称获取单个值的完整信息(包含数据字段) |
createValue | 创建新值 | 使用指定的名称创建新值 |
updateValue | 更新值内容 | 修改指定值的内容 |
renameValue | 重命名值 | 将值重命名为新名称 |
deleteValue | 删除值 | 删除指定名称的值 |
createValuesGroup | 创建值分组 | 使用指定的名称创建新的值分组 |
renameValueGroup | 重命名值分组 | 将值分组重命名为新名称 |
deleteValueGroup | 删除值分组 | 删除指定名称的值分组 |
addValueToGroup | 将值添加到分组 | 将指定的值添加到特定分组 |
removeValueFromGroup | 从分组中移除值 | 将值从其分组中移除到顶层 |
代理控制
工具名称 | 描述 | 功能 |
getWhistleStatus | 获取服务器状态 | 获取 Whistle 服务器的当前状态信息 |
toggleProxy | 启用/禁用代理 | 切换 Whistle 代理的启用状态 |
toggleHttpInterception | 启用/禁用 HTTP 拦截 | 切换 HTTP 请求拦截的启用状态 |
toggleHttpsInterception | 启用/禁用 HTTPS 拦截 | 切换 HTTPS 请求拦截的启用状态 |
toggleHttp2 | 启用/禁用 HTTP2 | 切换 HTTP/2 协议支持的启用状态 |
toggleMultiRuleMode | 启用/禁用多规则模式 | 切换是否允许同时启用多条规则 |
请求管理
工具名称 | 描述 | 功能 |
getInterceptInfo | 获取拦截信息 | 获取 Whistle 拦截的网络请求信息,支持 URL 过滤和正则表达式 |
replayRequest | 重放请求 | 使用可自定义的参数重新发送指定的网络请求 |
工具类
工具名称 | 描述 | 功能 |
getCurrentTimestamp | 获取当前时间戳 | 获取当前本地时间戳 |
联系方式
邮箱: gz7gugu@qq.com
Maintenance
Appeared in Searches
Latest Blog Posts
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/7gugu/whistle-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server