{
  "id": "file.verify",
  "object": "tool",
  "name": "Verify file",
  "summary": "SHA-256 and real file type.",
  "description": "Computes a file's SHA-256 and identifies its real type from its magic bytes (PDF, images, Office documents, archives, audio, video, executables and more), then checks that against the file name's extension and declared content type. Flags renamed executables and mismatches.",
  "category": "files",
  "hosted_by": "Opentools",
  "runtime": "worker",
  "side_effects": false,
  "status": "live",
  "credits": 0,
  "price": "$0.0000",
  "providers": [
    {
      "id": "opentools",
      "name": "Opentools",
      "price": "$0.0000"
    }
  ],
  "mcp_name": "file_verify",
  "input_schema": {
    "type": "object",
    "properties": {
      "file": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "url": {
                "type": "string",
                "format": "uri",
                "description": "Public http(s) URL of the file"
              }
            },
            "required": [
              "url"
            ]
          },
          {
            "type": "object",
            "properties": {
              "file_id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                "description": "An id returned by POST /v1/files"
              }
            },
            "required": [
              "file_id"
            ]
          },
          {
            "type": "object",
            "properties": {
              "base64": {
                "type": "string",
                "description": "Base64-encoded file bytes (up to 10 MB)"
              },
              "name": {
                "type": "string",
                "description": "File name, e.g. invoice.pdf"
              },
              "content_type": {
                "type": "string"
              }
            },
            "required": [
              "base64",
              "name"
            ]
          },
          {
            "type": "object",
            "properties": {
              "connection": {
                "type": "string",
                "minLength": 1,
                "maxLength": 64,
                "description": "A storage connection id or name (see storage.connections)"
              },
              "path": {
                "type": "string",
                "minLength": 1,
                "maxLength": 1024,
                "description": "Path of the file in that connection, e.g. reports/q3.pdf"
              }
            },
            "required": [
              "connection",
              "path"
            ]
          }
        ],
        "x-file": true,
        "description": "The file to check"
      },
      "expected_sha256": {
        "description": "A SHA-256 to compare against",
        "type": "string",
        "maxLength": 100
      }
    },
    "required": [
      "file"
    ]
  },
  "kind": "tool"
}