addrbookFor publishers
← The evidence ledger

Evidence row 221924

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint a3fc06d8-2cc8-4508-acdd-0f4cc754e92a
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
3b18906c5ee2e64b245073eb5c06cbc531e578125b895937af042900ff175dc2
Leaf
0x1768b993c71d0a0d1cd65cabf372892c955031999d80f930751c5376e6ae9dc6

What was observed

{
  "count": 6,
  "tools": [
    {
      "description": "Compare Grandet model prices within each unit. Read listings for price-only ordering and conditions; legacy recommended/alternative/cheapest retain their old meanings. Use view=compact for shared connection cards and a short text response. Provide exactly one model or name selector. host records the source only and never selects the inference route. Send targetApp when the user or conversation identifies the intended API application, including explicit use in the current app. With no target, compare directly. An unrecorded app connection permits a price-only recommendation, not a compatibility claim. Omit profile/protocol for a multi-protocol app unless already specified. Existing client remains a legacy target-app alias. Infer coding/chat/long_output from the task; presets are estimates. Use grandet_list_apps only when application facts are needed. Do not request API keys.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "asOf": {
            "description": "Evaluate as of this UTC time (ISO 8601, e.g. \"2026-10-16T12:00:00Z\"). Omit to evaluate now.",
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "channel": {
            "description": "\"standard\" (default) lists ordinary channels, \"declared-nonstandard\" only channels the site itself labels nonstandard, \"all\" both.",
            "enum": [
              "standard",
              "declared-nonstandard",
              "all"
            ],
            "type": "string"
          },
          "client": {
            "description": "Legacy alias of targetApp. Prefer targetApp.",
            "pattern": "^[a-zA-Z0-9._/-]{1,64}$",
            "type": "string"
          },
          "currency": {
            "description": "Limit to one unit board: USD_CREDIT or CNY_CREDIT (site credit, not cash), USD or CNY (cash). Never compare prices across units.",
            "enum": [
              "USD_CREDIT",
              "CNY_CREDIT",
              "USD",
              "CNY"
            ],
            "type": "string"
          },
          "endpointType": {
            "description": "Limit to one API protocol. Send it only when the user named a protocol.",
            "enum": [
              "openai",
              "openai-response",
              "anthropic",
              "gemini"
            ],
            "type": "string"
          },
          "host": {
            "description": "The assistant or app making this call, e.g. \"claude-code\" or \"codex\". Attribution only; it does not change results.",
            "pattern": "^[a-zA-Z0-9._/-]{1,64}$",
            "type": "string"
          },
          "lang": {
            "default": "en",
            "description": "Answer language: \"en\" or \"zh-CN\".",
            "enum": [
              "en",
              "zh-CN"
            ],
            "type": "string"
          },
          "limit": {
            "default": 5,
            "description": "Rows per block, 1–20 (default 5).",
            "maximum": 20,
            "minimum": 1,
            "type": "integer"
          },
          "mix": {
            "description": "Workload used to blend input, cache and output prices into one price per million total tokens. Presets \"chat\" (default), \"coding\" and \"long_output\", or custom input/cache-read/output/cache-write shares totalling 100.",
            "maxLength": 120,
            "type": "string"
          },
          "model": {
            "description": "Model to look up: a catalogue ID, an exact model name or a natural name such as \"claude-sonnet-5-5\". Send exactly one of model or name. An ambiguous name returns NEEDS_CLARIFICATION with candidates.",
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "name": {
            "description": "The catalogue's 20-character hexadecimal raw-name ID (not the name text). Send exactly one of model or name.",
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "os": {
            "default": "unknown",
            "description": "Operating system the target app runs on, for connection steps: windows, macos, linux or unknown.",
            "enum": [
              "windows",
              "macos",
              "linux",
              "unknown"
            ],
            "type": "string"
          },
          "plans": {
            "description": "\"best\" (default) keeps one group per site; \"all\" lists every group of every site.",
            "enum": [
              "best",
              "all"
            ],
            "type": "string"
          },
          "releaseSet": {
            "description": "Pin a published data release by its release-set hash. Omit to use the current release.",
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "skillBuild": {
            "description": "Grandet Skill build ID when called from the Skill. Omit otherwise.",
            "maxLength": 256,
            "type": "string"
          },
          "skillVersion": {
            "description": "Grandet Skill version when called from the Skill, e.g. \"0.3.0\". Omit otherwise.",
            "maxLength": 32,
            "type": "string"
          },
          "targetApp": {
            "description": "Catalogue ID of the app that will use the API, e.g. \"openclaw\", \"claude-code\" or \"codex\". Selects compatible protocols and connection steps. Send it only when the user says where the API will be used.",
            "pattern": "^[a-zA-Z0-9._/-]{1,64}$",
            "type": "string"
          },
          "targetProfile": {
            "description": "An inference profile ID of the target app (see grandet_list_apps). Only together with targetApp or client.",
            "pattern": "^[a-zA-Z0-9._/-]{1,64}$",
            "type": "string"
          },
          "view": {
            "default": "compact",
            "description": "\"compact\" (default): a short text summary plus the listings, with connection cards shared in integrationCards; about a third of the size. \"full\": every legacy field, with the whole JSON repeated as text.",
            "enum": [
              "full",
              "compact",
              "brief"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "grandet_find_cheapest_api"
    },
    {
      "description": "Find current official free tiers, application-based credits and relay free groups. Return the stated benefit, six requirements, deadline, original observation and claim link. userCanMeet=no_card excludes explicit required/conditional card entries; unknown card requirements remain clearly labelled unknown. Application categories describe programs, not the user’s eligibility. Follow pagination.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "asOf": {
            "description": "Evaluate as of this UTC time (ISO 8601, e.g. \"2026-10-16T12:00:00Z\"). Omit to evaluate now.",
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "host": {
            "description": "The assistant or app making this call, e.g. \"claude-code\" or \"codex\". Attribution only; it does not change results.",
            "pattern": "^[a-zA-Z0-9._/-]{1,64}$",
            "type": "string"
          },
          "kind": {
            "description": "\"official\" free tiers and credits, \"relay\" free groups, or \"all\".",
            "enum": [
              "official",
              "relay",
              "all"
            ],
            "type": "string"
          },
          "lang": {
            "default": "en",
            "description": "Answer language: \"en\" or \"zh-CN\".",
            "enum": [
              "en",
              "zh-CN"
            ],
            "type": "string"
          },
          "limit": {
            "description": "Results per page, 1–20.",
            "maximum": 20,
            "minimum": 1,
            "type": "integer"
          },
          "page": {
            "description": "Result page, starting at 1.",
            "maximum": 99999,
            "minimum": 1,
            "type": "integer"
          },
          "q": {
            "description": "Model, vendor or site to search, e.g. \"gemini\".",
            "maxLength": 200,
            "type": "string"
          },
          "releaseSet": {
            "description": "Pin a published data release by its release-set hash. Omit to use the current release.",
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "skillBuild": {
            "description": "Grandet Skill build ID when called from the Skill. Omit otherwise.",
            "maxLength": 256,
            "type": "string"
          },
          "skillVersion": {
            "description": "Grandet Skill version when called from the Skill, e.g. \"0.3.0\". Omit otherwise.",
            "maxLength": 32,
            "type": "string"
          },
          "targetApp": {
            "description": "Catalogue ID of the app that will use the API, e.g. \"openclaw\", \"claude-code\" or \"codex\". Selects compatible protocols and connection steps. Send it only when the user says where the API will be used.",
            "pattern": "^[a-zA-Z0-9._/-]{1,64}$",
            "type": "string"
          },
          "userCanMeet": {
            "description": "Only offers the user can meet: \"any\", \"no_card\" (no payment card) or \"student\".",
            "enum": [
              "any",
              "no_card",
              "student"
            ],
            "type": "string"
          },
          "view": {
            "default": "compact",
            "description": "\"compact\" (default): about 18 KB for a typical query. \"full\": every field, often over 250 KB.",
            "enum": [
              "full",
              "compact"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "grandet_find_free_credits"
    },
    {
      "description": "Look up the published Grandet relay glossary. Site labels are source claims and glossary terms explain them; they do not verify quality. Query q or category and follow pagination. Unknown terms include up to three related FAQ links.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "category": {
            "description": "Limit to one glossary category.",
            "maxLength": 64,
            "type": "string"
          },
          "host": {
            "description": "The assistant or app making this call, e.g. \"claude-code\" or \"codex\". Attribution only; it does not change results.",
            "pattern": "^[a-zA-Z0-9._/-]{1,64}$",
            "type": "string"
          },
          "lang": {
            "default": "en",
            "description": "Answer language: \"en\" or \"zh-CN\".",
            "enum": [
              "en",
              "zh-CN"
            ],
            "type": "string"
          },
          "limit": {
            "description": "Results per page, 1–20.",
            "maximum": 20,
            "minimum": 1,
            "type": "integer"
          },
          "page": {
            "description": "Result page, starting at 1.",
            "minimum": 1,
            "type": "integer"
          },
          "q": {
            "description": "Term or phrase to look up, e.g. \"倍率\" or \"token group\".",
            "maxLength": 160,
            "type": "string"
          },
          "skillBuild": {
            "description": "Grandet Skill build ID when called from the Skill. Omit otherwise.",
            "maxLength": 256,
            "type": "string"
          },
          "skillVersion": {
            "description": "Grandet Skill version when called from the Skill, e.g. \"0.3.0\". Omit otherwise.",
            "maxLength": 32,
            "type": "string"
          },
          "targetApp": {
            "description": "Catalogue ID of the app that will use the API, e.g. \"openclaw\", \"claude-code\" or \"codex\". Selects compatible protocols and connection steps. Send it only when the user says where the API will be used.",
            "pattern": "^[a-zA-Z0-9._/-]{1,64}$",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "grandet_glossary"
    },
    {
      "description": "Read the shared Grandet application list and inference profiles before selecting a supplier. App profiles determine API compatibility; MCP capability alone does not prove an inference route or Skill installation. Use only when the target app ID, supported protocol or configuration variant is uncertain.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "app": {
            "description": "Catalogue app ID to show, e.g. \"openclaw\". Omit to list every app.",
            "pattern": "^[a-zA-Z0-9._/-]{1,64}$",
            "type": "string"
          },
          "host": {
            "description": "The assistant or app making this call, e.g. \"claude-code\" or \"codex\". Attribution only; it does not change results.",
            "pattern": "^[a-zA-Z0-9._/-]{1,64}$",
            "type": "string"
          },
          "lang": {
            "default": "en",
            "description": "Answer language: \"en\" or \"zh-CN\".",
            "enum": [
              "en",
              "zh-CN"
            ],
            "type": "string"
          },
          "skillBuild": {
            "description": "Grandet Skill build ID when called from the Skill. Omit otherwise.",
            "maxLength": 256,
            "type": "string"
          },
          "skillVersion": {
            "description": "Grandet Skill version when called from the Skill, e.g. \"0.3.0\". Omit otherwise.",
            "maxLength": 32,
            "type": "string"
          },
          "targetApp": {
            "description": "Catalogue ID of the app that will use the API, e.g. \"openclaw\", \"claude-code\" or \"codex\". Selects compatible protocols and connection steps. Send it only when the user says where the API will be used.",
            "pattern": "^[a-zA-Z0-9._/-]{1,64}$",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "grandet_list_apps"
    },
    {
      "description": "Read one provider's paged public declarations for a model and optional rowId. Use only when a detail matters, not before every recommendation. A missing row on one page is not proof of absence; follow pagination if needed. This does not test model quality or spend money.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "asOf": {
            "description": "Evaluate as of this UTC time (ISO 8601, e.g. \"2026-10-16T12:00:00Z\"). Omit to evaluate now.",
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "host": {
            "description": "The assistant or app making this call, e.g. \"claude-code\" or \"codex\". Attribution only; it does not change results.",
            "pattern": "^[a-zA-Z0-9._/-]{1,64}$",
            "type": "string"
          },
          "lang": {
            "default": "en",
            "description": "Answer language: \"en\" or \"zh-CN\".",
            "enum": [
              "en",
              "zh-CN"
            ],
            "type": "string"
          },
          "model": {
            "description": "Model to look up: a catalogue ID, an exact model name or a natural name such as \"claude-sonnet-5-5\". Send exactly one of model or name. An ambiguous name returns NEEDS_CLARIFICATION with candidates.",
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "name": {
            "description": "The catalogue's 20-character hexadecimal raw-name ID (not the name text). Send exactly one of model or name.",
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "offerPage": {
            "default": 1,
            "description": "Page of this provider's declarations, starting at 1. Follow it when rowId is absent.",
            "minimum": 1,
            "type": "integer"
          },
          "provider": {
            "description": "The sourceId of the row to inspect (the site host, e.g. \"api.example.com\"), not the operator ID.",
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "releaseSet": {
            "description": "Pin a published data release by its release-set hash. Omit to use the current release.",
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "rowId": {
            "description": "The rowId of the selected row, to read that exact declaration.",
            "maxLength": 512,
            "type": "string"
          },
          "skillBuild": {
            "description": "Grandet Skill build ID when called from the Skill. Omit otherwise.",
            "maxLength": 256,
            "type": "string"
          },
          "skillVersion": {
            "description": "Grandet Skill version when called from the Skill, e.g. \"0.3.0\". Omit otherwise.",
            "maxLength": 32,
            "type": "string"
          },
          "targetApp": {
            "description": "Catalogue ID of the app that will use the API, e.g. \"openclaw\", \"claude-code\" or \"codex\". Selects compatible protocols and connection steps. Send it only when the user says where the API will be used.",
            "pattern": "^[a-zA-Z0-9._/-]{1,64}$",
            "type": "string"
          }
        },
        "required": [
          "provider"
        ],
        "type": "object"
      },
      "name": "grandet_quote_evidence"
    },
    {
      "description": "Look up public model identifiers when a requested name is ambiguous. Results are a page of candidates, not a cheapest-provider ranking. Prefer an exact officialId match; do not silently substitute a different model generation.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "host": {
            "description": "The assistant or app making this call, e.g. \"claude-code\" or \"codex\". Attribution only; it does not change results.",
            "pattern": "^[a-zA-Z0-9._/-]{1,64}$",
            "type": "string"
          },
          "lang": {
            "default": "en",
            "description": "Answer language: \"en\" or \"zh-CN\".",
            "enum": [
              "en",
              "zh-CN"
            ],
            "type": "string"
          },
          "name": {
            "description": "Model name text to look up, e.g. \"sonnet\" or \"deepseek v4\".",
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          },
          "page": {
            "default": 1,
            "description": "Result page, starting at 1.",
            "minimum": 1,
            "type": "integer"
          },
          "skillBuild": {
            "description": "Grandet Skill build ID when called from the Skill. Omit otherwise.",
            "maxLength": 256,
            "type": "string"
          },
          "skillVersion": {
            "description": "Grandet Skill version when called from the Skill, e.g. \"0.3.0\". Omit otherwise.",
            "maxLength": 32,
            "type": "string"
          },
          "targetApp": {
            "description": "Catalogue ID of the app that will use the API, e.g. \"openclaw\", \"claude-code\" or \"codex\". Selects compatible protocols and connection steps. Send it only when the user says where the API will be used.",
            "pattern": "^[a-zA-Z0-9._/-]{1,64}$",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "name": "grandet_resolve_model"
    }
  ]
}

What the leaf hashes

{"body":"3b18906c5ee2e64b245073eb5c06cbc531e578125b895937af042900ff175dc2","id":221924,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793027705635780,"prev":null,"subject":"a3fc06d8-2cc8-4508-acdd-0f4cc754e92a","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. 0x17689e743f2a30979a48acbc91dd284bf6934dc465ab523690e80a5547f9cfd7
  2. 0x729bd0efc0b5e2573166777c0399977c6fcab05acc6f3462f7394a4eb8b15e7f
  3. 0x07c7dcb667967ca62b66a4725e796ef8661fc63d6e00b1329a4c0515ce42fc54
  4. 0x0a5c91cca36cf7ed58d7617a4dfba6d7260b519206b38ef5df85560953b241eb
  5. 0xc059acd76b6ae1c0e5c2c7d43ef6aabf5654764bb4ca5480fb79d9c522d76f93
  6. 0xcb2d8b863cb2ab18b961cd1173bdaa4e6b7dc613fb018c875655edc01c497f8c
  7. 0x21d08c95548ff7fc14b5b5016a46e51fa877331dfd3e7ca7ac6db6249d964352
  8. 0x12ac9abca55af0b3837c8f618f21f5f3040e5461ea53a7fbbdccd3eef12e7a0d
  9. 0x4e70f5f2f3c203f12709ed0c0f41607134188ecfceb56b8eaa6f6cae8620cede
  10. 0x0d4fc8ebd9dad99184207670597ef1933fa15a1f2659bf0e662e21ebef5f0e51
  11. 0x84d28434d4d3c4d17b89916035448fc07d9ad132609b14e307edbe020e19d1a6
  12. 0x15eab8feed5b3f08165d63b9f1aed508c0624966a05349e051f86f0c188707b5
  13. 0x32f46c5f73ecbfd4f770f7f760a79bee2afed4b3e7572fa882b3e7dce8df4356
  14. 0x770e4376196188c7fc9ec40f8e218dc0d1cb92bba5fe0425a0edce27ca9a997f
  15. 0x60582ab4b41e72eb70eb0bce07fbf0fb4d2b62a8bad5be50f5d16d511adc746c
  16. 0xc6a4d7899a0f442958e26505011190b7cff2483611c1b94eba9043e0ba9ac36e
  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