addrbookFor publishers
← The evidence ledger

Evidence row 3677203

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint ed3c112d-c3ec-45f7-ae63-764c1e21dfef
Recorded
Previous row
#3350890
Body SHA-256
e2be1fe562a762405d03656001b056a0bdd7824355f2244c41d65643cc87dec1
Leaf
0x20d9b896f968b7a42d437293d1eb02a7f92adacec6df36136c65f11f69f73951

What was observed

{
  "count": 4,
  "tools": [
    {
      "description": "Reads the AI Visibility Index by AIGROW: for a kind of business and a city or country, which businesses ChatGPT, Claude, Gemini and Grok name when buyers ask for a recommendation, with each one's share of the answers, the edition and the link to the Index page. Covers 80 categories (local trades such as dentists and plumbers by city, software such as CRM by country) across 128 cities and 20 countries. Category and place may be written in any of the eleven supported languages.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "category": {
            "description": "The kind of business, for example \"dentist\", \"Zahnarzt\" or \"crm\".",
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          },
          "language": {
            "description": "The language to answer in, as an ISO 639-1 code: en, de, fr, es, pt, it, nl, pl, sv, da or no. Any other code answers in English.",
            "maxLength": 16,
            "type": "string"
          },
          "place": {
            "description": "A city or a country, for example \"Berlin\", \"Milano\" or \"Germany\".",
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "category",
          "place"
        ],
        "type": "object"
      },
      "name": "ai_index_lookup"
    },
    {
      "description": "Scans how AI assistants see one business: reads its website, writes the buyer questions a customer would ask an assistant, puts them to the models behind ChatGPT, Claude, Gemini and Grok, and reports how often the business was named, a score out of 100, who was named instead and what holds it back. A scan takes about three minutes. This call waits up to forty seconds and returns the result when it is ready, or else how far the scan has got; get_visibility_scan reads it after that. Calling again with the same website, city and category joins the same scan instead of starting another. Scans are limited per user and per day, and a city or category makes it a new scan, even of a website scanned before.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "category": {
            "description": "What the business is, for example \"dentist\" or \"CRM software\".",
            "maxLength": 200,
            "type": "string"
          },
          "city": {
            "description": "The city or area the business serves, if the website may not say.",
            "maxLength": 200,
            "type": "string"
          },
          "language": {
            "description": "The language to answer in, as an ISO 639-1 code: en, de, fr, es, pt, it, nl, pl, sv, da or no. Any other code answers in English.",
            "maxLength": 16,
            "type": "string"
          },
          "name": {
            "description": "The business name, if known.",
            "maxLength": 200,
            "type": "string"
          },
          "website": {
            "description": "The business's website address, for example bakery-example.com.",
            "maxLength": 300,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "website"
        ],
        "type": "object"
      },
      "name": "check_ai_visibility"
    },
    {
      "description": "Reads the AIGROW Score of one business on an AI Visibility Index page: of the answers the assistants gave to buyer questions for its category and place (ChatGPT, Claude and Gemini on every page, Grok on some), how many named it, out of 100, with the 95% interval the page publishes, the earlier edition, each assistant's own score and the names each one gave most. It reads published counts only: no website is read and no assistant is asked. A business the page does not list reads 0, and a name that fits several listed businesses returns them instead. Category and place are matched as ai_index_lookup matches them.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "category": {
            "description": "The kind of business, for example \"dentist\", \"Zahnarzt\" or \"crm\".",
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          },
          "language": {
            "description": "The language to answer in, as an ISO 639-1 code: en, de, fr, es, pt, it, nl, pl, sv, da or no. Any other code answers in English.",
            "maxLength": 16,
            "type": "string"
          },
          "name": {
            "description": "The business name, as the Index page writes it or a shorter or longer form of it, such as the legal name.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "place": {
            "description": "A city or a country, for example \"Berlin\", \"Milano\" or \"Germany\".",
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "name",
          "category",
          "place"
        ],
        "type": "object"
      },
      "name": "get_score"
    },
    {
      "description": "Reads a scan check_ai_visibility started in the last hour, found by the same website, city and category: the result when it is done, or how many answers are in so far. Waits up to forty seconds for a running scan. Starts nothing.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "category": {
            "description": "What the business is, for example \"dentist\" or \"CRM software\".",
            "maxLength": 200,
            "type": "string"
          },
          "city": {
            "description": "The city or area the business serves, if the website may not say.",
            "maxLength": 200,
            "type": "string"
          },
          "language": {
            "description": "The language to answer in, as an ISO 639-1 code: en, de, fr, es, pt, it, nl, pl, sv, da or no. Any other code answers in English.",
            "maxLength": 16,
            "type": "string"
          },
          "name": {
            "description": "The business name, if known.",
            "maxLength": 200,
            "type": "string"
          },
          "website": {
            "description": "The business's website address, for example bakery-example.com.",
            "maxLength": 300,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "website"
        ],
        "type": "object"
      },
      "name": "get_visibility_scan"
    }
  ]
}

