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) - 上海证券交易所
http://:/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 覆盖默认值 8085.
安装后,您可以在MCP JSON配置文件中配置Whistle MCP:
{
"mcpServers": {
"whistle-mcp": {
"command": "whistle-mcp",
"args": [
"--host=",
"--port="
]
}
}
}如果使用基本身份验证(与Whistle CLI相同的标志)启动Whistle: w2 start -n -w ),通过 相同 此MCP服务器的凭据,因此对Whistle的API的HTTP请求成功:
{
"mcpServers": {
"whistle-mcp": {
"command": "whistle-mcp",
"args": [
"--host=localhost",
"--port=8899",
"--username=",
"--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
- 克劳德客户: https://modelcontextprotocol.io/quickstart/user
- Raycast:需要安装MCP插件
- 光标: https://docs.cursor.com/context/model-context-protocol#configuring-mcp服务器
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 | 获取当前时间戳 | 获取当前本地时间戳 |
联系方式
- 电子邮件: gz7gugu@qq.com
- 博客: https://7gugu.com
