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 | いいえ | 1 ページあたりの結果数(最大 100 件) |
| status | enum | いいえ | モニターのステータスで絞り込みますup | down | unknown |
詳細
cronalert-mcp
CronAlert の稼働状況監視用 MCP サーバーです。Claude、Cursor、Windsurf、または MCP 対応の AI クライアントから、モニターの管理、チェック結果の確認、インシデントの管理ができます。
クイックスタート
1. API キーを取得する
cronalert.com に登録し、Settings > API Keys で API キーを作成します。
キーの作成時に、スコープを選択します。
- 読み取り専用 — エージェントはモニター、チェック結果、インシデントの一覧表示と読み取りができますが、作成、更新、削除はできません。ほとんどのエージェント設定で推奨されます。
- 読み取りと書き込み — 破壊的なツールを含め、すべての操作が可能です。必要に応じて 「require confirmation」 を有効にすると、削除にはサーバーが発行する確認トークンが必要になります(セキュリティと権限を参照)。
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. オプション:エージェントスキルを追加する
サーバーはエージェントにツールを提供し、cronalert-uptime-monitoring スキルは、それらの使いどころと使い方(モニタータイプの選択、ハートビートの猶予期間、障害のトリアージ、削除前の確認)をエージェントに伝えます。フォルダーを .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 では、クライアントの確認だけに依存しないよう、サーバー側に次の 2 つの境界を設けています。
- 読み取り専用 API キー。 読み取り専用キーは、すべての書き込みエンドポイント(作成/更新/削除/インポート)で 403 エラーとして拒否されます。これはクライアントにかかわらず、サーバーによって強制されます。エージェントには読み取り専用キーを渡すことで、破壊的なツールを実行できないようにできます。これは最も強固な境界であり、推奨されるデフォルトです。
- 削除用の確認トークン。 読み取りと書き込みが可能なキーで 「require confirmation」 が有効な場合、
delete_monitorは削除の代わりに、プレビューと有効期間の短いリソースに紐付いたconfirmTokenを返します。エージェントは、confirm引数にそのトークンを指定して、再度delete_monitorを呼び出す必要があります。これにより、誤った呼び出しやプロンプトインジェクションによる単独の呼び出しでデータが破壊されるのを防ぎ、サーバー上に監査可能で明示的な 2 段階目の操作を残せます。
API キーは 1 つのチームに限定されているため、キーが漏えいした場合の影響範囲はそのチームのリソースに限られます。
例
例 1:モニターを作成してステータスを確認する
ユーザープロンプト:「https://api.example.com/health のモニターを作成して、1 分ごとにチェックするように設定し、詳細を表示してください。」
処理の流れ:
- 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を呼び出します 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:モニターを一覧表示し、メンテナンスのために一時停止する
ユーザープロンプト:「すべてのモニターを一覧表示してから、ステージング環境のモニターを一時停止してください。」
処理の流れ:
- AI が
list_monitorsを呼び出して、すべてのモニターを取得します - 名前からステージング環境のモニターを特定します
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 は省略可能です。デフォルトでは、インターバルを 1 時間を上限として設定します。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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。