mcpField
C
CronAlert

CronAlert

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

关于 CronAlert

CronAlert 是供 AI 客户端管理 CronAlert 运行时间监控、检查结果和事件的 MCP 服务。它支持只读密钥和可选的删除确认令牌,也可从所列服务及文件格式导入监控项。

主要功能

  1. 01列出和管理运行时间监控
  2. 02查看检查历史与事件
  3. 03暂停或恢复监控
  4. 04管理事件更新和状态页
  5. 05从服务或 CSV 导入监控项

适用场景

  1. 01检查活动中断并查看错误
  2. 02维护期间暂停暂存环境监控
  3. 03用心跳监控跟踪夜间备份
  4. 04将现有监控项导入 CronAlert

MCP 相关

通过本地服务或远程 Streamable HTTP 端点,向 MCP 客户端开放监控、检查结果、事件和状态页操作。API 密钥范围可限制写入权限,删除操作可要求确认令牌。

配置

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

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

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

安装包
npmcronalert-mcp1.5.1

工具

12

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

参数类型必填说明
pageinteger否页码
limitinteger否每页结果数(最多 100 条)
statusenum否按监控器状态筛选up | down | unknown

详细介绍

cronalert-mcp

用于 CronAlert 正常运行时间监控的 MCP 服务。可通过 Claude、Cursor、Windsurf 或任何兼容 MCP 的 AI 客户端管理监控项、查看检查结果和事件。

快速开始

1. 获取 API 密钥

在 cronalert.com 注册,然后在 Settings > API Keys 中创建 API 密钥。

创建密钥时,请选择权限范围:

  • 只读 — Agent 可以列出和读取监控项、检查结果和事件,但不能创建、更新或删除任何内容。建议大多数 Agent 配置使用此权限。
  • 读写 — 拥有完整访问权限,包括具有破坏性的工具。也可启用**“需要确认”**,这样删除操作需要服务器签发的确认令牌(参见安全与权限)。
2. 添加到 MCP 客户端

Claude Desktop — 编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "cronalert": {
      "command": "npx",
      "args": ["-y", "cronalert-mcp"],
      "env": {
        "CRONALERT_API_KEY": "ca_your_api_key_here"
      }
    }
  }
}

Claude Code — 运行:

claude mcp add cronalert -e CRONALERT_API_KEY=ca_your_key -- npx -y cronalert-mcp

Cursor — 添加到 .cursor/mcp.json:

{
  "mcpServers": {
    "cronalert": {
      "command": "npx",
      "args": ["-y", "cronalert-mcp"],
      "env": {
        "CRONALERT_API_KEY": "ca_your_api_key_here"
      }
    }
  }
}

远程服务(无需安装) — 将任意 MCP 客户端连接到:

https://cronalert.com/mcp

使用 Authorization: Bearer ca_your_key 请求头进行身份验证。支持 Streamable HTTP 传输。

3. 开始使用

让 AI 助手帮你管理监控项(参见下方示例)。

4. 可选:添加 Agent Skill

此服务为 Agent 提供工具;cronalert-uptime-monitoring 技能则会告诉 Agent 何时以及如何使用这些工具(监控类型选择、心跳宽限期、故障排查、删除前确认)。将文件夹复制到 .claude/skills/(Claude Code)或 ~/.codex/skills/(Codex),也可从 Agensi 安装。

可用工具

工具描述类型
list_monitors列出所有监控项及其状态和响应时间读取
create_monitor创建 HTTP、心跳或 TCP 端口监控项(心跳监控需要设置预期间隔和宽限期)写入
get_monitor获取指定监控项的详情读取
update_monitor更新设置、心跳间隔和宽限期,以及暂停/恢复状态写入
delete_monitor永久删除监控项写入
get_check_results查看检查历史记录、正常运行时间百分比和响应时间读取
get_monitor_incidents查看指定监控项的事件读取
list_incidents查看所有监控项中的活动事件读取
list_status_pages查看你的公开状态页读取
add_incident_update在活动事件中发布状态更新写入
get_incident_updates查看事件的状态更新读取
import_monitors从 UptimeRobot、Pingdom、Better Stack、StatusCake、Checkly、Oh Dear、Cronitor、Healthchecks.io、Dead Man's Snitch、Datadog、CronAlert JSON 或 CSV 导入监控项写入

安全与权限

