Skip to main content
Glama

create_monitor

Creates and starts an uptime monitor in a selected project and returns its record and UUID, including a ping token for heartbeat monitors.

Instructions

Create and start a monitor in the selected project; returns its record and UUID (heartbeat monitors include a ping token). Use list_regions and list_channels to discover optional region/channel ids. Heartbeats wait for pings; other types schedule outgoing checks. Auto-enabled alert channels are added, and failures can open incidents and notify channels. Hosted plans may reject capacity, frequency or region choices; private network targets are refused by default.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "name": "<name>"
    },
    "name": "create_monitor"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameYesDisplay name shown in the dashboard, alerts and status-page components.
tagsNoDashboard filter labels; a supplied list replaces the existing tags, and an empty list clears them.
typeNoCheck protocol; immutable after creation. HTTP checks a URL, heartbeat waits for incoming pings, and other types check a service.http
methodNoHTTP request method; ignored for other monitor types.GET
targetNoHTTP: absolute http(s) URL. TCP: host:port. DNS: hostname. Database/Redis: connection URL for that protocol. Heartbeat: leave empty. Public targets only by default.
headersNoHTTP request headers; replaces the header map. An empty object removes all custom headers. Existing masked values preserve stored secrets.
keywordNoHTTP response-body text to test; null disables keyword matching.
projectNoProject id (from list_workspaces). Omit to use the default project of the workspace.
regionsNoRegion ids from list_regions. auto uses this deployment; explicit regions work for HTTP/TCP only. A supplied list replaces the existing one.
graceSecNoExtra seconds allowed after a heartbeat deadline before it counts as missed; used only for heartbeat monitors.
timeoutMsNoMaximum duration of a check in milliseconds.
workspaceNoWorkspace id (from list_workspaces). Omit to use the default one.
channelIdsNoAlert-channel UUIDs from list_channels. Replaces the selected channels; an empty list clears them. Newly created monitors also inherit auto-enabled channels.
intervalSecNoSeconds between checks, or the expected heartbeat period. Hosted plans may require a longer interval.
keywordModeNoWhether the HTTP response body must contain keyword or must not contain it.contains
expectedStatusNoHTTP response status that counts as healthy; an expected 3xx is checked without following the redirect.
slowAlertAfterNoConsecutive slow checks required for a slow-response alert; zero disables these alerts.
slowThresholdMsNoLatency in milliseconds above which a successful check counts as slow.
expectedLocationNoFor an expected HTTP redirect (3xx), require this Location URL or path; null or empty string accepts any destination.
failureThresholdNoConsecutive failed checks required before opening an incident.
minRegionsFailingNoFailed regions needed to mark a multi-region monitor down; zero uses a majority of regions that answered.
dependsOnMonitorIdNoParent monitor UUID in the same project; suppresses new incidents and alerts while the parent is down. Null removes the dependency.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed20 schema fields changedv0.1.1
    • addedInput schema / properties / channelIds / description
      Added value: +"Alert-channel UUIDs from list_channels. Replaces the selected channels; an empty list clears them. Newly created monitors also inherit auto-enabled channels."
    • addedInput schema / properties / dependsOnMonitorId / description
      Added value: +"Parent monitor UUID in the same project; suppresses new incidents and alerts while the parent is down. Null removes the dependency."
    • addedInput schema / properties / expectedLocation
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maxLength": 2048,
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "For an expected HTTP redirect (3xx), require this Location URL or path; null or empty string accepts any destination."
      +}
    • addedInput schema / properties / expectedStatus / description
      Added value: +"HTTP response status that counts as healthy; an expected 3xx is checked without following the redirect."
    • addedInput schema / properties / failureThreshold / description
      Added value: +"Consecutive failed checks required before opening an incident."
    • addedInput schema / properties / graceSec / description
      Added value: +"Extra seconds allowed after a heartbeat deadline before it counts as missed; used only for heartbeat monitors."
    • addedInput schema / properties / headers / description
      Added value: +"HTTP request headers; replaces the header map. An empty object removes all custom headers. Existing masked values preserve stored secrets."
    • addedInput schema / properties / intervalSec / description
      Added value: +"Seconds between checks, or the expected heartbeat period. Hosted plans may require a longer interval."
    • addedInput schema / properties / keyword / description
      Added value: +"HTTP response-body text to test; null disables keyword matching."
    • addedInput schema / properties / keywordMode / description
      Added value: +"Whether the HTTP response body must contain keyword or must not contain it."
    • addedInput schema / properties / method / description
      Added value: +"HTTP request method; ignored for other monitor types."
    • addedInput schema / properties / minRegionsFailing / description
      Added value: +"Failed regions needed to mark a multi-region monitor down; zero uses a majority of regions that answered."
    • addedInput schema / properties / name / description
      Added value: +"Display name shown in the dashboard, alerts and status-page components."
    • addedInput schema / properties / regions / description
      Added value: +"Region ids from list_regions. auto uses this deployment; explicit regions work for HTTP/TCP only. A supplied list replaces the existing one."
    • addedInput schema / properties / slowAlertAfter / description
      Added value: +"Consecutive slow checks required for a slow-response alert; zero disables these alerts."
    • addedInput schema / properties / slowThresholdMs / description
      Added value: +"Latency in milliseconds above which a successful check counts as slow."
    • addedInput schema / properties / tags / description
      Added value: +"Dashboard filter labels; a supplied list replaces the existing tags, and an empty list clears them."
    • addedInput schema / properties / target / description
      Added value: +"HTTP: absolute http(s) URL. TCP: host:port. DNS: hostname. Database/Redis: connection URL for that protocol. Heartbeat: leave empty. Public targets only by default."
    • addedInput schema / properties / timeoutMs / description
      Added value: +"Maximum duration of a check in milliseconds."
    • addedInput schema / properties / type / description
      Added value: +"Check protocol; immutable after creation. HTTP checks a URL, heartbeat waits for incoming pings, and other types check a service."
  2. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: explains that heartbeats wait for incoming pings while other types schedule outgoing checks, that auto-enabled alert channels are inherited, that failures can open incidents and notify channels, and that hosted plans can reject capacity/frequency/region choices while private network targets are refused by default. These are real side effects and failure modes an agent cannot infer from readOnlyHint=false / destructiveHint=false / idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and return value, then behavior, then constraints — the ordering is sensible and there is no filler. A small amount of content (e.g. "heartbeats wait for pings; other types schedule outgoing checks") overlaps the type field's schema description, so it is dense rather than perfectly non-redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 22-parameter creation tool with no output schema, the description covers the return payload, the inheritance of alert channels, the incident/notification side effects, and the main rejection scenarios. Nothing critical for calling it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, but the description adds cross-tool semantics (region and channel ids come from list_regions/list_channels) and restates two constraints that matter at call time: private network targets are refused by default and hosted plans may force larger intervals or reject regions. That is useful meaning beyond the schema's field-level prose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Create and start a monitor in the selected project") and immediately adds what comes back (record + UUID, plus the ping token for heartbeats). This clearly separates it from list_monitors, get_monitor and update_monitor without needing their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly routes the agent to list_regions and list_channels for the optional region/channel ids, and frames creation as creating-and-starting a new monitor. It stops short of stating when not to use it (e.g. update_monitor for an existing monitor, or checking for duplicates first), so it is clear context but not full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.