Skip to main content
Glama

Tanod Images

imagepeek: perceptual hashes of an image (compare two images)

image_hash
Read-onlyIdempotent

imagepeek: Compute perceptual hashes of an image, optionally compared. Returns perceptual hashes of an image (aHash, dHash, pHash, wHash; 64 or 256 bits, imagehash-compatible) and, with a second image (compare_url or compare_base64), the Hamming distance and similarity per algorithm and likely_same (pHash distance at most bits / 6). A near-duplicate check, not proof that two images are or are not the same. Input: url or image_base64, optional algorithms, hash_size, compare_url or compare_base64 and auto_orient. With a second image the request body may be up to twice the single-image cap. Reads PNG, JPEG, WebP, GIF, TIFF, BMP, ICO and AVIF; other formats and images over 40 megapixels are refused (not charged). Images are never logged or stored. Typically 0.5-2 s. Price: USD 0.002. Free: 3 imagepeek calls per IP per UTC day.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNoPublic http(s) URL of the image (at most 10 MB; private, internal and IP-literal hosts are refused); or use image_base64.
hash_sizeNoHash grid: 8 (64-bit hashes, default) or 16 (256-bit).
algorithmsNoDefault: all four.
auto_orientNoApply the EXIF orientation first (default true).
compare_urlNoA second image to compare (or compare_base64).
image_base64NoThe image as standard or url-safe base64 (at most 10 MB decoded; a data:image/...;base64, prefix is fine); or use url.
compare_base64NoA second image as base64 (at most 10 MB decoded; or compare_url).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
bitsNo
errorNoOnly on an error result: an object {code, message}, or the reason string of an x402 PaymentRequired object.
inputNo
notesNo
hashesNo
sourceNo
compareNo
final_urlNo
operationNo
source_urlNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / auto_orient / description
      Added value: +"Apply the EXIF orientation first (default true)."
    • addedInput schema / properties / compare_base64 / description
      Added value: +"A second image as base64 (at most 10 MB decoded; or compare_url)."
    • addedInput schema / properties / hash_size / description
      Added value: +"Hash grid: 8 (64-bit hashes, default) or 16 (256-bit)."
    • changedInput schema / properties / url / description
      Previous value: -"Public http(s) URL of the image (at most 10 MB); or use image_base64."New value: +"Public http(s) URL of the image (at most 10 MB; private, internal and IP-literal hosts are refused); or use image_base64."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "bits": {
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "compare": {
      +      "properties": {
      +        "distance": {
      +          "type": [
      +            "object",
      +            "null"
      +          ]
      +        },
      +        "likely_same": {
      +          "type": [
      +            "boolean",
      +            "null"
      +          ]
      +        },
      +        "similarity": {
      +          "type": [
      +            "object",
      +            "null"
      +          ]
      +        }
      +      },
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "error": {
      +      "description": "Only on an error result: an object {code, message}, or the reason string of an x402 PaymentRequired object."
      +    },
      +    "final_url": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "hashes": {
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "input": {
      +      "properties": {
      +        "animated": {
      +          "type": [
      +            "boolean",
      +            "null"
      +          ]
      +        },
      +        "bytes": {
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "format": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "frames": {
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "has_alpha": {
      +          "type": [
      +            "boolean",
      +            "null"
      +          ]
      +        },
      +        "height": {
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "width": {
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        }
      +      },
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "notes": {
      +      "items": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    },
      +    "operation": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "source": {
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "source_url": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources