addrbookFor publishers
← The evidence ledger

Evidence row 2551995

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 658ac349-b9d4-47b8-9d2d-103ff369a8ee
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
4a843b3a9f6e883d9ba0631022299b14b58701873350640fd67b22c6b52e8ef0
Leaf
0xc3e9a42dd952d2b1b4e47abb8c701d2de178296bbfabddab000fa4284ed8b9f6

What was observed

{
  "count": 8,
  "tools": [
    {
      "description": "Use this when somebody wants a music visualiser or music visualisation (visualizer, visualization, musicviz, audio-reactive visuals): it writes a GLSL vibescape and returns a live link to it. The link draws and animates the vibescape in a browser, so it works for anybody who opens it, with or without the app. The vibescape is not in the public gallery until `share_vibescape` is called on it. Call `vibescape_reference` first for the uniforms and helpers the language has — a vibescape that ignores the music will look like a still image, and there is a linter that says so.",
      "inputSchema": {
        "properties": {
          "author": {
            "description": "Who to credit it to. Leave it empty and it is credited to Minith Labs.",
            "type": "string"
          },
          "code": {
            "description": "The vibescape: a GLSL function `vec3 render(vec2 p, float t)`. `p` is the position across the screen, centred on 0,0, and `t` is time in seconds. Return the colour as three numbers from 0 to 1. Read the music through the uniforms — uBass, uLevelSmooth, uBeatStrength, uScroll — or the picture will not move with the sound.",
            "type": "string"
          },
          "name": {
            "description": "What to call it. A few words that say what the picture looks like.",
            "type": "string"
          }
        },
        "required": [
          "code",
          "name"
        ],
        "type": "object"
      },
      "name": "create_vibescape"
    },
    {
      "description": "Use this when somebody wants the real thing: the app listens to the system audio directly, with no browser, and updates itself. It gives the download link and the one-line install command for macOS.",
      "inputSchema": {
        "properties": {},
        "type": "object"
      },
      "name": "get_app"
    },
    {
      "description": "Use this to find out how a vibescape's colours are graded. Vibresia puts every vibescape through one of five palettes, so bright colours come out muted unless the shader accounts for it.",
      "inputSchema": {
        "properties": {
          "name": {
            "description": "Which palette — NEON, EMBER, TOXIC, ABYSS or MONO. Leave it out to get all of them.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_palette"
    },
    {
      "description": "Use this to read somebody's vibescape, so it can be adapted or understood. Needs the id — the last part of the link.",
      "inputSchema": {
        "properties": {
          "id": {
            "description": "The share's id — the last part of the link.",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "get_vibescape"
    },
    {
      "description": "Use this after writing a vibescape, before sharing it. It reads the code and says what would make it look wrong — most often that it never reads the music, so the picture is the same in silence as at full volume. Cheap to call and it catches most of what goes wrong.",
      "inputSchema": {
        "properties": {
          "code": {
            "description": "The vibescape's GLSL.",
            "type": "string"
          }
        },
        "required": [
          "code"
        ],
        "type": "object"
      },
      "name": "lint_vibescape"
    },
    {
      "description": "Use this when somebody wants to see music visualisations other people have made, or wants something to look at before writing their own. Returns the public gallery: each vibescape's name, who made it, and a link that plays it.",
      "inputSchema": {
        "properties": {},
        "type": "object"
      },
      "name": "list_vibescapes"
    },
    {
      "description": "Use this when a vibescape should be listed in the public gallery, where anybody can find it at vibresia.com/vibescapes. A vibescape is created unlisted; this is the separate act of putting it in front of people. The name and the author go with it, so make sure they are right before calling this.",
      "inputSchema": {
        "properties": {
          "id": {
            "description": "The share's id — the last part of the link, six characters. It is what `create_vibescape` returns.",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "share_vibescape"
    },
    {
      "description": "Use this before writing a vibescape: it lists every uniform the music drives and every helper the language has, with what each is for. Writing a vibescape without it usually takes two attempts instead of one.",
      "inputSchema": {
        "properties": {},
        "type": "object"
      },
      "name": "vibescape_reference"
    }
  ]
}

What the leaf hashes

{"body":"4a843b3a9f6e883d9ba0631022299b14b58701873350640fd67b22c6b52e8ef0","id":2551995,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793693520168416,"prev":null,"subject":"658ac349-b9d4-47b8-9d2d-103ff369a8ee","subject_kind":"endpoint"}

Proof

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

  1. 0xc3e9ce0655a6e33f507ab2a162e0b77704e829181f75cd73d5a536a9979b62b4
  2. 0x041ab52f94039c2c156dbfbf611ee795d45a0598acb48cd05b4d4986dbd64dca
  3. 0x1fc68475258d9dcc0854fa7999570c8f65447eb1e2635a0c25ac1d3968da69d4
  4. 0x4677ca675493df62eefece9a8c3e2c9c23c2842e171e7c0997f32cdafe8f3390
  5. 0xc8ba21cbcba038d1a7a2207bd6404b131a5d1c5c3e474c279c2eac93960e38ca
  6. 0x1fb85867c3761668a0443000a11d8fc34ecf67e6e4099d43f0c2bd8682c4f482
  7. 0xd0433579d8c23a06a1ed03437338465e898dcec806c7a45c603d851d46023e6c
  8. 0x86708340bf24b540a98045a96950120200bcfa1abc891998314d76804d727d93
  9. 0x50a9d8cba53f7dda38fdecc798075ef065361c302110fb85d547b658b03f5e30
  10. 0x23dd46be408db09af84083bedabace923989fb438fd9cf5c8ab58b28c85399de
  11. 0x4a1d97b87a724313396403d7fe462dd3869bfa0892c9fde57cb0cd5d493fb2f1
  12. 0xb55db932067eb00a0063e550fdfa33a75fb18b44d577a037aaa88df648769072
  13. 0xea5662e345c3629b99f3561f2bce8ac753b4bed58f2a329698d8e798b051984f
  14. 0x1d666a17ae41c2931b0c5276dc8bd8c2adf9827a61eb629d06ca3a33ee6a051a
  15. 0xfeca812d56a4bb476433459149c92fcd8a270bdbf2bbbce1949fb4bf7848f5ed
  16. 0xf8c1a0cdf4ba2eb105bc3e83d2f2b121cab4a34fb5a3846fa592909906f7fdaa
  17. 0x39dab39081985bbfffe23b080399a9d1a9cb9c2c8960102350c4212113cb2cba
  18. 0xac5402954216dc6c7020a6405675c8fc3b0828c2ab02943d80de52677a2f1fc3
  19. 0x85f3a27c16056a361d9ba33355a575ca7123f86de901b204c88953c4b8ea441a
Day root
0xb646ffa569e24bf8336b0a15a9d98d0a2f1239f58e10c2b18a9d22e43343566a
Chained
0x35e926359fd19031c6b5e08fb3b44f2524386a57c8fdd353336c185603f53d43
Published
On Arc Testnet, block 70601990: 0xa5f9dadba13cde129126b950e64b815e6833cb8ff53b75026c9dbe769c3768c7

How to check it · This row as JSON