{"id":301580,"recorded_at":"2026-10-26T22:35:53.497511Z","observed_at":"2026-10-26T22:35:53.497335Z","subject_kind":"endpoint","subject":"f69cd9a7-0f40-4bd8-aa21-e7a9cfe688e3","kind":"mcp.tools","method":"probe.mcp/1","body":{"count":18,"tools":[{"description":"WRITE: acknowledge an alert on behalf of a SIGNL4 user (recorded in its history under that user). Stops escalation to further tiers for that alert. POST /v3/signls/{signlId}/acknowledge.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"alert_id":{"description":"Alert (signl) id; get it from signl4_list_alerts or the id returned by signl4_raise_alert.","maxLength":100,"minLength":1,"type":"string"},"comment":{"description":"Optional comment stored with the acknowledgement.","maxLength":2000,"type":"string"},"user_id":{"description":"The SIGNL4 user the acknowledgement is recorded for; see signl4_list_users.","maxLength":100,"minLength":1,"type":"string"}},"required":["alert_id","user_id"],"type":"object"},"name":"signl4_acknowledge_alert"},{"description":"WRITE: add a text note to an alert's timeline on behalf of a SIGNL4 user. The note is visible to the team in the app. It does not page anyone by itself. POST /v3/signls/{signlId}/annotate.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"alert_id":{"description":"Alert (signl) id; get it from signl4_list_alerts or the id returned by signl4_raise_alert.","maxLength":100,"minLength":1,"type":"string"},"text":{"description":"The note.","maxLength":4000,"minLength":1,"type":"string"},"user_id":{"description":"The SIGNL4 user the note is recorded for; see signl4_list_users.","maxLength":100,"minLength":1,"type":"string"}},"required":["alert_id","user_id","text"],"type":"object"},"name":"signl4_annotate_alert"},{"description":"WRITE: close (resolve) an alert on behalf of a SIGNL4 user; it leaves the open list and stops all further notifications. POST /v3/signls/{signlId}/close.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"alert_id":{"description":"Alert (signl) id; get it from signl4_list_alerts or the id returned by signl4_raise_alert.","maxLength":100,"minLength":1,"type":"string"},"comment":{"description":"Optional comment stored with the closure.","maxLength":2000,"type":"string"},"user_id":{"description":"The SIGNL4 user the closure is recorded for; see signl4_list_users.","maxLength":100,"minLength":1,"type":"string"}},"required":["alert_id","user_id"],"type":"object"},"name":"signl4_close_alert"},{"description":"Full detail of one alert: title, text, severity, category, status and delivery status, history (who acknowledged/closed it and when), parameters, attachments and escalations with per-user delivery. GET /v3/signls/{signlId}/details.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"alert_id":{"description":"Alert (signl) id; get it from signl4_list_alerts or the id returned by signl4_raise_alert.","maxLength":100,"minLength":1,"type":"string"}},"required":["alert_id"],"type":"object"},"name":"signl4_get_alert"},{"description":"Alert volume and response statistics per team over several time periods: acknowledged, closed and unhandled counts, overall and per category (optionally for one user). Teams that cannot be read are reported under `errors`. GET /v3/signls/report.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"team_ids":{"description":"Limit to these team ids (default: all teams the key can access).","items":{"description":"SIGNL4 team id (a GUID); get it from signl4_list_teams.","maxLength":100,"minLength":1,"type":"string"},"maxItems":50,"type":"array"},"user_id":{"description":"Report for this user only.","maxLength":100,"minLength":1,"type":"string"}},"type":"object"},"name":"signl4_get_alert_report"},{"description":"The ordered timeline of an alert: creation, notifications, acknowledgements, annotations, escalations and remote actions. GET /v3/signls/{signlId}/timeline.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"alert_id":{"description":"Alert (signl) id; get it from signl4_list_alerts or the id returned by signl4_raise_alert.","maxLength":100,"minLength":1,"type":"string"}},"required":["alert_id"],"type":"object"},"name":"signl4_get_alert_timeline"},{"description":"Whether a user is currently on or off duty in each of their teams (dutyMode, onDutyTime, tier). GET /v3/users/{userId}/dutyStatus.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"team_ids":{"description":"Limit to these team ids (default: all teams the key can access).","items":{"description":"SIGNL4 team id (a GUID); get it from signl4_list_teams.","maxLength":100,"minLength":1,"type":"string"},"maxItems":50,"type":"array"},"user_id":{"description":"SIGNL4 user id (a GUID); get it from signl4_list_users.","maxLength":100,"minLength":1,"type":"string"}},"required":["user_id"],"type":"object"},"name":"signl4_get_duty_status"},{"description":"Duty assistant info per team: whether it is enabled and the last two (or all) duty periods. GET /v3/duties/summary.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"last_two_only":{"description":"Only the last two duties (default true).","type":"boolean"},"team_ids":{"description":"Limit to these team ids (default: all teams the key can access).","items":{"description":"SIGNL4 team id (a GUID); get it from signl4_list_teams.","maxLength":100,"minLength":1,"type":"string"},"maxItems":50,"type":"array"}},"type":"object"},"name":"signl4_get_duty_summary"},{"description":"One SIGNL4 team: name, description, time zone, member ids. GET /v3/teams/{teamId}.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"team_id":{"description":"SIGNL4 team id (a GUID); get it from signl4_list_teams.","maxLength":100,"minLength":1,"type":"string"}},"required":["team_id"],"type":"object"},"name":"signl4_get_team"},{"description":"One SIGNL4 user: name, e-mail, contact addresses, time zone and duty status per team. GET /v3/users/{userId}.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"user_id":{"description":"SIGNL4 user id (a GUID); get it from signl4_list_users.","maxLength":100,"minLength":1,"type":"string"}},"required":["user_id"],"type":"object"},"name":"signl4_get_user"},{"description":"Search SIGNL4 alerts (signls), newest first, with status, severity, category and history (created, acknowledged, closed). Filter by team, status, creation time, text or external id. Up to 100 per page; pass the returned continuation_token to get the next page. POST /v3/signls/paged (a read).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"category_ids":{"description":"Only alerts of these category ids (see signl4_list_categories).","items":{"description":"A SIGNL4 id (a GUID).","maxLength":100,"minLength":1,"type":"string"},"maxItems":50,"type":"array"},"continuation_token":{"description":"The continuation_token of the previous page.","maxLength":4000,"type":"string"},"created_after":{"description":"ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00Z.","type":"string"},"created_before":{"description":"ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00Z.","type":"string"},"external_id":{"description":"Only alerts raised with this external id.","maxLength":200,"type":"string"},"max_results":{"description":"Alerts per page, 1-100 (default 25).","maximum":100,"minimum":1,"type":"integer"},"status":{"description":"Only alerts in this state (default: all).","enum":["open","acknowledged","closed"],"type":"string"},"team_ids":{"description":"Limit to these team ids (default: all teams the key can access).","items":{"description":"SIGNL4 team id (a GUID); get it from signl4_list_teams.","maxLength":100,"minLength":1,"type":"string"},"maxItems":50,"type":"array"},"text":{"description":"Free-text search in title and text.","maxLength":200,"type":"string"}},"type":"object"},"name":"signl4_list_alerts"},{"description":"Audit log of changes and events in the SIGNL4 subscription (who changed what, when). Filter by team, time window and message text; pass the returned continuation_token for the next page. GET /v3/audits.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"continuation_token":{"description":"The continuation_token of the previous page.","maxLength":4000,"type":"string"},"from":{"description":"ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00Z.","type":"string"},"max_results":{"description":"Entries per page, 1-200 (default 50).","maximum":200,"minimum":1,"type":"integer"},"message_contains":{"description":"Only entries whose message contains this text.","maxLength":200,"type":"string"},"team_ids":{"description":"Limit to these team ids (default: all teams the key can access).","items":{"description":"SIGNL4 team id (a GUID); get it from signl4_list_teams.","maxLength":100,"minLength":1,"type":"string"},"maxItems":50,"type":"array"},"to":{"description":"ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00Z.","type":"string"}},"type":"object"},"name":"signl4_list_audit_logs"},{"description":"List the alert categories of a team (name, color, keywords used to auto-classify alerts). The category name can be passed to signl4_raise_alert. GET /v3/categories/{teamId}.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"team_id":{"description":"SIGNL4 team id (a GUID); get it from signl4_list_teams.","maxLength":100,"minLength":1,"type":"string"}},"required":["team_id"],"type":"object"},"name":"signl4_list_categories"},{"description":"Planned on-call duty schedules (who is on duty when): start/end, team, user, tier, stand-in and shift info. Filter by team, user and time window. POST /v3/schedules (a read).","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"from":{"description":"Start of the window, ISO 8601 with timezone.","type":"string"},"limit":{"description":"Maximum schedules to return, 1-500 (default 100).","maximum":500,"minimum":1,"type":"integer"},"team_ids":{"description":"Limit to these team ids (default: all teams the key can access).","items":{"description":"SIGNL4 team id (a GUID); get it from signl4_list_teams.","maxLength":100,"minLength":1,"type":"string"},"maxItems":50,"type":"array"},"to":{"description":"End of the window, ISO 8601 with timezone.","type":"string"},"user_id":{"description":"Only this user's duties.","maxLength":100,"minLength":1,"type":"string"}},"type":"object"},"name":"signl4_list_duty_schedules"},{"description":"List the users of the given teams (all accessible teams by default) with duty status. Teams that cannot be read are reported under `errors`. GET /v3/teams/users.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"team_ids":{"description":"Limit to these team ids (default: all teams the key can access).","items":{"description":"SIGNL4 team id (a GUID); get it from signl4_list_teams.","maxLength":100,"minLength":1,"type":"string"},"maxItems":50,"type":"array"}},"type":"object"},"name":"signl4_list_team_users"},{"description":"List the SIGNL4 teams the API key can access: id, name, description, time zone and member ids. Team ids are needed to raise alerts and to look up categories and duties. GET /v3/teams.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"team_ids":{"description":"Limit to these team ids (default: all teams the key can access).","items":{"description":"SIGNL4 team id (a GUID); get it from signl4_list_teams.","maxLength":100,"minLength":1,"type":"string"},"maxItems":50,"type":"array"}},"type":"object"},"name":"signl4_list_teams"},{"description":"List the SIGNL4 users the key can access with name, e-mail, contact addresses, activation state and duty status per team (dutyMode, onDutyTime). User ids are needed to acknowledge/close/annotate alerts. GET /v3/users.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{},"type":"object"},"name":"signl4_list_users"},{"description":"WRITE: raise a new alert in a SIGNL4 team. THIS NOTIFIES REAL PEOPLE: every team member currently on duty is paged (push, SMS and/or voice call according to their settings) and the alert escalates if nobody acknowledges it. Only use it when the user clearly asked to alert the team; never for tests unless they said so. Not idempotent: a second call pages the team again. Returns the new alert incl. its id. POST /v3/signls.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"category":{"description":"Category name, see signl4_list_categories (default: automatic).","maxLength":200,"type":"string"},"external_id":{"description":"Your own reference for this alert, for later look-up (and for SIGNL4 to group follow-ups).","maxLength":200,"type":"string"},"severity":{"description":"Severity (default: SIGNL4's default for the team).","enum":["low","major","critical"],"type":"string"},"team_id":{"description":"SIGNL4 team id (a GUID); get it from signl4_list_teams.","maxLength":100,"minLength":1,"type":"string"},"text":{"description":"Alert message body.","maxLength":8000,"minLength":1,"type":"string"},"title":{"description":"Alert title, shown on the pager screen.","maxLength":500,"minLength":1,"type":"string"}},"required":["team_id","title","text"],"type":"object"},"name":"signl4_raise_alert"}]},"body_sha256":"fee3ba491ed2b5e6fc8f8aa22356a4efac21295e1372b3af89ec6b0a2070408c","prev_id":null,"leaf":"0x96e9b6d27415e61f5485fe49f9703c324989f448f5967caa3a8b259d7e59fcaa","leaf_text":"{\"body\":\"fee3ba491ed2b5e6fc8f8aa22356a4efac21295e1372b3af89ec6b0a2070408c\",\"id\":301580,\"kind\":\"mcp.tools\",\"method\":\"probe.mcp/1\",\"observed_us\":1793054153497335,\"prev\":null,\"subject\":\"f69cd9a7-0f40-4bd8-aa21-e7a9cfe688e3\",\"subject_kind\":\"endpoint\"}","day":{"day":"2026-10-26","leaves":296695,"root":"0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8","chained":"0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a","anchor_chain":"eip155:5042002","anchor_tx":"0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae","anchor_block":69251483},"proof":["0x96ea20d93be0b7b7cd44676d674a825d2eafcb412d141cc1e58adeb74f64e7f5","0xa77f84ad2dc0871b787f797e518620a54968cdba3e57b0d4ea6bbfb963d8b1d0","0x1283f35fc52cfa50bd6f447a9c73ee376c0b983efe65fbb022e3b67cb58c2b63","0x2206ff0d7b4c76544cdcc38cf7feca88b21c4700d73c61f28472196a3551ed1f","0x1257e7da283211a262bebeac4cef28e1b8d88e8a9c5e23544b2dafce0bf544be","0x2b32c697c2fef7bb74182805c12581f14e23bd3810adda0f202d2f1ce0a1671c","0x46d7d38abc514edfa28d3618dd5ba8d0f9f48deb07a0c00479dc17138dfc6be9","0xd7cba2ec47b87386d66b988524e821e6a90908ec34c6b475afdfd72dc89848ef","0xcbbe2b65863cea4797e72f4bafd5c9274627bba4b38e1c84ced00ce184e4a54b","0x967f49fc57d75b1bcc96107679bd305f464f936f0049de5f6f3a15dabb50eb78","0xc280b3b9968aa6c4c1d58f1d93bf282873099bba7b119c4ce413c82e165f3330","0xd43b73151a0c2d9a61f2ae73ed148938b0e6b05c81197f7eebbf95dba38a7004","0xb314422bc93e7f1c0b706c67f5fff96c5ddf74934bb2fe8ab6291ae016907e37","0x49062da782c4f73855ddd5fdd51840749f928b5f17d1ce75ac50f2d829104e72","0xf0bd63870f0bb378fa300bd33563050dcb7b3e02b44eb3ee550c1c534ec4b246","0x1ac20d30773e1f4f2f811540e9a99b5cca9177c9e2e029acc0d80cf3f1d11f0f","0xd21942ae3214eff88e08ab04884fd4b11958b51af9a0741b7668e2d07a2c56c9","0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f","0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a"]}