addrbookFor publishers
← The evidence ledger

Evidence row 300912

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 3ea3925c-dfad-4f23-a541-a3721790c46c
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
d9d1bf3c17430170d4486bcae30f4010383949a9c19998ed07ad5f2df42cb8ca
Leaf
0x2ccc278f2a7ba34ac0bd0281229b63c63c04cfd905ee1b200c4e9925b7ed2d4c

What was observed

{
  "count": 10,
  "tools": [
    {
      "description": "Register a webhook so Oura notifies your callback URL when data changes. Oura verifies the URL before activating it, and the subscription EXPIRES — renew it with oura_renew_webhook_subscription. Oura: POST /v2/webhook/subscription.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "callback_url": {
            "description": "The HTTPS URL Oura should call.",
            "type": "string"
          },
          "data_type": {
            "description": "Which collection to watch, e.g. daily_sleep or workout.",
            "type": "string"
          },
          "event_type": {
            "description": "Which change to be notified about.",
            "enum": [
              "create",
              "update",
              "delete"
            ],
            "type": "string"
          },
          "verification_token": {
            "description": "A secret Oura echoes back so you can verify the callback.",
            "type": "string"
          }
        },
        "required": [
          "callback_url",
          "verification_token",
          "event_type",
          "data_type"
        ],
        "type": "object"
      },
      "name": "oura_create_webhook_subscription"
    },
    {
      "description": "Remove a webhook subscription. Notifications stop immediately. Oura: DELETE /v2/webhook/subscription/{id}.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "subscription_id": {
            "description": "The subscription to delete.",
            "type": "string"
          }
        },
        "required": [
          "subscription_id"
        ],
        "type": "object"
      },
      "name": "oura_delete_webhook_subscription"
    },
    {
      "description": "Fetch a single document by id from one collection. Ids come from oura_list_documents. Oura: GET /v2/usercollection/{collection}/{document_id}.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "collection": {
            "description": "Which collection the document belongs to.",
            "enum": [
              "daily_activity",
              "daily_cardiovascular_age",
              "daily_readiness",
              "daily_resilience",
              "daily_sleep",
              "daily_spo2",
              "daily_stress",
              "enhanced_tag",
              "rest_mode_period",
              "ring_configuration",
              "session",
              "sleep",
              "sleep_time",
              "tag",
              "vO2_max",
              "workout"
            ],
            "type": "string"
          },
          "document_id": {
            "description": "The document's id.",
            "type": "string"
          },
          "sandbox": {
            "description": "Read Oura's synthetic sandbox data instead of the wearer's real data. Use this to learn a response shape without a ring.",
            "type": "boolean"
          }
        },
        "required": [
          "collection",
          "document_id"
        ],
        "type": "object"
      },
      "name": "oura_get_document"
    },
    {
      "description": "Fetch individual heart-rate samples over a DATETIME range. This collection is sampled continuously, so it uses start_datetime/end_datetime rather than dates, and can return a great many points — narrow the window or pass latest. Oura: GET /v2/usercollection/heartrate.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "end_datetime": {
            "description": "ISO-8601 end.",
            "type": "string"
          },
          "latest": {
            "description": "Return only the most recent sample.",
            "type": "boolean"
          },
          "next_token": {
            "description": "Cursor from the previous page's next_token. Omit for the first page.",
            "type": "string"
          },
          "sandbox": {
            "description": "Read Oura's synthetic sandbox data instead of the wearer's real data. Use this to learn a response shape without a ring.",
            "type": "boolean"
          },
          "start_datetime": {
            "description": "ISO-8601 start, e.g. 2026-08-01T00:00:00Z.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "oura_get_heartrate"
    },
    {
      "description": "Fetch the wearer's profile — age, weight, height, biological sex and email. Oura: GET /v2/usercollection/personal_info.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "sandbox": {
            "description": "Read Oura's synthetic sandbox data instead of the wearer's real data. Use this to learn a response shape without a ring.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "name": "oura_get_personal_info"
    },
    {
      "description": "Fetch ring battery readings over a DATETIME range, or just the latest. Oura: GET /v2/usercollection/ring_battery_level.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "end_datetime": {
            "description": "ISO-8601 end.",
            "type": "string"
          },
          "latest": {
            "description": "Return only the most recent reading.",
            "type": "boolean"
          },
          "next_token": {
            "description": "Cursor from the previous page's next_token. Omit for the first page.",
            "type": "string"
          },
          "sandbox": {
            "description": "Read Oura's synthetic sandbox data instead of the wearer's real data. Use this to learn a response shape without a ring.",
            "type": "boolean"
          },
          "start_datetime": {
            "description": "ISO-8601 start.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "oura_get_ring_battery_level"
    },
    {
      "description": "Fetch a single webhook subscription with its callback URL, event type and expiry. Oura: GET /v2/webhook/subscription/{id}.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "subscription_id": {
            "description": "The subscription's id.",
            "type": "string"
          }
        },
        "required": [
          "subscription_id"
        ],
        "type": "object"
      },
      "name": "oura_get_webhook_subscription"
    },
    {
      "description": "List documents from one Oura collection over a date range. This is the main read: pick `collection` for what you want — daily_sleep and sleep for sleep, daily_readiness for recovery, daily_activity for movement, daily_stress and daily_resilience for load, workout and session for exercise, daily_spo2, daily_cardiovascular_age and vO2_max for cardiovascular measures, tag and enhanced_tag for the wearer's own annotations, rest_mode_period and ring_configuration for device state. Oura: GET /v2/usercollection/{collection}.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "collection": {
            "description": "Which document collection to read.",
            "enum": [
              "daily_activity",
              "daily_cardiovascular_age",
              "daily_readiness",
              "daily_resilience",
              "daily_sleep",
              "daily_spo2",
              "daily_stress",
              "enhanced_tag",
              "rest_mode_period",
              "ring_configuration",
              "session",
              "sleep",
              "sleep_time",
              "tag",
              "vO2_max",
              "workout"
            ],
            "type": "string"
          },
          "end_date": {
            "description": "End of the range, YYYY-MM-DD.",
            "type": "string"
          },
          "next_token": {
            "description": "Cursor from the previous page's next_token. Omit for the first page.",
            "type": "string"
          },
          "sandbox": {
            "description": "Read Oura's synthetic sandbox data instead of the wearer's real data. Use this to learn a response shape without a ring.",
            "type": "boolean"
          },
          "start_date": {
            "description": "Start of the range, YYYY-MM-DD. Defaults to a recent window.",
            "type": "string"
          }
        },
        "required": [
          "collection"
        ],
        "type": "object"
      },
      "name": "oura_list_documents"
    },
    {
      "description": "List the webhook subscriptions registered for the application. Oura: GET /v2/webhook/subscription.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "type": "object"
      },
      "name": "oura_list_webhook_subscriptions"
    },
    {
      "description": "Extend a webhook subscription's expiry. Oura subscriptions lapse if not renewed, so this is the tool that keeps a live integration alive. Oura: PUT /v2/webhook/subscription/renew/{id}.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "subscription_id": {
            "description": "The subscription to renew.",
            "type": "string"
          }
        },
        "required": [
          "subscription_id"
        ],
        "type": "object"
      },
      "name": "oura_renew_webhook_subscription"
    }
  ]
}

