Create notification monitor
create_notification_monitorWatch the notifications any app on the Mac posts (experimental). app matches the app's name (e.g. 'Microsoft Teams'), from_contains the notification title (where chat apps put the sender) and body_contains the whole notification; give at least one. Reactions (someone reacted to a message) are skipped unless include_reactions is true. Stops after ttl_hours or max_hits matches. Returns a token for check_monitor and cancel_monitor. It only records and notifies; it never sends, changes or deletes anything. routes tags the monitor for check_route; use 'duet:' for a Claude Duet channel so any later session there can read it. Requires Keeploop Pro.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "create_notification_monitor"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| app | No | App name contains this, e.g. Microsoft Teams. | |
| name | No | A short name for the monitor. | |
| routes | No | Up to 8 labels check_route reads this monitor's matches by, e.g. 'duet:fissler'. Lowercase letters, digits, '.', '_', ':' and '-'. A new monitor with routes has no Mac banner or ntfy push. | |
| max_hits | No | Stop after this many matches; 1 for a one-shot watch. | |
| ttl_hours | No | Stop after this many hours (default 24; no upper limit). 0 means no end: use it only when the user asks for a monitor that keeps running. | |
| body_contains | No | Notification text contains this. | |
| from_contains | No | Notification title (where chat apps put the sender) contains this. | |
| include_reactions | No | Notifications monitors: also match reactions (off by default). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| monitor | Yes |