addrbookFor publishers
← The evidence ledger

Evidence row 569024

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint a58d2d3d-eae8-4148-8e39-b1cbd91525aa
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
903664e3690f01b37b213aaaefcaa90df95338c348523ce61d9fd449936eff59
Leaf
0x3265a90e500752f325a8036f976b7fca84361ffc247dd83e1a7c18208eb70aaf

What was observed

{
  "count": 5,
  "tools": [
    {
      "description": "Translate a grind setting from one coffee grinder to another. Use whenever a recipe quotes a setting for a grinder the user does not own — \"the recipe says 18 clicks on a Comandante, what is that on my Encore?\". Grinder names can be written however the user said them (\"Fellow Ode\", \"1Zpresso J-Max\"); exact slugs are not required.",
      "inputSchema": {
        "properties": {
          "from": {
            "description": "The grinder the setting is quoted for, e.g. \"Comandante C40 MK4\"",
            "type": "string"
          },
          "setting": {
            "description": "The setting on the source grinder as written on it, e.g. 18. On Fellow dials the digit after the point counts marks (4.2 on an Ode is the second mark after 4); a Baratza Forte is macro number and micro letter, e.g. \"4R\".",
            "type": [
              "number",
              "string"
            ]
          },
          "to": {
            "description": "The grinder to convert to, e.g. \"Baratza Encore\"",
            "type": "string"
          }
        },
        "required": [
          "from",
          "setting",
          "to"
        ],
        "type": "object"
      },
      "name": "convert_grind_setting"
    },
    {
      "description": "The next grind setting to try after the user brewed and tasted: \"I used 18 on my Encore and it was sour\", \"my espresso is bitter at 4.5 on the Ode\". Sour, weak or fast means grind finer; bitter, harsh or slow means coarser. Returns one move on that grinder's own dial. Call again after each cup, and with result \"good\" once it tastes right, which also adds an anonymous report (grinder, method, setting, taste, coffee) to BrewMark's per-coffee data.",
      "inputSchema": {
        "properties": {
          "coffee": {
            "description": "The coffee as the user named it, roaster and name: \"Stumptown Hair Bender\". Only the coffee: never the user's name or other personal details. Leave out if they have not said.",
            "type": "string"
          },
          "grinder": {
            "description": "Grinder name as the user said it, e.g. \"Baratza Encore\"",
            "type": "string"
          },
          "method": {
            "description": "Brew method, e.g. \"espresso\", \"V60\", \"Kalita Wave\". Pass it whenever the user has said it; the card shows that method's recipe.",
            "type": "string"
          },
          "result": {
            "description": "How it tasted: sour (also weak, thin, ran fast), bitter (also harsh, dry, ran slow), or good",
            "enum": [
              "sour",
              "bitter",
              "good"
            ],
            "type": "string"
          },
          "roast": {
            "description": "Optional roast level of that coffee, if known. Recorded with the report; it does not change the suggestion.",
            "enum": [
              "light",
              "medium-light",
              "medium",
              "medium-dark",
              "dark"
            ],
            "type": "string"
          },
          "setting": {
            "description": "The setting they brewed at as written on the grinder, e.g. 18. On Fellow dials 4.2 is the second mark after 4; a Baratza Forte is macro number and micro letter, e.g. \"4R\".",
            "type": [
              "number",
              "string"
            ]
          }
        },
        "required": [
          "grinder",
          "setting",
          "result"
        ],
        "type": "object"
      },
      "name": "dial_in"
    },
    {
      "description": "Shortlist coffee grinders for someone deciding which one to buy: \"which grinder should I get for pour over under $200?\", \"a quiet grinder for espresso\", \"best hand grinder for travel\". Ranks BrewMark's grinder finder by how they brew, budget, hand or electric, and must-haves, and returns each pick with an approximate US price, why it fits, and a link to its BrewMark buying guide. BrewMark does not sell grinders: do not use this to place an order, and for a grinder the user already owns use get_grinder_chart instead.",
      "inputSchema": {
        "properties": {
          "budget": {
            "description": "Most they want to spend, in US dollars. Leave out for any price.",
            "type": "number"
          },
          "methods": {
            "description": "Brew methods they will use. Leave out if they did not say.",
            "items": {
              "enum": [
                "pourover",
                "aeropress",
                "drip",
                "french",
                "cold",
                "moka",
                "espresso"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "must_have": {
            "description": "Only if the user asked for it.",
            "items": {
              "enum": [
                "quiet",
                "travel",
                "single-dose"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "power": {
            "description": "Hand grinder, electric, or either (default).",
            "enum": [
              "either",
              "hand",
              "electric"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "find_grinder"
    },
    {
      "description": "Grind settings for one grinder across every brew method. Use this for any question of the form \"what grind should I use for my <grinder>\", \"what setting for French press on a <grinder>\", or \"how do I dial in my <grinder>\". Returns the recommended setting and usable range for espresso, moka pot, AeroPress, pour over, siphon, steep-and-release (Clever Dripper, Hario Switch), drip, cupping, Chemex, French press and cold brew. When the user names a brew method, pass it as `method`: the answer then leads with that method, plus a starting recipe (ratio, dose, water temperature, time). The grinder can be named however the user said it.",
      "inputSchema": {
        "properties": {
          "grinder": {
            "description": "Grinder name as the user said it, e.g. \"Fellow Ode\", \"Baratza Encore\", or a slug",
            "type": "string"
          },
          "method": {
            "description": "Optional brew method the user asked about, as they said it: \"V60\", \"pour over\", \"French press\", \"espresso\", \"AeroPress\", \"cold brew\", \"Chemex\", \"drip\", \"moka pot\", \"siphon\", \"Clever Dripper\", \"cupping\"",
            "type": "string"
          },
          "roast": {
            "description": "Optional roast level of the coffee the user is brewing. If they name a coffee rather than a roast (\"Stumptown Hair Bender\", \"Lavazza Super Crema\"), use what you know of it; leave out when unsure. Lighter roasts move the starting setting finer, darker ones coarser.",
            "enum": [
              "light",
              "medium-light",
              "medium",
              "medium-dark",
              "dark"
            ],
            "type": "string"
          }
        },
        "required": [
          "grinder"
        ],
        "type": "object"
      },
      "name": "get_grinder_chart"
    },
    {
      "description": "Every grinder BrewMark supports. Use this to check whether a grinder is covered, or to disambiguate when another tool reports more than one match. Not needed just to look up a name — the other tools accept ordinary names directly.",
      "inputSchema": {
        "properties": {
          "search": {
            "description": "Optional case-insensitive filter on brand or model name",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_grinders"
    }
  ]
}

What the leaf hashes

{"body":"903664e3690f01b37b213aaaefcaa90df95338c348523ce61d9fd449936eff59","id":569024,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793139191723758,"prev":null,"subject":"a58d2d3d-eae8-4148-8e39-b1cbd91525aa","subject_kind":"endpoint"}

Proof

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

  1. 0x32659d9626a374e93d5fb8f55bf45125e147fc95997972cf55720d3612434fa4
  2. 0x795be59cd3c3c8edd577722c97a641a1ad67547723efe549f8ab824dcea1da98
  3. 0x89954119d7be2dfedefe069bfc1e84e895e0d981c4476e38b664d67d2a39de2c
  4. 0x99ca088df979463c98af00ebf9e8b82237a07434f86cca70902ebd4f48e18131
  5. 0xb0c93e5f9761fcb215b6c460df230d3d9c81f313c4ded4b405dc09cbfccd5228
  6. 0x7315fb28b57d70766eeb842c0913fc7ff23d33eec7b215d913b4a517b3425f7d
  7. 0x3f96ee3a1de7dc3a719c736c43c359ff5abf1fd8cc332beea94fc03fee086c0b
  8. 0x40e0492787fad0ac17236f0d84842b18852adcab21c87e29fb17a9fd4663298a
  9. 0x364843fc7e66dd28e81de27992ce0fd8dc175908e7a1265a331dd8d376ea1830
  10. 0x4296e608a717b8569363e1be07fb4902d67e63a1f6d8ea880d9d3bb12d73443a
  11. 0xd6abb3506644ba991806affe480eff2c10a097a3451e0656bd8c5eb07a497205
  12. 0x7c26e7a3f70416cc7cabc8e770eba81b50b410fc94aaae40ac450b47b34edecc
  13. 0x5a83a2d5b2abb340c16172caf3ef83b831e168d2e94e4154a4ad72adcac5cad2
  14. 0x595de2dea3b8fa56dbd6142dd78ae79f3e7169c631e41a844b100613abb3e430
  15. 0x8360ee1105e4d9f9312067cbbfd47c69c5948665ae582b9684a580c8f4e199e1
  16. 0x52efa60e0c3d8525486d2310eb3b6b566c9677c64fd1f819edb072cf101bcbdb
  17. 0x22c1fb9487ee0b9732fa017a0cc321eb27a60c08450d112f755089796e12cb1c
  18. 0xa20d48798a34aba12eb9c7297722982d910f06c148f5e27ac59307422964a585
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON