addrbookFor publishers
← The evidence ledger

Evidence row 264687

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 7ee09d74-b2cb-4dda-bee2-422ad37bc46b
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
1d6facaa1dbe880bf155b2d3d3724d012ef99a482a7f8d14ac39eddcf6f6d8fe
Leaf
0xfc027b5be60147313999623ee3316ba3f55668e81d7ac294902ab642ba4fab91

What was observed

{
  "count": 6,
  "tools": [
    {
      "description": "Prepare a new temporary static preview. Supply exactly one of small files or ZIP archive_base64. No backend/build. Requires explicit consent; returns an approval link, not a published URL. User must confirm in their browser. ",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "accept_terms": {
            "const": true,
            "description": "Set true only after the user explicitly agrees to the current terms and public temporary preview limits. Not inferred from a request to generate a site. Preparation is not publication; the user must also personally confirm the approval URL in their browser within 2 hours.",
            "type": "boolean"
          },
          "archive_base64": {
            "description": "One input choice: actual ZIP bytes encoded as canonical standard base64, without data: prefix. At most 50 MiB (52,428,800 bytes) of decoded ZIP and 50 MiB extracted content; at most 25 MiB per file. index.html at root. No nested archives or server code. Do not also send files or archive.",
            "maxLength": 69905068,
            "type": "string"
          },
          "files": {
            "description": "One input choice: 1-500 already-built static files, at most 1 MiB decoded in total. Include index.html at the root and all needed assets. Do not also send archive_base64 or archive. For larger output use a ZIP.",
            "items": {
              "additionalProperties": false,
              "properties": {
                "content": {
                  "description": "Actual file contents, not a filename, local path or download URL. Use UTF-8 text for HTML/CSS/JS and canonical base64 for binary assets. All files together must decode to at most 1 MiB (1,048,576 bytes). No secrets, personal/payment data or forms.",
                  "maxLength": 1400000,
                  "type": "string"
                },
                "encoding": {
                  "description": "Defaults to utf8. Set base64 for binary content; standard padded base64 only, without a data: prefix, whitespace or URL-safe alphabet. The decoded bytes count toward the shared 1 MiB limit.",
                  "enum": [
                    "utf8",
                    "base64"
                  ],
                  "type": "string"
                },
                "path": {
                  "description": "Relative POSIX path inside the ready static output, e.g. index.html or assets/app.js. index.html must be at the root. No absolute paths, traversal, symlinks, archives or executable/server files.",
                  "maxLength": 240,
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "path",
                "content"
              ],
              "type": "object"
            },
            "maxItems": 500,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "accept_terms"
        ],
        "type": "object"
      },
      "name": "create_preview"
    },
    {
      "description": "Prepare deletion of an existing preview. Does not delete until its owner confirms in the browser holding the management key.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "confirm_delete": {
            "const": true,
            "description": "Set true only after the owner explicitly asks to delete this preview. The tool only prepares deletion; final confirmation requires the browser holding its management key.",
            "type": "boolean"
          },
          "preview_id": {
            "description": "Existing preview_id returned by AIfra. Do not invent it or pass a URL, alias, management key or source IP.",
            "pattern": "^pv_[A-Za-z0-9_-]{24}$",
            "type": "string"
          }
        },
        "required": [
          "preview_id",
          "confirm_delete"
        ],
        "type": "object"
      },
      "name": "delete_preview"
    },
    {
      "description": "Explain remote browser-confirmed AIfra publication of ready static files, limits and current terms.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "get_deploy_instructions"
    },
    {
      "description": "Read whether a prepared operation is pending, complete, failed or uncertain. Returns no file content or management key. Never assume pending means published.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "operation_id": {
            "description": "Exact operation_id from a preparation response. Read status after user confirmation or on request. Only complete with a result contains the published URL; pending is not published, uncertain must not be replayed.",
            "pattern": "^rop_[A-Za-z0-9_-]{43}$",
            "type": "string"
          }
        },
        "required": [
          "operation_id"
        ],
        "type": "object"
      },
      "name": "get_operation_status"
    },
    {
      "description": "Read current public status, URL and server-enforced expiry of an existing preview. Only the service owner can manually extend expiry; updates never extend it.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "preview_id": {
            "description": "Existing preview_id returned by AIfra. Do not invent it or pass a URL, alias, management key or source IP.",
            "pattern": "^pv_[A-Za-z0-9_-]{24}$",
            "type": "string"
          }
        },
        "required": [
          "preview_id"
        ],
        "type": "object"
      },
      "name": "get_preview_status"
    },
    {
      "description": "Prepare replacement of an existing temporary static preview. Supply exactly one of small files or ZIP archive_base64. No backend/build. Requires explicit consent; returns an approval link, not a published URL. User must confirm in their browser. Requires the browser holding the existing management key; expiry is unchanged.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "accept_terms": {
            "const": true,
            "description": "Set true only after the user explicitly agrees to the current terms and public temporary preview limits. Not inferred from a request to generate a site. Preparation is not publication; the user must also personally confirm the approval URL in their browser within 2 hours.",
            "type": "boolean"
          },
          "archive_base64": {
            "description": "One input choice: actual ZIP bytes encoded as canonical standard base64, without data: prefix. At most 50 MiB (52,428,800 bytes) of decoded ZIP and 50 MiB extracted content; at most 25 MiB per file. index.html at root. No nested archives or server code. Do not also send files or archive.",
            "maxLength": 69905068,
            "type": "string"
          },
          "files": {
            "description": "One input choice: 1-500 already-built static files, at most 1 MiB decoded in total. Include index.html at the root and all needed assets. Do not also send archive_base64 or archive. For larger output use a ZIP.",
            "items": {
              "additionalProperties": false,
              "properties": {
                "content": {
                  "description": "Actual file contents, not a filename, local path or download URL. Use UTF-8 text for HTML/CSS/JS and canonical base64 for binary assets. All files together must decode to at most 1 MiB (1,048,576 bytes). No secrets, personal/payment data or forms.",
                  "maxLength": 1400000,
                  "type": "string"
                },
                "encoding": {
                  "description": "Defaults to utf8. Set base64 for binary content; standard padded base64 only, without a data: prefix, whitespace or URL-safe alphabet. The decoded bytes count toward the shared 1 MiB limit.",
                  "enum": [
                    "utf8",
                    "base64"
                  ],
                  "type": "string"
                },
                "path": {
                  "description": "Relative POSIX path inside the ready static output, e.g. index.html or assets/app.js. index.html must be at the root. No absolute paths, traversal, symlinks, archives or executable/server files.",
                  "maxLength": 240,
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "path",
                "content"
              ],
              "type": "object"
            },
            "maxItems": 500,
            "minItems": 1,
            "type": "array"
          },
          "preview_id": {
            "description": "Existing preview_id returned by AIfra. Do not invent it or pass a URL, alias, management key or source IP.",
            "pattern": "^pv_[A-Za-z0-9_-]{24}$",
            "type": "string"
          }
        },
        "required": [
          "accept_terms",
          "preview_id"
        ],
        "type": "object"
      },
      "name": "update_preview"
    }
  ]
}

What the leaf hashes

{"body":"1d6facaa1dbe880bf155b2d3d3724d012ef99a482a7f8d14ac39eddcf6f6d8fe","id":264687,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793034356943912,"prev":null,"subject":"7ee09d74-b2cb-4dda-bee2-422ad37bc46b","subject_kind":"endpoint"}

Proof

Its day has not closed yet. A day closes ten minutes after midnight UTC; the proof appears here then.

How to check it · This row as JSON