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
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Display name shown in the dashboard, alerts and status-page components. | |
| tags | No | Dashboard filter labels; a supplied list replaces the existing tags, and an empty list clears them. | |
| type | No | Check protocol; immutable after creation. HTTP checks a URL, heartbeat waits for incoming pings, and other types check a service. | http |
| method | No | HTTP request method; ignored for other monitor types. | GET |
| target | No | 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. | |
| headers | No | HTTP request headers; replaces the header map. An empty object removes all custom headers. Existing masked values preserve stored secrets. | |
| keyword | No | HTTP response-body text to test; null disables keyword matching. | |
| project | No | Project id (from list_workspaces). Omit to use the default project of the workspace. | |
| regions | No | Region ids from list_regions. auto uses this deployment; explicit regions work for HTTP/TCP only. A supplied list replaces the existing one. | |
| graceSec | No | Extra seconds allowed after a heartbeat deadline before it counts as missed; used only for heartbeat monitors. | |
| timeoutMs | No | Maximum duration of a check in milliseconds. | |
| workspace | No | Workspace id (from list_workspaces). Omit to use the default one. | |
| channelIds | No | Alert-channel UUIDs from list_channels. Replaces the selected channels; an empty list clears them. Newly created monitors also inherit auto-enabled channels. | |
| intervalSec | No | Seconds between checks, or the expected heartbeat period. Hosted plans may require a longer interval. | |
| keywordMode | No | Whether the HTTP response body must contain keyword or must not contain it. | contains |
| expectedStatus | No | HTTP response status that counts as healthy; an expected 3xx is checked without following the redirect. | |
| slowAlertAfter | No | Consecutive slow checks required for a slow-response alert; zero disables these alerts. | |
| slowThresholdMs | No | Latency in milliseconds above which a successful check counts as slow. | |
| expectedLocation | No | For an expected HTTP redirect (3xx), require this Location URL or path; null or empty string accepts any destination. | |
| failureThreshold | No | Consecutive failed checks required before opening an incident. | |
| minRegionsFailing | No | Failed regions needed to mark a multi-region monitor down; zero uses a majority of regions that answered. | |
| dependsOnMonitorId | No | Parent monitor UUID in the same project; suppresses new incidents and alerts while the parent is down. Null removes the dependency. |