What the leaf hashes

{"body":"e2be1fe562a762405d03656001b056a0bdd7824355f2244c41d65643cc87dec1","id":3677203,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793936696445167,"prev":3350890,"subject":"ed3c112d-c3ec-45f7-ae63-764c1e21dfef","subject_kind":"endpoint"}

Proof

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

  1. 0x20d993ffec620727b7c8cd6706911fff3e4530ce910512cecc994750af924cb3
  2. 0xa05c6b668d5f48f52c91bbbcd0cc264eb37d7c352c3280e629074313033f969b
  3. 0xb7c1ccd4caf22ebf0df2678890889cd607d706f5d6f7502ff9c85568a9bc5921
  4. 0x31269c28e9a5eb40da4d6603f19ca8d25b0b1ff94e768e2ed2128d8da0c47c43
  5. 0x91ca391871d97a38722d9d0566f5c3529768ea636e4e248390d91bd1f9d31f94
  6. 0xb1963dfff400a479ad36cce792eed1d7615f4e0457da6ecdce0d8b63a0d2b9bc
  7. 0x233eb86edecd1a8c1b582a2060f8c80313e4ce93b77a423b0b98fa73657b89e4
  8. 0x16dcaf97253941a10186da2e9ffc418a18d3e27d99eaae51abd79e43c524d1ba
  9. 0xc36963dbf240809f531bdd91aa36531605ac63becdf3b6ccc355c8d0363cd5e5
  10. 0x7de4d288901927d34f36f073da7c972b2f2a2116f54eb913913b7c64e792d9c8
  11. 0x60ebcc49fe92c048e2e09f4cebbe9e9aad3e410598726b65d20b8083bdf927a9
  12. 0x2712d96bbc03cfe1d2563129cc6e8172c8f1f652986a5baa01c71ea12986915c
  13. 0xb4c69343b22f2d7ab818464af79dc568e8aa4fc1673ee1f934d83014bdf8d32a
  14. 0x81d6ec63cb4df174d42a42d72162141e82dcafa9c256793b20cc12205d8d389c
  15. 0xb490b9bc961e5cbbfaf890e393a2eb3d2518e080e0a107acd232486f34cf7408
  16. 0x0aaf291a2ffa2205e7df7531bf36800e377dfbd67208da05b97625f1cc49ce02
  17. 0xa448dc698494f795f2240c0e7070e8a93eb263baee21ca4185a7d03432a614d8
  18. 0x119743aadcddb571b28b442b62196d4a0afc4e1c9979c2d477d34fcc9413deaf
  19. 0xc0d08d48601d1be90bcfc025e66bcaa0030120d688dd9c919b36c2c4446f4948
Day root
0xb30ccefe7182c6f767e1fcbfb5f64ffd649da831f665f65c5ff39cd40512284f
Chained
0xc383f7ef68d2914082484765aa09e42c12c59a74a096ae64127c562618c506d3
Published
On Arc Testnet, block 71111178: 0xfba13cb7ee4ada7f2fee3702a786a2201596be2ffea37dfc281ab4c8e9942fe1

How to check it · This row as JSON