addrbookFor publishers
← The evidence ledger

Evidence row 220944

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint ddae2975-44b5-4a58-90b9-c72affcdc5ad
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
aef3aa4241b5cf0b1302ee955cfd51f5e06f03db5fbaf79ad18e80b8d363ce05
Leaf
0xfb94cedf323a2212919db55d2c476f49d985a32457d55c63f31ad3e8e1163f5f

What was observed

{
  "count": 8,
  "tools": [
    {
      "description": "Return a structured JSON summary of a drawing in any supported format (DXF or PDF), detected from its bytes rather than its name. Use this when you do not know which format you have; the reply names the format that was read. Covers the whole drawing by default, including every page of a multi-page PDF; pass `space` (a name from the reply's `spaces`) to scope it to one page or sheet. When the user wants to see or explore the drawing themselves, prefer view_dxf (interactive viewer) — if your platform gates it behind user approval, offer it and ask rather than substituting a static render.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "source": {
            "description": "A publicly reachable http(s) URL, or inline DXF text. A PDF is binary, so it must be a URL — inline PDF bytes are refused. (This is a hosted server — local file paths are not available; use the npx @aspicio/mcp local server for files on disk.)",
            "type": "string"
          },
          "space": {
            "description": "Which space to work on: \"Model\" (a PDF's page 1, a DXF's model space) or a page/layout name as listed in a describe reply's \"spaces\". Describe omits it for the whole drawing; render defaults to the first space.",
            "type": "string"
          }
        },
        "required": [
          "source"
        ],
        "type": "object"
      },
      "name": "describe_doc"
    },
    {
      "description": "Return a structured JSON summary of a DXF drawing — units, bounding box, layers (with the color actually drawn), per-type entity counts, and any skipped/unsupported types. Use this to answer structural questions (what layers exist, how many parts, what size, is it to scale) without rendering an image. For a PDF use describe_pdf; if you do not know the format, use describe_doc. Covers the whole drawing by default, including every page of a multi-page PDF; pass `space` (a name from the reply's `spaces`) to scope it to one page or sheet. When the user wants to see or explore the drawing themselves, prefer view_dxf (interactive viewer) — if your platform gates it behind user approval, offer it and ask rather than substituting a static render.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "source": {
            "description": "A publicly reachable http(s) URL, or inline DXF text. A PDF is binary, so it must be a URL — inline PDF bytes are refused. (This is a hosted server — local file paths are not available; use the npx @aspicio/mcp local server for files on disk.)",
            "type": "string"
          },
          "space": {
            "description": "Which space to work on: \"Model\" (a PDF's page 1, a DXF's model space) or a page/layout name as listed in a describe reply's \"spaces\". Describe omits it for the whole drawing; render defaults to the first space.",
            "type": "string"
          }
        },
        "required": [
          "source"
        ],
        "type": "object"
      },
      "name": "describe_dxf"
    },
    {
      "description": "Return a structured JSON summary of a PDF drawing — units (points), bounding box, layers, per-type entity counts, the text it contains, and what was skipped (images, shadings, transparency). Use this for structural questions about a PDF without rendering it. For a DXF use describe_dxf; if you do not know the format, use describe_doc. Covers the whole drawing by default, including every page of a multi-page PDF; pass `space` (a name from the reply's `spaces`) to scope it to one page or sheet. When the user wants to see or explore the drawing themselves, prefer view_dxf (interactive viewer) — if your platform gates it behind user approval, offer it and ask rather than substituting a static render.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "source": {
            "description": "A publicly reachable http(s) URL, or inline DXF text. A PDF is binary, so it must be a URL — inline PDF bytes are refused. (This is a hosted server — local file paths are not available; use the npx @aspicio/mcp local server for files on disk.)",
            "type": "string"
          },
          "space": {
            "description": "Which space to work on: \"Model\" (a PDF's page 1, a DXF's model space) or a page/layout name as listed in a describe reply's \"spaces\". Describe omits it for the whole drawing; render defaults to the first space.",
            "type": "string"
          }
        },
        "required": [
          "source"
        ],
        "type": "object"
      },
      "name": "describe_pdf"
    },
    {
      "description": "Internal: returns DXF bytes (base64) for the in-chat viewer. Called by the widget, not the model.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "length": {
            "description": "Byte length of the requested range",
            "maximum": 4000000,
            "minimum": 1,
            "type": "integer"
          },
          "offset": {
            "description": "Byte offset of the requested range",
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          },
          "source": {
            "description": "http(s) URL of the drawing (same guards as the other tools)",
            "type": "string"
          }
        },
        "required": [
          "source"
        ],
        "type": "object"
      },
      "name": "load_dxf_for_viewer"
    },
    {
      "description": "Render a drawing in any supported format (DXF or PDF) to a PNG you can look at, detected from its bytes rather than its name. Use this when you do not know which format you have. Renders the first page/sheet by default; pass `space` (a name from a describe reply's `spaces`) to render another one. Some chat UIs do not display the returned image to the user: for URL sources the result also includes a direct image link — show it (e.g. as a markdown image) when they need to see the render. When the user wants to see or explore the drawing themselves, prefer view_dxf (interactive viewer) — if your platform gates it behind user approval, offer it and ask rather than substituting a static render.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "source": {
            "description": "A publicly reachable http(s) URL, or inline DXF text. A PDF is binary, so it must be a URL — inline PDF bytes are refused. (This is a hosted server — local file paths are not available; use the npx @aspicio/mcp local server for files on disk.)",
            "type": "string"
          },
          "space": {
            "description": "Which space to work on: \"Model\" (a PDF's page 1, a DXF's model space) or a page/layout name as listed in a describe reply's \"spaces\". Describe omits it for the whole drawing; render defaults to the first space.",
            "type": "string"
          },
          "width": {
            "description": "PNG width in pixels (default 1200)",
            "maximum": 4000,
            "minimum": 64,
            "type": "integer"
          }
        },
        "required": [
          "source"
        ],
        "type": "object"
      },
      "name": "render_doc"
    },
    {
      "description": "Render a DXF drawing to a PNG image you can look at. Use this to answer visual questions (what does it look like, where is a feature, does it look right) — it returns an image, not text. For structural facts, prefer describe_dxf. For a PDF use render_pdf; if you do not know the format, use render_doc. Renders the first page/sheet by default; pass `space` (a name from a describe reply's `spaces`) to render another one. Some chat UIs do not display the returned image to the user: for URL sources the result also includes a direct image link — show it (e.g. as a markdown image) when they need to see the render. When the user wants to see or explore the drawing themselves, prefer view_dxf (interactive viewer) — if your platform gates it behind user approval, offer it and ask rather than substituting a static render.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "source": {
            "description": "A publicly reachable http(s) URL, or inline DXF text. A PDF is binary, so it must be a URL — inline PDF bytes are refused. (This is a hosted server — local file paths are not available; use the npx @aspicio/mcp local server for files on disk.)",
            "type": "string"
          },
          "space": {
            "description": "Which space to work on: \"Model\" (a PDF's page 1, a DXF's model space) or a page/layout name as listed in a describe reply's \"spaces\". Describe omits it for the whole drawing; render defaults to the first space.",
            "type": "string"
          },
          "width": {
            "description": "PNG width in pixels (default 1200)",
            "maximum": 4000,
            "minimum": 64,
            "type": "integer"
          }
        },
        "required": [
          "source"
        ],
        "type": "object"
      },
      "name": "render_dxf"
    },
    {
      "description": "Render a PDF drawing's vector content to a PNG you can look at. Images, shadings, and transparency are not drawn — they are reported by describe_pdf — so this shows line work and text, not a page facsimile. For a DXF use render_dxf; if you do not know the format, use render_doc. Renders the first page/sheet by default; pass `space` (a name from a describe reply's `spaces`) to render another one. Some chat UIs do not display the returned image to the user: for URL sources the result also includes a direct image link — show it (e.g. as a markdown image) when they need to see the render. When the user wants to see or explore the drawing themselves, prefer view_dxf (interactive viewer) — if your platform gates it behind user approval, offer it and ask rather than substituting a static render.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "source": {
            "description": "A publicly reachable http(s) URL, or inline DXF text. A PDF is binary, so it must be a URL — inline PDF bytes are refused. (This is a hosted server — local file paths are not available; use the npx @aspicio/mcp local server for files on disk.)",
            "type": "string"
          },
          "space": {
            "description": "Which space to work on: \"Model\" (a PDF's page 1, a DXF's model space) or a page/layout name as listed in a describe reply's \"spaces\". Describe omits it for the whole drawing; render defaults to the first space.",
            "type": "string"
          },
          "width": {
            "description": "PNG width in pixels (default 1200)",
            "maximum": 4000,
            "minimum": 64,
            "type": "integer"
          }
        },
        "required": [
          "source"
        ],
        "type": "object"
      },
      "name": "render_pdf"
    },
    {
      "description": "Open an interactive viewer the user can pan, zoom, and toggle layers in (renders in-chat on MCP Apps-capable hosts). Reads DXF and vector PDF; for a PDF it shows line work and text rather than a page facsimile, so images, shadings, and transparency are absent by design. Use this when the user wants to see or explore the drawing themselves; for your own analysis use a describe_* tool (facts) or a render_* tool (image). The viewer shows only the drawing from this call. Delivery is handled by the widget itself: small drawings are embedded in the result and larger URL-sourced drawings are fetched by the widget through its own tool call — never re-fetch or inline the file for the viewer's sake, and don't blind-retry if the user reports an empty viewer (the viewer posts its actual status back to the conversation context).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "allow_file_open": {
            "description": "Show open-file controls in the viewer (default false: viewer is locked to this drawing)",
            "type": "boolean"
          },
          "source": {
            "description": "A publicly reachable http(s) URL, or inline DXF text. A PDF is binary, so it must be a URL — inline PDF bytes are refused. (This is a hosted server — local file paths are not available; use the npx @aspicio/mcp local server for files on disk.)",
            "type": "string"
          }
        },
        "required": [
          "source"
        ],
        "type": "object"
      },
      "name": "view_dxf"
    }
  ]
}

