addrbookFor publishers
← The evidence ledger

Evidence row 543507

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint b905f2a5-57ee-4c35-b4f8-6499c342aad9
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
79866b60468163e28e7e23d150932891de5f7befb3b7d1677eb5d235ef349c48
Leaf
0xcdef67550f5c16c2a72b477f7baf263cf4742539840a4ed85f877c26f32b50c4

What was observed

{
  "count": 3,
  "tools": [
    {
      "description": "Convert a PDF into structured content (tables, charts, formulas, headings, body text) using a two-stage pipeline (layout detection, then a vision-language model) rather than a single VLM call on the raw PDF -- calling a VLM on a raw PDF directly is a known-unreliable pattern for numeric tables.\n\nMeasured accuracy (500-page real-world benchmark of government/corporate reports, ~51,000 table values checked): tables 95.2% digit-exact, body text 88.8%. This tool reads PDFs a VLM cannot read directly, including scanned pages and PDFs with corrupted/garbled text layers (common in older Japanese academic PDFs). For scanned Japanese documents the numbers hold up (99.4% on the same benchmark). For scanned Arabic, body text does NOT: characters are dropped mid-sentence and quantities can turn into different quantities, so body blocks from scanned Arabic are always flagged confidence:\"estimated\" -- tables in the same documents stayed exact in our measurement. Strong on Japanese-language documents specifically; the accuracy figures above were measured on Japanese material and are not a claim about every language. Chart values are extracted but are best-effort estimates (about 52% exact match, excluding axis tick labels) and are always flagged confidence:\"estimated\" in the result -- do not treat estimated chart numbers as authoritative.\n\nThis is a PAID, ASYNCHRONOUS, per-page-billed operation: credits are reserved from the caller's PDFIntact balance before processing starts, and the response's _meta.credits_remaining shows the balance right after reservation. Processing takes real wall-clock time (roughly 7 seconds/page; a 500-page PDF takes about 42 minutes including a multi-minute cold start), so this tool returns a job_handle immediately without waiting -- call get_result with that job_handle to poll for completion instead of calling convert_pdf again. Always pass idempotency_key; reuse the exact same value if you retry the same request, otherwise retries can double-charge and double-process. Provide the PDF either as a public https URL (source.type=\"url\", up to ~200MB) or inline base64 (source.type=\"base64\", up to ~20MB) -- prefer the URL form for large files.\n\nRequires sign-in (OAuth): this session is not authenticated, so calling this tool will fail until the PDFIntact account is connected and authorized.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "idempotency_key": {
            "description": "Unique key for this request. Reuse the same value on retry of the same PDF to avoid double charging.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "source": {
            "oneOf": [
              {
                "properties": {
                  "type": {
                    "const": "url",
                    "type": "string"
                  },
                  "url": {
                    "description": "HTTPS URL to fetch the PDF from",
                    "format": "uri",
                    "type": "string"
                  }
                },
                "required": [
                  "type",
                  "url"
                ],
                "type": "object"
              },
              {
                "properties": {
                  "data": {
                    "description": "Base64-encoded PDF file contents",
                    "type": "string"
                  },
                  "type": {
                    "const": "base64",
                    "type": "string"
                  }
                },
                "required": [
                  "type",
                  "data"
                ],
                "type": "object"
              }
            ]
          }
        },
        "required": [
          "source",
          "idempotency_key"
        ],
        "type": "object"
      },
      "name": "convert_pdf"
    },
    {
      "description": "Check the current PDFIntact credit balance for the authenticated account (1 page = 1 credit), plus the soonest-expiring credit lot. Useful before submitting a large PDF to convert_pdf, or after an insufficient_credits error to see how many credits are needed and get a purchase link.\n\nRequires sign-in (OAuth): this session is not authenticated, so calling this tool will fail until the PDFIntact account is connected and authorized.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "type": "object"
      },
      "name": "get_balance"
    },
    {
      "description": "Fetch the status and (once finished) the structured result of a job previously created by convert_pdf. Poll this with the job_handle convert_pdf returned until _meta.state is \"done\" or \"failed\" -- do not call convert_pdf again while waiting. job_handle is scoped to the account that created it; handles belonging to a different account are rejected as not found.\n\nRequires sign-in (OAuth): this session is not authenticated, so calling this tool will fail until the PDFIntact account is connected and authorized.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "job_handle": {
            "description": "The job_handle returned by convert_pdf",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "job_handle"
        ],
        "type": "object"
      },
      "name": "get_result"
    }
  ]
}

What the leaf hashes

{"body":"79866b60468163e28e7e23d150932891de5f7befb3b7d1677eb5d235ef349c48","id":543507,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793131470951427,"prev":null,"subject":"b905f2a5-57ee-4c35-b4f8-6499c342aad9","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. 0xcdef3951eb7127a9a5604884e0e48e88feff1f9c1805dcdd8a1a67a8897217e3
  2. 0xbda873eb6e28b6745752b50397a320b375e9a9100a7aec690b616d310ca33689
  3. 0xab02c905f16c506f5ef0af47a675a8d3c3408c5df0a4a8c84901c361eac1ab85
  4. 0x9f76af4a7c30ec2367290f683f3f8d1b09ad914dc1c33909f9ebe9d87d206fec
  5. 0xc319aef9a1295d0ac7edf599894bd05c94f9b25ae236c412a2dcf69aa4a0bf7f
  6. 0x372ca02509cdbf957741f405243abb4b070f4eb3afaf8ff5e3386619d228a922
  7. 0x5b641b8cc5cdb1a2d16e8d5114e8b2c795663b04cc26fe00b0f7a6f1ea5d6358
  8. 0x6da51ae532d453023cdab838e9b9ea8f4d220e4d2dae649331f344e4fc3f615f
  9. 0x4adf356113f7702969d22165db7b2ccf38a67acb5eb1cbf718c01944b33dc8cc
  10. 0xc47333eaed4999c782c1a85ca79791472b5a3f8d20a499815180a17f44f99851
  11. 0x8e565ff0c748ae2cc61548174e51ddca11de3dc906e11accf31e6523b86a600c
  12. 0x66e8d9e469038ef11a686abeed12c8ceb38a1a8cd79012ccf20d29a30858cbbc
  13. 0xeb77e9d1884bf470f4a13a5869956a83ac37957112a29ccb9e63ddf7791b5a0b
  14. 0xcc49fd573532e5a29f5be4033f62a2eff71456c020bd2258312b98e95cfe301e
  15. 0x969cd44e5a4e8dc3110540398fbf689659eb51df735c1cda5d8f021ef9ff5683
  16. 0xa94627de1af0e823832e05a9069b304ecccb8c0cdb8f9cfc4f2039bfb9799dc5
  17. 0xdf1105afdc109de3c09a98fc8a3864159ad964e6f49b635c105a27a1e1f14310
  18. 0x2bf8151e5f157dd183b9de6fa00469551932a7a6e3f33a694895000ac9061197
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON