mcpField
F
fleetwatch

fleetwatch

本地服务
github.com/CloudCorpRecords云与基础设施01 周前更新

关于 fleetwatch

fleetwatch 是连接 ET Ducky 托管 MCP 服务的本地只读桥接,供查看 Windows 和 Linux 终端 Agent 状态的组织使用。它转发上游工具调用,不存储车队数据或执行检查。

主要功能

  1. 01按主机名筛选和列出 Agent
  2. 02查看单台设备健康样本
  3. 03按状态和严重性列出告警
  4. 04汇总在线设备及告警
  5. 05通过 CLI 调用工具

适用场景

  1. 01检查哪些终端 Agent 在线
  2. 02查看设备资源状态和活动告警
  3. 03按操作系统或标签筛选设备

MCP 相关

作为 MCP 服务,它向客户端提供上游工具,并将调用转发至 ET Ducky 托管 MCP 服务;工具界面为只读。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-fleetwatch": {
"command": "npx",
"args": [
"-y",
"@reneturcios/fleetwatch"
]
}
}
}
启动命令npx -y @reneturcios/fleetwatch

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@reneturcios/fleetwatch0.1.0
ocighcr.io/cloudcorprecords/fleetwatch:0.1.0

工具

4

收录的工具列表 · 更新于 1 周前

参数类型必填说明
osenum否仅返回此 OS 系列的 Agent。windows | linux | other
tagstring否仅返回带有此确切标签名称的 Agent。
limitinteger否最多返回的行数。默认为 100。
onlineboolean否true 表示过去 5 分钟内有心跳的 Agent;false 表示其他 Agent。
searchstring否主机名中不区分大小写的部分字符串。

详细介绍

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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。