代理服务器管理工具

Whistle MCP Server 是一个基于模型上下文协议(MCP)的代理管理工具,允许AI助手直接操作和控制本地Whistle代理服务器,简化网络调试、API测试和代理规则管理。

  • by 7gugu
  • TypeScript
  • 本地部署
  • 44 星标
  • 更新于
在 GitHub 查看 7gugu/whistle-mcp

使用说明

Whistle MCP服务器

英语| 中文

项目介绍

Whistle MCP Server是一个基于模型上下文协议(MCP)的Whistle代理管理工具,允许AI助手直接操作和控制本地Whistle的代理服务器。通过这个工具,人工智能可以帮助用户管理规则、组、值、监控网络请求、重放和修改请求等,而不需要手动操作Whistle界面。它极大地简化了网络调试、API测试和代理规则管理的过程,使用户可以通过与人工智能的自然语言交互来完成复杂的网络代理配置任务。

特性

  • 规则管理:创建、更新、重命名、删除和启用/禁用Whistle规则
  • 组管理:创建、重命名、删除组,以及在规则和组之间关联操作
  • 价值管理:创建、更新、重命名和删除值,支持值组管理
  • 代理控制:启用/禁用代理、HTTP/HTTPS拦截、HTTP/2协议等。
  • 请求拦截:查看截获的网络请求信息,支持URL过滤
  • 请求重播:支持使用自定义请求参数重放捕获的请求
  • 多规则模式:支持启用/禁用多规则模式

安装

需求

需要Node.js 18.20.0或更高版本 (参见 engines 在 package.json).不支持旧版本。

通过Smithery安装

通过以下方式自动安装适用于Claude Desktop的Whistle MCP服务器 铁匠铺:

npx -y @smithery/cli install @7gugu/whistle-mcp --client claude

手动安装

您可以通过npm全局安装Whistle MCP服务器:

npm install -g whistle-mcp-tool

从源代码构建

从存储库根目录:

npm install
npm run build

构建输出条目为 dist/index.js (与使用的文件相同 whistle-mcp 全局安装后的CLI)。您还可以将MCP配置指向它 node 以及通往 dist/index.js.

MCP配置

传输(标准传输与HTTP)

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

暴露 可流式传输的HTTP 和 上海证券交易所 在同一进程上(对于远程或支持HTTP的客户端),使用 --transport http-stream.FastMCP然后继续监听 --mcp-host / --mcp-port 并提供:

  • 流式HTTP: http://<mcp-host>:<mcp-port><mcp-endpoint> (默认路径 /mcp)
  • 上海证券交易所 http://<mcp-host>:<mcp-port>/sse

别名为 http-stream: sse, streamable-http (模式相同;两个URL都可用)。

标志/env 含义
--transport / -t, FASTMCP_TRANSPORT stdio (默认)或 http-stream
--mcp-port, FASTMCP_PORT MCP HTTP端口(默认 8085 使用HTTP传输时)
--mcp-host, FASTMCP_HOST 绑定地址(默认 0.0.0.0)
--mcp-endpoint, FASTMCP_ENDPOINT 流式HTTP路径(默认 /mcp)
--stateless, FASTMCP_STATELESS=true 无状态HTTP模式(可选)

哨子 连接选项不变: --host, --port, --username / --password (或 -n / -w).

示例(8899上的HTTP传输+本地Whistle;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 CLI相同的标志)启动Whistle: 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

配置详情

  • 主机:Whistle服务器IP地址;默认为 localhost 如果省略
  • 端口:Whistle服务器端口;默认为 8899 如果省略
  • 用户名 (-n / --username):Whistle启动时的基本身份验证用户名 -n;如果Whistle没有登录名,则省略
  • 密码 (-w / --password):Whistle启动时的基本身份验证密码 -w;如果设置了用户名但省略了密码,则会发送一个空密码

在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过滤和正则表达式
重播请求 重播请求 重新发送具有可自定义参数的指定网络请求

效用

工具名称 描述 功能
getCurrentTimestamp 获取当前时间戳 获取当前本地时间戳

联系方式