addrbookFor publishers
← The evidence ledger

Evidence row 566314

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint e92f7e8a-f869-4ebb-ac53-2576f44553b3
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
c6e951a0bdc8e326f1d123f012a3a84def8773984d91c4e7ca5f1bf832f134ca
Leaf
0xffc49cc6e52f343956225be8afb2d1a5b9ff509b29216d2a4571beb8383e0115

What was observed

{
  "count": 7,
  "tools": [
    {
      "description": "Find substitutes for a part by MPN — the deterministic, program-only cross-reference the Kelvin web app runs: pre-gate the catalogue at the ranker's own reject edges, then score every candidate on value, ratings, footprint and mount type. No LLM judgement. An original whose own specs are incomplete can never yield a clean 'recommended'.",
      "inputSchema": {
        "properties": {
          "family": {
            "title": "Family",
            "type": "string"
          },
          "manufacturer": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Manufacturer"
          },
          "max_results": {
            "default": 12,
            "title": "Max Results",
            "type": "integer"
          },
          "mpn": {
            "title": "Mpn",
            "type": "string"
          },
          "same_type": {
            "default": true,
            "title": "Same Type",
            "type": "boolean"
          },
          "target_manufacturers": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Target Manufacturers"
          }
        },
        "required": [
          "family",
          "mpn"
        ],
        "title": "cross_referenceArguments",
        "type": "object"
      },
      "name": "cross_reference"
    },
    {
      "description": "The exact field names one family can be filtered, sorted and bucketed on, and the designRequirements keys its selector reads. Call this before search_parts on an unfamiliar family rather than guessing field names.",
      "inputSchema": {
        "properties": {
          "family": {
            "title": "Family",
            "type": "string"
          }
        },
        "required": [
          "family"
        ],
        "title": "describe_familyArguments",
        "type": "object"
      },
      "name": "describe_family"
    },
    {
      "description": "Every component family in the TAS catalogue, with how many parts it holds and whether it has a deterministic selector. Start here.",
      "inputSchema": {
        "properties": {},
        "title": "list_familiesArguments",
        "type": "object"
      },
      "name": "list_families"
    },
    {
      "description": "One part by MPN: its extracted specs and, optionally, the full TAS catalogue record behind them (datasheet URL, mechanical drawing, provenance).",
      "inputSchema": {
        "properties": {
          "family": {
            "title": "Family",
            "type": "string"
          },
          "include_record": {
            "default": true,
            "title": "Include Record",
            "type": "boolean"
          },
          "manufacturer": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Manufacturer"
          },
          "mpn": {
            "title": "Mpn",
            "type": "string"
          }
        },
        "required": [
          "family",
          "mpn"
        ],
        "title": "part_detailsArguments",
        "type": "object"
      },
      "name": "part_details"
    },
    {
      "description": "Kelvin's deterministic selector: rank real parts against a designRequirements block and return the candidates with the margins that ranked them. Same authority Kirchhoff and Heaviside select through — no LLM judgement, reproducible.",
      "inputSchema": {
        "properties": {
          "family": {
            "title": "Family",
            "type": "string"
          },
          "include_envelope": {
            "default": false,
            "title": "Include Envelope",
            "type": "boolean"
          },
          "max_results": {
            "default": 12,
            "title": "Max Results",
            "type": "integer"
          },
          "options": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Options"
          },
          "requirements": {
            "additionalProperties": true,
            "title": "Requirements",
            "type": "object"
          }
        },
        "required": [
          "family",
          "requirements"
        ],
        "title": "recommend_partsArguments",
        "type": "object"
      },
      "name": "recommend_parts"
    },
    {
      "description": "Parametric search over one family: numeric ranges, categorical values, MPN substring and manufacturer, with optional facet counts. This is the catalogue question — 'what parts do we have that ...' — and needs no converter design.",
      "inputSchema": {
        "properties": {
          "family": {
            "title": "Family",
            "type": "string"
          },
          "filters": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Filters"
          },
          "limit": {
            "default": 25,
            "title": "Limit",
            "type": "integer"
          },
          "offset": {
            "default": 0,
            "title": "Offset",
            "type": "integer"
          },
          "sort": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Sort"
          },
          "with_facets": {
            "default": false,
            "title": "With Facets",
            "type": "boolean"
          }
        },
        "required": [
          "family"
        ],
        "title": "search_partsArguments",
        "type": "object"
      },
      "name": "search_parts"
    },
    {
      "description": "How one numeric spec is distributed across a filtered slice of a family — bucket counts (log or linear) plus how many parts state the value at all. Answers 'what is available' questions that a top-N list cannot.",
      "inputSchema": {
        "properties": {
          "buckets": {
            "default": 20,
            "title": "Buckets",
            "type": "integer"
          },
          "family": {
            "title": "Family",
            "type": "string"
          },
          "field": {
            "title": "Field",
            "type": "string"
          },
          "filters": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Filters"
          },
          "log": {
            "default": true,
            "title": "Log",
            "type": "boolean"
          }
        },
        "required": [
          "family",
          "field"
        ],
        "title": "spec_distributionArguments",
        "type": "object"
      },
      "name": "spec_distribution"
    }
  ]
}

What the leaf hashes

{"body":"c6e951a0bdc8e326f1d123f012a3a84def8773984d91c4e7ca5f1bf832f134ca","id":566314,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793138418996006,"prev":null,"subject":"e92f7e8a-f869-4ebb-ac53-2576f44553b3","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. 0xffc46848b92e03d4bc8712dc1bd25b4e8b8b66b1ec0346855e7b8fb3523004e8
  2. 0x1b3219284e3d03bd30edf90c41e3358101635b6fdc31477ce4d76ed84117d53a
  3. 0xa2f02f616198504173a9878dadb26f09b27ae07ce11cfd6cca46f5c586d89054
  4. 0xfbe09a72ffd4519be95a0561fb223ad769397e81db41c3424eb65c327a4e9160
  5. 0x665c13b26fc0c3c76b966182e4a6f193b5beaa0fbcd6d88f5f4e81fc6ecf2e7c
  6. 0x5350562be60b440494e199cb641274bf2c6b28577b112504eee17942d8ab13e4
  7. 0x4df777ce87d6cccb99884790f5b462eea914f0783c958b0c239fa9f9a5aa2f32
  8. 0xd10b1a13124df94b499c05b729542af8ce2bb639a9180a3067def5d2375e0486
  9. 0x4717629cc24b91ac4468dc831a53d4b95d7f58fe55f0cf2cc79aad1eb78c96b8
  10. 0x28fd4fefaa8c94a7ca325e125613f4667189d59865de90f320eaca8fc997ea47
  11. 0x7e9df831f5c1b2f5e3d3d5c1837e1410fcc354cd33e5999cecca1fd2ece2db37
  12. 0x5fc89955112581b3fcfa3f9a81d69af0e71784d0baa72f00dbfc2abc2e383e84
  13. 0x56e872147e60f01cdcee33340b018a7ad7be91ec5b5daef0d2c629c3ca13cbd8
  14. 0xb5b652bba4a5afca56c21031d89b1c06361563aaf54ccc8541c296ceeb2b66fa
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON