Skip to main content
Glama

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 使用的文件相同)。你也可以通过 nodedist/index.js 的路径将其指向 MCP 配置。

MCP 配置

传输方式 (stdio vs HTTP)

默认情况下,服务器使用 stdio(适用于 Cursor 等本地 MCP 客户端)。

要在同一进程上公开 Streamable HTTPSSE(用于远程或支持 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 的别名:ssestreamable-http(模式相同;两个 URL 均可用)。

标志 / 环境变量

含义

--transport / -t, FASTMCP_TRANSPORT

stdio(默认)或 http-stream

--mcp-port, FASTMCP_PORT

MCP HTTP 端口(使用 HTTP 传输时默认为 8085

--mcp-host, FASTMCP_HOST

绑定地址(默认 0.0.0.0

--mcp-endpoint, FASTMCP_ENDPOINT

Streamable HTTP 路径(默认 /mcp

--stateless, FASTMCP_STATELESS=true

无状态 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 地址;如果省略,默认为 localhost

  • port: Whistle 服务器端口;如果省略,默认为 8899

  • username (-n / --username): 使用 -n 启动 Whistle 时的基本身份验证用户名;如果 Whistle 没有登录,则省略

  • password (-w / --password): 使用 -w 启动 Whistle 时的基本身份验证密码;如果设置了用户名但省略了密码,则发送空密码

在 AI 客户端中配置 MCP JSON

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

获取当前时间戳

获取当前本地时间戳

联系方式

Install Server
A
license - permissive license
C
quality
B
maintenance

Maintenance

Maintainers
2dResponse time
Release cycle
Releases (12mo)
Issues opened vs closed

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