关于 CronAlert
CronAlert 是供 AI 客户端管理 CronAlert 运行时间监控、检查结果和事件的 MCP 服务。它支持只读密钥和可选的删除确认令牌,也可从所列服务及文件格式导入监控项。
主要功能
- 01列出和管理运行时间监控
- 02查看检查历史与事件
- 03暂停或恢复监控
- 04管理事件更新和状态页
- 05从服务或 CSV 导入监控项
适用场景
- 01检查活动中断并查看错误
- 02维护期间暂停暂存环境监控
- 03用心跳监控跟踪夜间备份
- 04将现有监控项导入 CronAlert
MCP 相关
通过本地服务或远程 Streamable HTTP 端点,向 MCP 客户端开放监控、检查结果、事件和状态页操作。API 密钥范围可限制写入权限,删除操作可要求确认令牌。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
12收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | integer | 否 | 页码 |
| limit | integer | 否 | 每页结果数(最多 100 条) |
| status | enum | 否 | 按监控器状态筛选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 创建一个监控,每分钟检查一次,然后向我展示其详细信息。”
执行过程:
- AI 使用
name: "API Health"、url: "https://api.example.com/health"、checkInterval: 60调用create_monitor - CronAlert 创建监控并返回其 ID
- 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:检查正常运行时间并响应事件
用户提示词:“我的监控有哪一个已停止运行吗?如果有,请向我展示错误详细信息。”
执行过程:
- AI 调用
list_incidents,检查当前是否有事件 - 如果存在事件,则针对每个受影响的监控调用
get_monitor - 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 监控。”
执行过程:
- AI 调用
list_monitors,获取所有监控 - AI 根据名称识别 staging 监控
- 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。”
执行过程:
- AI 使用
type: "heartbeat"、name: "Nightly DB backup"、checkInterval: 86400、gracePeriod: 7200调用create_monitor - CronAlert 返回包含唯一 ping
url的监控信息 - AI 显示要追加到任务中的 URL,例如
pg_dump ... && curl -fsS <url>
checkInterval 是预期的 ping 间隔秒数(计划允许的最小值;Pro+ 为 60,最高可达 604800)。gracePeriod 为可选项;默认值为间隔时长,最多一小时。对于 http 和 tcp 监控,checkInterval 会被忽略,并根据你的计划设置。
要求
- Node.js 18+
- 一个 CronAlert 账号(免费套餐即可)
- 从 Settings > API Keys 获取的 API 密钥
隐私政策
此 MCP 服务使用你的 API 密钥连接到 CronAlert API(cronalert.com/api/v1/)。它会传输:
- 监控配置(名称、URL、检查间隔),用于创建或更新监控
- API 密钥,用于每次请求的身份验证
数据由 Cloudflare 基础设施上的 CronAlert 服务器处理。MCP 服务本身不会在本地存储任何数据。有关数据收集、保留和你的权利,请参阅完整的隐私政策。
支持
- 网站:cronalert.com
- 电子邮件:[email protected]
- 问题:GitHub Issues
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。