MCP 客户端中的审批由客户端执行:写入工具带有 destructiveHint: true,因此 Claude Code / Desktop / Cursor 会在运行这些工具前提示确认。CronAlert 还设置了两道服务器端防线,确保客户端提示不是唯一的防护措施:

  • 只读 API 密钥。 只读密钥在所有写入端点(创建/更新/删除/导入)都会被拒绝,并返回 403 — 这一限制由服务器强制执行,与客户端无关。向 Agent 提供只读密钥后,具有破坏性的工具就无法成功执行。这是最强的防护措施,也是建议采用的默认设置。
  • 删除确认令牌。 如果读写密钥启用了**“需要确认”**,delete_monitor 会先返回预览以及一个有时效限制、与资源绑定的 confirmToken,而不会直接删除。Agent 必须再次调用 delete_monitor,并在 confirm 参数中传入该令牌。这样可以防止一次误触或提示词注入调用导致数据被销毁,同时为服务器提供可审计且明确的二次确认步骤。

API 密钥仅限单个团队使用,因此无论密钥出现何种问题,影响范围都仅限于该团队的资源。

示例

示例 1:创建监控并检查其状态

用户提示词:“为 https://api.example.com/health 创建一个监控,每分钟检查一次,然后向我展示其详细信息。”

执行过程:

  1. AI 使用 name: "API Health"、url: "https://api.example.com/health"、checkInterval: 60 调用 create_monitor
  2. CronAlert 创建监控并返回其 ID
  3. AI 使用新 ID 调用 get_monitor,以展示详细信息

预期输出:

{
  "id": "abc123",
  "name": "API Health",
  "url": "https://api.example.com/health",
  "method": "GET",
  "checkInterval": 60,
  "lastStatus": "unknown",
  "createdAt": "2026-03-08T12:00:00Z"
}
示例 2:检查正常运行时间并响应事件

用户提示词:“我的监控有哪一个已停止运行吗?如果有,请向我展示错误详细信息。”

执行过程:

  1. AI 调用 list_incidents,检查当前是否有事件
  2. 如果存在事件,则针对每个受影响的监控调用 get_monitor
  3. AI 调用 get_check_results,获取近期错误的详细信息

预期输出(无事件):

{
  "data": [],
  "message": "No active incidents"
}

预期输出(有事件):

{
  "data": [
    {
      "id": "inc_xyz",
      "monitorId": "abc123",
      "cause": "Expected status 200, got 503",
      "startedAt": "2026-03-08T11:45:00Z"
    }
  ]
}
示例 3:列出监控并暂停一个监控以进行维护

用户提示词:“列出我的所有监控,然后暂停 staging 监控。”

执行过程:

  1. AI 调用 list_monitors,获取所有监控
  2. AI 根据名称识别 staging 监控
  3. AI 使用 id: "staging_id" 和 paused: true 调用 update_monitor

预期输出:

{
  "id": "staging_id",
  "name": "Staging Server",
  "isPaused": true,
  "lastStatus": "up"
}
示例 4:夜间备份的心跳监控(v1.5.0+)

用户提示词:“创建一个名为 Nightly DB backup 的心跳监控,要求每 24 小时收到一次 ping,并设置 2 小时的宽限期,然后给我一个可添加到 cron 任务的 URL。”

执行过程:

  1. AI 使用 type: "heartbeat"、name: "Nightly DB backup"、checkInterval: 86400、gracePeriod: 7200 调用 create_monitor
  2. CronAlert 返回包含唯一 ping url 的监控信息
  3. AI 显示要追加到任务中的 URL,例如 pg_dump ... && curl -fsS <url>

checkInterval 是预期的 ping 间隔秒数(计划允许的最小值;Pro+ 为 60,最高可达 604800)。gracePeriod 为可选项;默认值为间隔时长,最多一小时。对于 http 和 tcp 监控,checkInterval 会被忽略,并根据你的计划设置。

要求

隐私政策

此 MCP 服务使用你的 API 密钥连接到 CronAlert API(cronalert.com/api/v1/)。它会传输:

  • 监控配置(名称、URL、检查间隔),用于创建或更新监控
  • API 密钥,用于每次请求的身份验证

数据由 Cloudflare 基础设施上的 CronAlert 服务器处理。MCP 服务本身不会在本地存储任何数据。有关数据收集、保留和你的权利,请参阅完整的隐私政策。

支持

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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