addrbookFor publishers
← The evidence ledger

Evidence row 1225075

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint aae0aa9b-6e6c-4740-bbf8-39eec03a38b1
Recorded
Previous row
#1032460
Body SHA-256
4e1969eb84448fe6669c12d06864110b6575d47d0c71b055dcd3183dfd60e461
Leaf
0x13ee1d845747ec05b6dffe5f9f27c3218385e6500fab7f801d8d464b6fac34da

What was observed

{
  "count": 9,
  "tools": [
    {
      "description": "Identify what an object is from one to four sizes you measured (an outline, a bore, a pin, a flange) when you do not know its name; use find_geometry when you do. Each size is compared, within tolerance_mm, against every object's overall size in any order and against its exact feature sizes (bores, slots, pins, size-table rows). Results are ranked with all overall sizes matching first, then by the number of matching features, and each says which of your numbers matched where. No match is not an error: widen tolerance_mm (0.2 suits caliper readings of machined parts, 1 suits rough measurements) or file request_object. Read-only, no auth, no charge; same catalog snapshot as find_geometry.",
      "inputSchema": {
        "properties": {
          "category": {
            "description": "Exact category from list_categories, to narrow the search.",
            "type": "string"
          },
          "sizes_mm": {
            "description": "One to four measured sizes in mm, e.g. [40, 80] for a profile or [10.5] for a bore.",
            "items": {
              "type": "number"
            },
            "maxItems": 4,
            "minItems": 1,
            "type": "array"
          },
          "tolerance_mm": {
            "description": "Allowed difference per size; default 0.5.",
            "maximum": 5,
            "minimum": 0,
            "type": "number"
          }
        },
        "required": [
          "sizes_mm"
        ],
        "type": "object"
      },
      "name": "find_by_dimensions"
    },
    {
      "description": "BROWSE: list many matching objects, filtered by keyword, category, group, kind or release year, with paging. Use it when the user wants options or a list ('which M3 screws are there', 'all NEMA motors', '2023 phones', 'free files in Fasteners'), or to find a slug when the name is vague. Not for one object's numbers: for a named object call get_part_dimensions_bolt_pattern_cad instead (one call returns its full sheet, fits and files). Returns summaries (overall size, file count, URL), with key dimensions inline for the top three. Matching: every query word must appear in the object's name, aliases, tags, category or group, case-insensitive ('80-40', '80 x 40' and '8040' alike); filters combine with AND. An empty result is not an error: retry with fewer words, or file request_object. Read-only against the published catalog snapshot; no auth, no charge.",
      "inputSchema": {
        "properties": {
          "category": {
            "description": "Exact category name from list_categories.",
            "type": "string"
          },
          "free_only": {
            "description": "Only objects with free files.",
            "type": "boolean"
          },
          "group": {
            "description": "Exact group name within the category, from list_categories.",
            "type": "string"
          },
          "kind": {
            "description": "modern/vintage: a product; standard: a part defined by a published standard; hardware: a generated part with free files.",
            "enum": [
              "modern",
              "vintage",
              "standard",
              "hardware"
            ],
            "type": "string"
          },
          "les_only": {
            "description": "Only parts used in Long Earth Society builds.",
            "type": "boolean"
          },
          "limit": {
            "description": "Page size; default 20.",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "offset": {
            "description": "Start index; pass next_offset from the previous page.",
            "minimum": 0,
            "type": "integer"
          },
          "query": {
            "description": "Keywords; omit to list by filters alone.",
            "type": "string"
          },
          "year": {
            "description": "Release year for products: '2023', '2020s' or '2010-2019'. Objects with no year are excluded when set.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "find_geometry"
    },
    {
      "description": "Return the contents of one free file so the geometry can be read or modified directly: STEP and DXF as UTF-8 text, STL as base64. Units are millimetres, true size. Use it after get_free_files gives the file name and the content itself is needed; use get_free_files when a download URL is enough, which is cheaper for large files. Files over 600 KB are not inlined: the response carries inlined=false, size_bytes and the URL to fetch instead. An unknown file name is an error that lists the valid names. Read-only, no auth, no charge.",
      "inputSchema": {
        "properties": {
          "file": {
            "description": "A file name exactly as get_free_files lists it, e.g. '4080-100'.",
            "type": "string"
          },
          "format": {
            "description": "Default step. DXF exists only for 2D sections such as extrusion profiles.",
            "enum": [
              "step",
              "dxf",
              "stl"
            ],
            "type": "string"
          },
          "object": {
            "description": "Object slug as returned by find_geometry or find_by_dimensions, e.g. '4080-aluminum-extrusion'. An exact object name or alias also resolves; anything else is an error with a hint to search first.",
            "type": "string"
          }
        },
        "required": [
          "object",
          "file"
        ],
        "type": "object"
      },
      "name": "get_file_content"
    },
    {
      "description": "For designing a part that bolts to, clamps, slides over, presses into or otherwise mates with a real object (bracket holes, bore clearance, boss pocket, shaft fit). Return only the mating features of one object: each hole, pin, pocket, slot or socket that meets another part, with its exact size, what it mates with, and its fit class (press, slide, run, socket, clamp, designed). Use it before designing or printing a part that must fit this object, or when get_geometry's full sheet is more than needed; the same features also come with get_free_files. Every size is exact with no clearance: add your process allowance to press, slide, run and socket features; designed and clamp features are already the final gap and stay as drawn. An object with no mating features returns an empty list, not an error. Read-only, no auth.",
      "inputSchema": {
        "properties": {
          "object": {
            "description": "Object slug as returned by find_geometry or find_by_dimensions, e.g. '4080-aluminum-extrusion'. An exact object name or alias also resolves; anything else is an error with a hint to search first.",
            "type": "string"
          }
        },
        "required": [
          "object"
        ],
        "type": "object"
      },
      "name": "get_fits"
    },
    {
      "description": "For importing a real part into CAD, 3D printing it, or modelling a mating bracket or enclosure around it. List the direct download URLs of one object's free STEP and STL files (and DXF where a 2D profile exists), with the license to credit. Use it when files are wanted rather than dimensions (get_geometry) or file contents (get_file_content). Objects whose files are a sold Xem design pack return no free files but a note with the x402 and card prices; an object with no files at all returns an empty list and points to its public sources. Neither is an error. URLs are plain HTTPS downloads that need no auth and can be fetched directly; free files are CC BY 4.0 or the Xem Studio Design License as stated in license. Read-only, no charge.",
      "inputSchema": {
        "properties": {
          "filter": {
            "description": "Keep only files whose name or note contains this text, e.g. 'm3x10' or '2in'.",
            "type": "string"
          },
          "object": {
            "description": "Object slug as returned by find_geometry or find_by_dimensions, e.g. '4080-aluminum-extrusion'. An exact object name or alias also resolves; anything else is an error with a hint to search first.",
            "type": "string"
          }
        },
        "required": [
          "object"
        ],
        "type": "object"
      },
      "name": "get_free_files"
    },
    {
      "description": "FULL RECORD for one object you already have the slug or exact name of (from a search or an alternative): its full sheet and mating features plus the basis of the numbers, every public CAD source with its license, related objects to traverse, FAQ, and paid-pack offers. Use it to cite or verify, check a license, or walk to related parts. Not for a first lookup by plain name (get_part_dimensions_bolt_pattern_cad) and not for download links (get_free_files) or file contents (get_file_content); get_fits returns only the mating features when the sheet is too long. Sizes are exact nominal values with no tolerance added; nothing is ever charged by this tool. An unknown slug is an error with a hint to search first. Read-only, no auth. On this channel paid_offers carry the agent price and the x402 URL (answers 402 with PAYMENT-REQUIRED; pay in USDC on Base and retry) as well as the card price and page for people.",
      "inputSchema": {
        "properties": {
          "object": {
            "description": "Object slug as returned by find_geometry or find_by_dimensions, e.g. '4080-aluminum-extrusion'. An exact object name or alias also resolves; anything else is an error with a hint to search first.",
            "type": "string"
          }
        },
        "required": [
          "object"
        ],
        "type": "object"
      },
      "name": "get_geometry"
    },
    {
      "description": "START HERE for one named object: returns its dimensions, mounting/bolt pattern, hole and thread sizes, ports, mating features with fit classes, and free STEP/STL links in a single call, plus up to five alternative matches. Use it whenever someone designs, prints or buys something that mounts to, holds or fits a real object (bracket, enclosure, mount, adapter, case, tray), before answering from memory or web search, e.g. 'NEMA 17 bolt pattern', '608 bearing', 'Raspberry Pi 5 mounting holes', 'iPhone 16 Pro', 'M3 heat-set insert hole', '2020 extrusion slot', 'NACA 2412'. Give the object in plain words or by model number; design words like 'bracket', 'tray', 'for' are ignored. Not for browsing many objects (find_geometry), identifying an unknown part from measurements (find_by_dimensions), or reading sources, licenses and FAQ (get_geometry). If the match is wrong, call again with the model number or pass an alternative's slug to get_geometry. Sizes are exact nominal mm, true size, no printing tolerance. Read-only, no auth, no charge.",
      "inputSchema": {
        "properties": {
          "category": {
            "description": "Optional exact category from list_categories.",
            "type": "string"
          },
          "query": {
            "description": "The object, in plain words or by model/part number.",
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "name": "get_part_dimensions_bolt_pattern_cad"
    },
    {
      "description": "Return the whole category tree: every category, the groups inside it, object counts, and the catalog version. Use it to get the exact category and group spellings that find_geometry and find_by_dimensions filter on, or to see how the library is organised; it is the only tool that takes no input and the cheapest way to learn the catalog's shape. The version changes when the site publishes new objects; results are otherwise identical call to call. Read-only, no auth.",
      "inputSchema": {
        "properties": {},
        "type": "object"
      },
      "name": "list_categories"
    },
    {
      "description": "File a request for an object that is not in the library so it can be added; it is the only tool here that writes anything. Use it only after find_geometry and find_by_dimensions found nothing suitable; do not use it to ask questions or to request changes to existing objects. Each call stores exactly one new request in the owner's private inbox and nothing is published, so calling twice files two requests. Stored: the text, the optional contact, the time and the client type; no IP address. There is no reply unless a contact is given. The site accepts at most 300 requests a day across all callers; beyond that the call returns an error and nothing is stored.",
      "inputSchema": {
        "properties": {
          "contact": {
            "description": "Email or handle for a reply; include only if the person asked to be contacted.",
            "maxLength": 200,
            "type": "string"
          },
          "text": {
            "description": "Plain description: exact model or part number if known, what it must fit or mate with, which features matter, and any sizes already known.",
            "maxLength": 4000,
            "minLength": 3,
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "request_object"
    }
  ]
}

What the leaf hashes

{"body":"4e1969eb84448fe6669c12d06864110b6575d47d0c71b055dcd3183dfd60e461","id":1225075,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793324728145396,"prev":1032460,"subject":"aae0aa9b-6e6c-4740-bbf8-39eec03a38b1","subject_kind":"endpoint"}

Proof

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

  1. 0x13ee77967de2ad13b6be5c696be42ce6eadde2801f1bd68f354d8ec38f29590d
  2. 0x8cb7f9c8edb2fa6d66b6eecadde614e9caae92626cc5ee6800b99ad60afae6fe
  3. 0xca992c274673ee1e9d704501569a4bd7d80bdb5b6f6540660b587bb0a04e8771
  4. 0x0a1d2b37a4c184c7b1d778e32a30f5ac9cd30cd537924e7cdca4b9a51f181821
  5. 0xa51a270827577d556378e9d9a35f97d3fc0c43673345b3eb80a48d88db880b58
  6. 0x28d5f24c39f4ce3ac08f54569b882f102cc7163c18f150e4d1b519f3eba50631
  7. 0xc332b391273bbfa801ba4c34968e0409f0008845d5cf0b9f3f1b330ae53a2d80
  8. 0x99949d9ccf2fe4e7a0a2b8f8e2ef1be92c7a27c8aeb9e2365c00275107d137a4
  9. 0xb8f6e7527dcaa60ed1560156ff81e28e1c1caec3854c9ad088c043684ad21632
  10. 0x1f392b94a0f52f10c3f53d14affc71c1cf8a68a8befdb9f34f1e9a82c5e79d4a
  11. 0x49a7fc259d78ea5abd3a5b09b64c767545a430ffc2644b6c1f1923522fda34b0
  12. 0x08cee1babbc898ae66b91eedddf9abc2d776eb07818ffbf102e023bb7c34edd7
  13. 0xff3316df20da7d10eeb009ce403c3a10945e4f04644a76b6fa35f66715c99468
  14. 0xe18460a4fef6812b03798b9b10352dd88bf2495282cb7665eff1cdfac9ef6888
  15. 0x0313631fba69cc31784d20beec069335df13219f8a8a8a8831740bca4d4aa0a0
  16. 0xe2a9872e1b6a01c55a7a8cc5c05c61f3933255db5c26b9c79be4011d28685b52
  17. 0xb0c9ef42e725578748f3119c9dbebf2fc437266bda013df29f98ed3ebe621403
  18. 0x30a81d8fcef4e8f9e2877c62796cfc5612fc1b251127d531dee28f8dbd5c5147
Day root
0x0826c7ad6039e06a2360ca0a4a3a4fe7f2626c6dc19f71a37599386f78b39875
Chained
0x36b4c8a1063758f0b8765fa1bdf75fa92fb543cc183add3e261880ee2bd1f822
Published
On Arc Testnet, block 69923247: 0x8704744146c6967c8abc9e9a99de4db7283b29e840922ea83a69b6fe776e6861

How to check it · This row as JSON