What the leaf hashes

{"body":"d9d1bf3c17430170d4486bcae30f4010383949a9c19998ed07ad5f2df42cb8ca","id":300912,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793053722309855,"prev":null,"subject":"3ea3925c-dfad-4f23-a541-a3721790c46c","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. 0x2ccbc854d2768640ee3e1cde81aa734676f95ad02ca1fbc75950e1584190dd99
  2. 0x11b45ef2855923ac9d099fe233576df213f8eeb704608e358a2fff835539a7ee
  3. 0x59ee28064ba16d728cf17b52beeba24f16d2e0594dea60a3a7e813a9a4df39b0
  4. 0xffa81388327eb25d34be2132433be48c9dedb73950d342ebcf13844e10dbc573
  5. 0xb92fcc4c013fb2d99b2a1ccffe53c21a1f6989305f6c38b50a10999331456551
  6. 0x6c8e86ce9d0ab72188ae53bcf3e25ab015a70c9d8751e8263958eaca8f5b8fc7
  7. 0xfa66536cf73a2cf406195168e1cbaf30da31556b3bcebdeaca115a88a7e28e8e
  8. 0x77e219a1ec47d7a67038790942570dddabbeb63f85292e369aec6b7eff228a63
  9. 0x39cf12493c25bd9e76484bc5beae16c8e1ce53107efd9ba3a98a8a4e59d2d502
  10. 0x92ae512ac303ebf33e234dd8900de38bc100cacd7e3e6d4585dab96308c421ca
  11. 0x9f7d3cc11f13fc54c5221c4babc2273f69d77c4b805c79df41df74cfb0975d6c
  12. 0xf89d9951e0a8e08b9cf11177a1f4e0fd86d9facc5dfecaabbfe564675ebefef7
  13. 0xb87e8b32cda179c9e632e227bbd8a6d1f6f61d9d81bb92dbd4dd835d2b3b5caa
  14. 0x683955a5b2250ad50568d022a6580d8739b6aff1356779d72a773b088e7c289c
  15. 0x610738e0c43687aded83c613c73de8b5226c73c375858a167436461c522ea213
  16. 0x06d71bfa7d8b41d62c8836efc2c601e1cc3772d9453596b2ae4950887f3310ca
  17. 0x8c756542e482157df0c36464d75c937b845e4423dbbcfad08f0cf8d5a16b9a13
  18. 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON