关于 fleetwatch
fleetwatch 是连接 ET Ducky 托管 MCP 服务的本地只读桥接,供查看 Windows 和 Linux 终端 Agent 状态的组织使用。它转发上游工具调用,不存储车队数据或执行检查。
主要功能
- 01按主机名筛选和列出 Agent
- 02查看单台设备健康样本
- 03按状态和严重性列出告警
- 04汇总在线设备及告警
- 05通过 CLI 调用工具
适用场景
- 01检查哪些终端 Agent 在线
- 02查看设备资源状态和活动告警
- 03按操作系统或标签筛选设备
MCP 相关
作为 MCP 服务,它向客户端提供上游工具,并将调用转发至 ET Ducky 托管 MCP 服务;工具界面为只读。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
4收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| os | enum | 否 | 仅返回此 OS 系列的 Agent。windows | linux | other |
| tag | string | 否 | 仅返回带有此确切标签名称的 Agent。 |
| limit | integer | 否 | 最多返回的行数。默认为 100。 |
| online | boolean | 否 | true 表示过去 5 分钟内有心跳的 Agent;false 表示其他 Agent。 |
| search | string | 否 | 主机名中不区分大小写的部分字符串。 |
详细介绍
fleetwatch
fleetwatch 是 ET Ducky 托管 MCP 服务的一个小型本地桥接程序。该服务负责监控组织的终端 Agent 集群——运行 ET Ducky Agent 的 Windows 和 Linux 计算机——并报告哪些设备在线、各设备的健康状况,以及当前有哪些未关闭的告警。
此桥接程序不保存任何集群数据,也不自行运行检查。它会在本地提供上游服务的工具列表,内容与从实时端点捕获的内容完全一致,并将每次工具调用转发到上游,原样返回结果。捕获到的整个接口均为只读;此重建版本没有添加任何写入功能。
工具
list_agents— 列出组织的 Agent,并显示操作系统、Agent 版本、在线状态、上次心跳时间、上次登录的用户、隔离状态和标签,按主机名排序。所有参数都是筛选条件:search(主机名中不区分大小写的部分字符串)、os(windows、linux或other)、online(过去 5 分钟内有心跳的 Agent 为 true)、tag(一个精确的标签名称)以及limit(1-500,默认值为 100)。get_agent— 获取一个 Agent 的完整信息:最新的健康样本(CPU、内存、C: 盘可用空间、运行时间、待处理的重启、制造商和型号)以及活动告警数量。必需参数:agent_id,即list_agents返回的 ID。list_alerts— 列出组织 Agent 触发的告警,按时间从新到旧排序。可选参数:status(active、acknowledged、resolved、auto_resolved、suppressed或any;默认为 active)、severity(例如critical或warning)、用于限定单台设备的agent_id、since_hours(1-720,默认值为 168,即七天)以及limit(1-500,默认值为 100)。get_fleet_summary— 一览组织概况:Agent 数量、在线和离线数量、Windows / Linux / 其他操作系统的分布、已隔离的 Agent,以及按严重程度统计的活动告警。无需参数。
配置
ETDUCKY_MCP_URL(可选)— 覆盖上游端点。默认为https://etducky.com/api/mcp。(此覆盖钩子是本重建版本自行添加并明确标注的内容。)ETDUCKY_API_KEY(可选)— 设置后,每个上游请求都会携带Authorization: Bearer <key>标头。未设置时,不会发送身份验证标头。(此转发机制也是本重建版本自行添加并明确标注的内容;原始接口是在不使用密钥的情况下捕获的。)
转发机制
首次调用工具时,客户端会与上游建立可流式传输的 HTTP 会话:先发送 JSON-RPC initialize 请求(protocolVersion 2025-03-26,clientInfo name fleetwatch),再发送 notifications/initialized 通知,最后发送携带调用方原样参数的 tools/call 请求。当上游在 initialize 响应中返回 Mcp-Session-Id 标头时,该值会随会话的后续每个请求发送;此会话会在进程整个生命周期内复用。响应可能是普通 JSON,也可能是服务器发送事件;两种格式都会读取。
上游成功结果会原样传递,包括上游设置的任何 isError 标志。失败情况——JSON-RPC 错误、非 2xx 状态码、无法读取的响应,或无法完成的请求——会作为 isError 结果返回,文本以 fleetwatch error: 开头(此错误呈现方式是本重建版本自行添加并明确标注的内容)。
CLI
每个工具也可作为子命令运行,并接受一个 JSON 参数字符串(无需参数的工具可省略):
npx @reneturcios/fleetwatch list_agents '{"os":"windows","online":true}'
npx @reneturcios/fleetwatch get_agent '{"agent_id":"agent-42"}'
npx @reneturcios/fleetwatch get_fleet_summary
npx @reneturcios/fleetwatch --version
退出代码:成功时为 0,结果包含 isError 时为 1,用法错误时为 2。
MCP 服务
npx -y @reneturcios/fleetwatch mcp
MCP 客户端配置:
{
"mcpServers": {
"fleetwatch": {
"command": "npx",
"args": ["-y", "@reneturcios/fleetwatch", "mcp"]
}
}
}
Docker
docker run -i ghcr.io/cloudcorprecords/fleetwatch
docker run --rm ghcr.io/cloudcorprecords/fleetwatch --version
容器的默认命令为 mcp,因此第一种形式是 stdio MCP 服务;其他参数则会正常传递给 CLI。
开发
npm install
npm run build
npm test
npm run dev
测试套件完全通过桩接的 JSON-RPC 上游运行,不会发起实时网络调用。
许可证
MIT — 参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。