Checkly MCP by usefulapi

Query Checkly synthetic monitoring — checks, statuses, results, alerts, reporting and dashboards.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
80%
Naming quality
98%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • LOWTool 'checkly_list_maintenance_windows' name length outside 3-30 rangein checkly_list_maintenance_windows
  • LOWTool 'checkly_create_maintenance_window' name length outside 3-30 rangein checkly_create_maintenance_window

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~3,303Tokens (tool definitions)
~1.1 KBTypical response size
Significant attention impact (2.58% of 128k context)

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-http

What it can do

Tool inventory

Tools (22)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded22 tools
verifiedversion not recorded22 tools
verifiedversion not recorded22 tools
failed observationversion not recorded—
failed observationversion not recorded—