What the leaf hashes

{"body":"aef3aa4241b5cf0b1302ee955cfd51f5e06f03db5fbaf79ad18e80b8d363ce05","id":220944,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793027015442337,"prev":null,"subject":"ddae2975-44b5-4a58-90b9-c72affcdc5ad","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. 0xfb954b1f2ea2e87f40bb9f065e91b0cd138cbf01b4e93dd5dc5daf2a620bb7d8
  2. 0x20b98b212b3cec1b0c9a767465fbae4fe47784b5d483d6e3e1a91228b331dc76
  3. 0xfcc515c91f781599098caad19dad29a69867089fae4e601afbb81b05c72e2bc2
  4. 0x1e6fba550e07022ea64658953d4be5ba7e66c6fb7d56d3896ef4b50ff035eab9
  5. 0x764a134bf69c7376d88ca798d5193393b2985b28155cdaa08931315a4273649b
  6. 0xc66bc80c352ed984ac9f0735fd50d378af7506b249e7b367d60917cb189eb8b3
  7. 0x6abe85cf657d43ac3e52ccce851131e3ec2e15406c64de09e748b92335514699
  8. 0x70fd9ae9a03a791316b620492c5fdde2f830ab359262f4c723ef46b1f913f0bc
  9. 0x395a13a3442e9661e635085a1cd2cefe834428265c3f55a1ecf5d8707fc47162
  10. 0x5a686e4901521125a8b452665ac2984aa9cdf4a4bb0c87e06113a6fe84429ad2
  11. 0xcf10f42f956ec0f58e8d60fb00e23c6415064b00d70e8566efe0f1b98e7e1d0a
  12. 0xf8173f36b7a27e1bb0f6961a49501bba1d99349c5e11449d0d557fbaa910be0a
  13. 0xbee644d57738676bfb20eb90d6021f364bf883a8d54f8d17e9dc4749b4074c3d
  14. 0x44945ea9ad8b24e723ad5a8fd6d014024a49531783f74ff9229c2ab6930e84c8
  15. 0x68d296b1e00b4899fb83c3fba36fffaefa311eac2903067dbebfe776a12b4a9a
  16. 0x5fb5dda563336cd1bc1b9f44c52b76237ae72ed2145cb9290f39f304ca7dd678
  17. 0x74a0a08e4e7ab9aa5bfbead33dec7e1c7e8e364cff69a63720d764bbe987aadc
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON