addrbookFor publishers
← The evidence ledger

Evidence row 301580

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint f69cd9a7-0f40-4bd8-aa21-e7a9cfe688e3
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
fee3ba491ed2b5e6fc8f8aa22356a4efac21295e1372b3af89ec6b0a2070408c
Leaf
0x96e9b6d27415e61f5485fe49f9703c324989f448f5967caa3a8b259d7e59fcaa

What was observed

{
  "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"
    }
  ]
}

What the leaf hashes

{"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"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).

  1. 0x96ea20d93be0b7b7cd44676d674a825d2eafcb412d141cc1e58adeb74f64e7f5
  2. 0xa77f84ad2dc0871b787f797e518620a54968cdba3e57b0d4ea6bbfb963d8b1d0
  3. 0x1283f35fc52cfa50bd6f447a9c73ee376c0b983efe65fbb022e3b67cb58c2b63
  4. 0x2206ff0d7b4c76544cdcc38cf7feca88b21c4700d73c61f28472196a3551ed1f
  5. 0x1257e7da283211a262bebeac4cef28e1b8d88e8a9c5e23544b2dafce0bf544be
  6. 0x2b32c697c2fef7bb74182805c12581f14e23bd3810adda0f202d2f1ce0a1671c
  7. 0x46d7d38abc514edfa28d3618dd5ba8d0f9f48deb07a0c00479dc17138dfc6be9
  8. 0xd7cba2ec47b87386d66b988524e821e6a90908ec34c6b475afdfd72dc89848ef
  9. 0xcbbe2b65863cea4797e72f4bafd5c9274627bba4b38e1c84ced00ce184e4a54b
  10. 0x967f49fc57d75b1bcc96107679bd305f464f936f0049de5f6f3a15dabb50eb78
  11. 0xc280b3b9968aa6c4c1d58f1d93bf282873099bba7b119c4ce413c82e165f3330
  12. 0xd43b73151a0c2d9a61f2ae73ed148938b0e6b05c81197f7eebbf95dba38a7004
  13. 0xb314422bc93e7f1c0b706c67f5fff96c5ddf74934bb2fe8ab6291ae016907e37
  14. 0x49062da782c4f73855ddd5fdd51840749f928b5f17d1ce75ac50f2d829104e72
  15. 0xf0bd63870f0bb378fa300bd33563050dcb7b3e02b44eb3ee550c1c534ec4b246
  16. 0x1ac20d30773e1f4f2f811540e9a99b5cca9177c9e2e029acc0d80cf3f1d11f0f
  17. 0xd21942ae3214eff88e08ab04884fd4b11958b51af9a0741b7668e2d07a2c56c9
  18. 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON