Checkly MCP by usefulapi
Query Checkly synthetic monitoring — checks, statuses, results, alerts, reporting and dashboards.
Should I use this
Quality & Safety
Findings (2)
- LOWin checkly_list_maintenance_windows
- LOWin checkly_create_maintenance_window
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": {
"checkly": {
"url": "https://checkly.usefulapi.io/mcp"
}
}
}Remote endpoints
https://checkly.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (22)
🟢checkly_get_account
Fetch details of the Checkly account tied to your credentials. Public API: GET /v1/accounts/me.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢checkly_list_checks(limit, page, checkType, tag, search)
List all synthetic monitoring checks (API, browser, URL, heartbeat, etc.) in the account. Public API: GET /v1/checks.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Page size.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page": {
"description": "1-based page number.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"checkType": {
"description": "Filter by check type, e.g. API, BROWSER, URL, HEARTBEAT.",
"type": "string"
},
"tag": {
"description": "Filter by a tag.",
"type": "string"
},
"search": {
"description": "Free-text search across check names.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢checkly_get_check(id, includeDependencies)
Retrieve a single check's full configuration by id. Public API: GET /v1/checks/{id}.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The check id."
},
"includeDependencies": {
"description": "Include dependent resources (snippets, alert channels).",
"type": "boolean"
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢checkly_list_check_groups(limit, page, tag, name)
List all check groups (shared config for a set of checks). Public API: GET /v1/check-groups.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Page size.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page": {
"description": "1-based page number.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"tag": {
"description": "Filter by a tag.",
"type": "string"
},
"name": {
"description": "Filter by group name.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢checkly_get_check_group(id)
Retrieve a single check group by id. Public API: GET /v1/check-groups/{id}.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "The check group id."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢checkly_list_check_statuses
List the current pass/fail/degraded status of every check — the 'what's down right now' view. Public API: GET /v1/check-statuses.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢checkly_get_check_status(checkId)
Retrieve the current status details for a single check. Public API: GET /v1/check-statuses/{checkId}.
Input Schema
{
"type": "object",
"properties": {
"checkId": {
"type": "string",
"description": "The check id."
}
},
"required": [
"checkId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢checkly_list_check_results(checkId, limit, page, from, to, ...)
List individual run results for a check (latency, success, location, response). Public API: GET /v1/check-results/{checkId}.
Input Schema
{
"type": "object",
"properties": {
"checkId": {
"type": "string",
"description": "The check id."
},
"limit": {
"description": "Page size.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page": {
"description": "1-based page number.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"from": {
"description": "Start of range as a Unix timestamp (seconds).",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"to": {
"description": "End of range as a Unix timestamp (seconds).",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"hasFailures": {
"description": "Only return results that contain failures.",
"type": "boolean"
},
"location": {
"description": "Filter by run location, e.g. eu-west-1.",
"type": "string"
},
"resultType": {
"description": "FINAL, ATTEMPT, or ALL.",
"type": "string",
"enum": [
"FINAL",
"ATTEMPT",
"ALL"
]
}
},
"required": [
"checkId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢checkly_get_check_result(checkId, checkResultId)
Retrieve a single check-run result in full. Public API: GET /v1/check-results/{checkId}/{checkResultId}.
Input Schema
{
"type": "object",
"properties": {
"checkId": {
"type": "string",
"description": "The check id."
},
"checkResultId": {
"type": "string",
"description": "The check result id."
}
},
"required": [
"checkId",
"checkResultId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢checkly_list_check_alerts(limit, page, from, to)
List recent alert notifications fired across the whole account. Public API: GET /v1/check-alerts.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Page size.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page": {
"description": "1-based page number.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"from": {
"description": "Start of range as a Unix timestamp (seconds).",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"to": {
"description": "End of range as a Unix timestamp (seconds).",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢checkly_get_check_alerts(checkId, limit, page, from, to)
List alert notifications for one specific check. Public API: GET /v1/check-alerts/{checkId}.
Input Schema
{
"type": "object",
"properties": {
"checkId": {
"type": "string",
"description": "The check id."
},
"limit": {
"description": "Page size.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page": {
"description": "1-based page number.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"from": {
"description": "Start of range as a Unix timestamp (seconds).",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"to": {
"description": "End of range as a Unix timestamp (seconds).",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"checkId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢checkly_get_reporting(from, to, quickRange, filterByTags, granularity, ...)
Aggregated availability / performance / SLA report across checks and groups. Public API: GET /v1/reporting.
Input Schema
{
"type": "object",
"properties": {
"from": {
"description": "Start of range as a Unix timestamp (seconds).",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"to": {
"description": "End of range as a Unix timestamp (seconds).",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"quickRange": {
"description": "Preset range, e.g. last24Hrs, last7Days, last30Days, thisWeek, thisMonth, lastWeek, lastMonth.",
"type": "string"
},
"filterByTags": {
"description": "Filter by a tag.",
"type": "string"
},
"granularity": {
"description": "Bucket size for time series.",
"type": "string",
"enum": [
"day",
"week",
"month"
]
},
"timezone": {
"description": "IANA timezone, e.g. Europe/Berlin.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢checkly_list_dashboards(limit, page)
List all public/private status dashboards. Public API: GET /v1/dashboards.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Page size.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page": {
"description": "1-based page number.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢checkly_list_alert_channels(limit, page)
List all alert channels (email, Slack, webhook, PagerDuty, etc.) configured in the account. Public API: GET /v1/alert-channels.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Page size.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page": {
"description": "1-based page number.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢checkly_list_maintenance_windows(limit, page)
List all maintenance windows (periods where alerts are silenced). Public API: GET /v1/maintenance-windows.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Page size.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page": {
"description": "1-based page number.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢checkly_list_locations
List all public checking locations Checkly can run checks from. Public API: GET /v1/locations.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢checkly_list_private_locations
List all private (self-hosted) checking locations. Public API: GET /v1/private-locations.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢checkly_list_snippets(limit, page)
List all reusable code snippets. Public API: GET /v1/snippets.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Page size.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page": {
"description": "1-based page number.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢checkly_list_variables(limit, page)
List all account-level environment variables. Note: secret variable values are redacted by the API. Public API: GET /v1/variables.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Page size.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page": {
"description": "1-based page number.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢checkly_list_runtimes
List all supported runtimes (Node versions + bundled dependencies) for browser/API checks. Public API: GET /v1/runtimes.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴checkly_create_variable(key, value, locked, secret)
MODIFIES THE CHECKLY ACCOUNT: creates a new account-level environment variable. Additive (does not overwrite existing keys). Public API: POST /v1/variables.
Input Schema
{
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "The variable key (cannot be changed later)."
},
"value": {
"type": "string",
"description": "The variable value."
},
"locked": {
"description": "Hide the value like a password in the UI.",
"type": "boolean"
},
"secret": {
"description": "Mark as secret — value becomes write-only after creation.",
"type": "boolean"
}
},
"required": [
"key",
"value"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴checkly_create_maintenance_window(name, startsAt, endsAt, tags, description, ...)
MODIFIES THE CHECKLY ACCOUNT: schedules a maintenance window that silences alerts for a time range (e.g. during a deploy). Omit repeatUnit for a one-off window. Public API: POST /v1/maintenance-windows.
Input Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Maintenance window name."
},
"startsAt": {
"type": "string",
"description": "Start time, ISO-8601 (e.g. 2026-07-15T22:00:00.000Z)."
},
"endsAt": {
"type": "string",
"description": "End time, ISO-8601."
},
"tags": {
"description": "Tags of checks/groups to include in the window.",
"type": "array",
"items": {
"type": "string"
}
},
"description": {
"description": "Optional description.",
"type": "string"
},
"repeatUnit": {
"description": "For a recurring window: DAY, WEEK, or MONTH. Omit for one-off.",
"type": "string",
"enum": [
"DAY",
"WEEK",
"MONTH"
]
},
"silenceAllAlerts": {
"description": "Silence alerts for ALL checks (overrides tag scoping).",
"type": "boolean"
}
},
"required": [
"name",
"startsAt",
"endsAt"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence