Cronitor MCP by usefulapi
Manage Cronitor monitors and send telemetry pings — list, inspect, create, update, delete.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"cronitor": {
"url": "https://cronitor.usefulapi.io/mcp"
}
}
}Remote endpoints
https://cronitor.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (6)
🟢cronitor_list_monitors(page, pageSize)
List monitors and their current passing/failing status. Cronitor API: GET /monitors (paginated via page + pageSize).
Input Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number (1-based). Default 1.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"pageSize": {
"description": "Monitors per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢cronitor_get_monitor(key)
Get full detail for one monitor (latest_event, latest_invocations, passing status) — the 'is X healthy right now?' tool. Cronitor API: GET /monitors/{key}.
Input Schema
{
"type": "object",
"properties": {
"key": {
"type": "string",
"minLength": 1,
"description": "Monitor key/id (unique identifier)."
}
},
"required": [
"key"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴cronitor_create_monitor(key, type, name, schedule, notify, ...)
Creates a monitor in Cronitor (additive). Cronitor API: POST /monitors. Sends only the fields you provide.
Input Schema
{
"type": "object",
"properties": {
"key": {
"type": "string",
"minLength": 1,
"description": "Unique monitor id/key."
},
"type": {
"type": "string",
"enum": [
"job",
"check",
"heartbeat",
"site"
],
"description": "Monitor type: job | check | heartbeat | site."
},
"name": {
"description": "Human-readable monitor name.",
"type": "string"
},
"schedule": {
"description": "Cron expression (job) or interval string, e.g. '0 9 * * *' or 'every 5 minutes'.",
"type": "string"
},
"notify": {
"description": "Notification list names to alert.",
"type": "array",
"items": {
"type": "string"
}
},
"assertions": {
"description": "Assertions, e.g. \"response.code = 200\".",
"type": "array",
"items": {
"type": "string"
}
},
"request": {
"description": "For type=check: {url, method?, headers?, body?, ...}.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"tags": {
"description": "Tags to group/filter monitors.",
"type": "array",
"items": {
"type": "string"
}
},
"note": {
"description": "Free-form note stored on the monitor.",
"type": "string"
}
},
"required": [
"key",
"type"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴cronitor_update_monitor(key, type, name, schedule, notify, ...)
Creates or updates a monitor by key (e.g. change schedule, pause via paused:true). Cronitor API: PUT /monitors with a single monitor object. Sends only the fields you provide.
Input Schema
{
"type": "object",
"properties": {
"key": {
"type": "string",
"minLength": 1,
"description": "Monitor key/id to create or update."
},
"type": {
"description": "Monitor type: job | check | heartbeat | site.",
"type": "string",
"enum": [
"job",
"check",
"heartbeat",
"site"
]
},
"name": {
"description": "Human-readable monitor name.",
"type": "string"
},
"schedule": {
"description": "Cron expression (job) or interval string, e.g. '0 9 * * *' or 'every 5 minutes'.",
"type": "string"
},
"notify": {
"description": "Notification list names to alert.",
"type": "array",
"items": {
"type": "string"
}
},
"assertions": {
"description": "Assertions, e.g. \"response.code = 200\".",
"type": "array",
"items": {
"type": "string"
}
},
"request": {
"description": "For type=check: {url, method?, headers?, body?, ...}.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"tags": {
"description": "Tags to group/filter monitors.",
"type": "array",
"items": {
"type": "string"
}
},
"note": {
"description": "Free-form note stored on the monitor.",
"type": "string"
},
"paused": {
"description": "Set true to pause the monitor, false to resume.",
"type": "boolean"
}
},
"required": [
"key"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴cronitor_delete_monitor(key)
PERMANENTLY deletes a monitor from Cronitor. Destructive and irreversible. Cronitor API: DELETE /monitors/{key}.
Input Schema
{
"type": "object",
"properties": {
"key": {
"type": "string",
"minLength": 1,
"description": "Monitor key/id to delete."
}
},
"required": [
"key"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴cronitor_ping_monitor(key, state, message, metric, host, ...)
Reports a telemetry event (run/complete/fail/ok/pause) for a monitor — records job/heartbeat activity and can clear or trigger alerts. Cronitor telemetry: GET {telemetryUrl}/p/{apiKey}/{monitorKey}?state=...
Input Schema
{
"type": "object",
"properties": {
"key": {
"type": "string",
"minLength": 1,
"description": "Monitor key/id to ping."
},
"state": {
"type": "string",
"enum": [
"run",
"complete",
"fail",
"ok",
"pause"
],
"description": "Telemetry state: run | complete | fail | ok | pause."
},
"message": {
"description": "Optional message attached to the event.",
"type": "string"
},
"metric": {
"description": "Optional metric, e.g. \"count:1\" or \"duration:30\".",
"type": "string"
},
"host": {
"description": "Optional host identifier.",
"type": "string"
},
"series": {
"description": "Optional series id to correlate run/complete pings.",
"type": "string"
}
},
"required": [
"key",
"state"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence