addrbookFor publishers
← The evidence ledger

Evidence row 305360

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 6f888510-80c1-4a4b-9248-d81ae753dec7
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
4b9e7685da892c194f2edaf090adec7ab65e8984cab0e2f045850faac0d432a9
Leaf
0x2ba02e2565c99f917452e13723eefd782ef06314d343fe1db4e54db887615b0a

What was observed

{
  "count": 15,
  "tools": [
    {
      "description": "Check the WCAG contrast ratio between a foreground and background color, with AA/AAA pass/fail for normal and large text.",
      "inputSchema": {
        "properties": {
          "bg": {
            "description": "Background color (hex, rgb(), or hsl()).",
            "type": "string"
          },
          "fg": {
            "description": "Foreground color (hex, rgb(), or hsl()).",
            "type": "string"
          }
        },
        "required": [
          "fg",
          "bg"
        ],
        "type": "object"
      },
      "name": "check_contrast"
    },
    {
      "description": "Convert code between text formats (e.g. JSON↔YAML, CSS↔SCSS). Pure text transformation: the source is parsed and re-serialized, never executed and never stored. Use list_code_converters for valid from/to ids and per-converter options. Rate limit: 30 calls/min per IP.",
      "inputSchema": {
        "properties": {
          "code": {
            "description": "Source code to convert.",
            "type": "string"
          },
          "from": {
            "description": "Source format id (see list_code_converters).",
            "type": "string"
          },
          "options": {
            "description": "Per-converter options (see optionsSchema in list_code_converters).",
            "type": "object"
          },
          "to": {
            "description": "Target format id.",
            "type": "string"
          }
        },
        "required": [
          "code",
          "from",
          "to"
        ],
        "type": "object"
      },
      "name": "convert_code"
    },
    {
      "description": "Detect the language/format of a code snippet. Static analysis only — the snippet is never executed and never stored.",
      "inputSchema": {
        "properties": {
          "code": {
            "description": "Snippet to inspect. Max 200,000 chars.",
            "type": "string"
          }
        },
        "required": [
          "code"
        ],
        "type": "object"
      },
      "name": "detect_code"
    },
    {
      "description": "Extract a dominant-color palette from an image. Send either a public image_url or image_base64 (base64/data-URI, e.g. a local screenshot). The image is processed in memory and never stored. Each color comes back with its hex, rgb, hsl, share of the image, and the closest human color name — a named palette in one call. Rate limit: 10 calls/min per IP.",
      "inputSchema": {
        "properties": {
          "count": {
            "description": "How many colors to return (2–16, default 8).",
            "type": "integer"
          },
          "image_base64": {
            "description": "Base64-encoded image (raw base64 or a data:image/...;base64 URI), max 10 MB decoded — use this to send a local file/screenshot without hosting it. Provide either this or image_url.",
            "type": "string"
          },
          "image_url": {
            "description": "Public URL of the image to pull the palette from. Provide either this or image_base64.",
            "type": "string"
          },
          "mode": {
            "description": "Palette mode: \"balanced\" (default), \"vibrant\", or \"muted\".",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "extract_colors"
    },
    {
      "description": "Generate tints and shades for a base color (lighter/darker steps) with hex values.",
      "inputSchema": {
        "properties": {
          "hex": {
            "description": "Base color in hex, rgb(), or hsl().",
            "type": "string"
          },
          "limit": {
            "description": "Cap on tints/shades (default fills to ~100%).",
            "maximum": 20,
            "minimum": 1,
            "type": "integer"
          },
          "step": {
            "description": "Step percentage (default 10).",
            "enum": [
              "5",
              "10",
              "20",
              "25"
            ],
            "type": "string"
          }
        },
        "required": [
          "hex"
        ],
        "type": "object"
      },
      "name": "get_color_shades"
    },
    {
      "description": "Get full metadata for one font family by slug: styles, weights, axes, license, subsets and download/CSS URLs.",
      "inputSchema": {
        "properties": {
          "slug": {
            "description": "Family slug, e.g. 'inter', 'playfair-display'.",
            "type": "string"
          }
        },
        "required": [
          "slug"
        ],
        "type": "object"
      },
      "name": "get_font"
    },
    {
      "description": "Return the direct ZIP download URL for a font family (all styles + a ready fonts.css). Does NOT download — hand the URL to the user or fetch it separately.",
      "inputSchema": {
        "properties": {
          "slug": {
            "description": "Family slug, e.g. 'inter'.",
            "type": "string"
          }
        },
        "required": [
          "slug"
        ],
        "type": "object"
      },
      "name": "get_font_download_url"
    },
    {
      "description": "List every font file (weight/italic/format + direct woff2/ttf URL) for a family — handy for building custom @font-face rules.",
      "inputSchema": {
        "properties": {
          "slug": {
            "description": "Family slug, e.g. 'inter'.",
            "type": "string"
          }
        },
        "required": [
          "slug"
        ],
        "type": "object"
      },
      "name": "get_font_files"
    },
    {
      "description": "Generate ready-to-use @font-face CSS for a family spec (Google-Fonts-compatible), e.g. \"inter:wght@400,700\" or a variable range \"inter:wght@300..900\". Returns CSS text.",
      "inputSchema": {
        "properties": {
          "display": {
            "description": "font-display value (default swap).",
            "enum": [
              "swap",
              "auto",
              "block",
              "fallback",
              "optional"
            ],
            "type": "string"
          },
          "family": {
            "description": "Family spec, e.g. \"inter:wght@400,700\" or \"inter:wght@300..900\".",
            "type": "string"
          }
        },
        "required": [
          "family"
        ],
        "type": "object"
      },
      "name": "get_fonts_css"
    },
    {
      "description": "Get one color palette by id: its colors (hex), name/derived title, mood, harmony, temperature and tags.",
      "inputSchema": {
        "properties": {
          "id": {
            "description": "Palette id.",
            "type": "integer"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "get_palette"
    },
    {
      "description": "Minify or beautify JS, CSS, HTML, SVG, JSON or XML text. Set type=auto to sniff the language. The code is only parsed and re-printed — never executed and never stored. Rate limit: 30 calls/min per IP.",
      "inputSchema": {
        "properties": {
          "code": {
            "description": "Source code to transform.",
            "type": "string"
          },
          "keep_license": {
            "description": "Preserve /*! ... */ license comments when minifying.",
            "type": "boolean"
          },
          "mode": {
            "description": "Default minify.",
            "enum": [
              "minify",
              "beautify"
            ],
            "type": "string"
          },
          "type": {
            "description": "Source language, or 'auto' to sniff.",
            "enum": [
              "js",
              "css",
              "html",
              "svg",
              "json",
              "xml",
              "auto"
            ],
            "type": "string"
          }
        },
        "required": [
          "code",
          "type"
        ],
        "type": "object"
      },
      "name": "minify_code"
    },
    {
      "description": "Get the closest human-readable name for one or more colors. Pass a single hex or several comma-separated (e.g. \"#3b82f6,#000,#ff7f50\"); returns each input with its nearest color name, the reference hex, an exact-match flag and the perceptual distance.",
      "inputSchema": {
        "properties": {
          "hex": {
            "description": "A hex color, or several comma-separated (e.g. \"#3b82f6,#000,#ff7f50\"). Up to 100 at once.",
            "type": "string"
          }
        },
        "required": [
          "hex"
        ],
        "type": "object"
      },
      "name": "name_color"
    },
    {
      "description": "Identify which font is used in an image. Powered by our OWN CNN embedding model, trained on the jinero font catalog — it matches fonts by visual shape/style, so it needs NO OCR and NO text (works for Latin and Cyrillic). Send a tight crop of one line of text as either image_url (public URL) or image_base64 (base64/data-URI, e.g. a local screenshot). The image is processed in memory and deleted immediately — never stored. Returns the most visually similar font families with scores. Typically 0.3-1.7 s (an OCR-assisted rerank of top candidates engages when retrieval is uncertain). Rate limit: 5 calls/min per IP (model inference is compute-heavy).",
      "inputSchema": {
        "properties": {
          "image_base64": {
            "description": "Base64-encoded image (raw base64 or a data:image/...;base64 URI), max 8 MB decoded — use this to send a local file/screenshot without hosting it. Provide either this or image_url.",
            "type": "string"
          },
          "image_url": {
            "description": "Public URL of an image — a tight crop of one line of text. Provide either this or image_base64. Recognition is by visual shape (no OCR/text needed); Latin & Cyrillic supported.",
            "type": "string"
          },
          "top_k": {
            "description": "Number of font matches to return (3–20, default 8).",
            "maximum": 20,
            "minimum": 3,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "recognize_font"
    },
    {
      "description": "Search the free font catalog by name, category, style tags, language coverage, variable/monospace flags and style count. Returns a paginated list of families.",
      "inputSchema": {
        "properties": {
          "category": {
            "description": "Comma-separated categories, e.g. 'serif,sans'.",
            "type": "string"
          },
          "langs": {
            "description": "Comma-separated language codes, e.g. 'latin,cyrillic' — ALL must be supported.",
            "type": "string"
          },
          "monospace": {
            "description": "Only monospace fonts.",
            "type": "boolean"
          },
          "name": {
            "description": "Fuzzy name match.",
            "type": "string"
          },
          "order": {
            "description": "Sort field, default 'likes'.",
            "enum": [
              "likes",
              "downloads",
              "views",
              "name",
              "created_at"
            ],
            "type": "string"
          },
          "page": {
            "description": "Page number.",
            "minimum": 1,
            "type": "integer"
          },
          "per_page": {
            "description": "Results per page (default 24).",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "sort": {
            "description": "Sort direction.",
            "enum": [
              "asc",
              "desc"
            ],
            "type": "string"
          },
          "style": {
            "description": "Comma-separated style tags, e.g. 'handwriting,condensed' — ALL must match. One of: handwriting, script, display, slab, rounded, condensed, expanded, stencil, pixel, blackletter, outline, retro.",
            "type": "string"
          },
          "styles_max": {
            "description": "Maximum number of styles.",
            "type": "integer"
          },
          "styles_min": {
            "description": "Minimum number of styles.",
            "type": "integer"
          },
          "variable": {
            "description": "Only variable fonts.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "name": "search_fonts"
    },
    {
      "description": "Search the color-palette catalog by name, tone, temperature, mood, harmony, exact color count and tags. Returns a paginated list.",
      "inputSchema": {
        "properties": {
          "color_count": {
            "description": "Exact number of colors.",
            "maximum": 10,
            "minimum": 2,
            "type": "integer"
          },
          "harmony": {
            "description": "e.g. analogous, complementary, triadic, monochromatic, split-complementary, tetradic.",
            "type": "string"
          },
          "mood": {
            "description": "e.g. pastel, muted, earthy, vibrant, monochrome.",
            "type": "string"
          },
          "name": {
            "description": "Fuzzy name match.",
            "type": "string"
          },
          "order": {
            "description": "Sort order (default newest).",
            "enum": [
              "newest",
              "popular",
              "name"
            ],
            "type": "string"
          },
          "page": {
            "description": "Page number.",
            "minimum": 1,
            "type": "integer"
          },
          "per_page": {
            "description": "Results per page (default 24).",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "tags": {
            "description": "Tag slugs — ALL must match (AND).",
            "type": "array"
          },
          "temperature": {
            "description": "Color temperature.",
            "enum": [
              "warm",
              "cool",
              "neutral"
            ],
            "type": "string"
          },
          "tone": {
            "description": "Overall tone.",
            "enum": [
              "light",
              "dark",
              "mixed"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "search_palettes"
    }
  ]
}

What the leaf hashes

{"body":"4b9e7685da892c194f2edaf090adec7ab65e8984cab0e2f045850faac0d432a9","id":305360,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793056412117667,"prev":null,"subject":"6f888510-80c1-4a4b-9248-d81ae753dec7","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. 0x2ba028038877ae9e730bfd2d355d2008b6595341fefd9df6a06b6c9b0f8a890b
  2. 0x1cf9cef8b58907c3c99c8e8cb293b2a626a6f86ca7f8297aa1b7dffe67f625e4
  3. 0xbabcb7da0b7ce083cbbd4f5182f01688f9b105b7994bfb169bd28176b7005730
  4. 0x7c96fc307bc902921ae1839cf5f8802771f57073a9ca9cfb4a69b6f1b68ef7be
  5. 0x9fc5ab65c1fa071e7fd1edbea3ba562bcee865f857b3f47822b0608f16476775
  6. 0xd057bf9393f78339bbea3d9620125572a493f29f15a6d40418a64a2e1ddf851d
  7. 0x3417ed0c1130a73d2b34af07cea33f1870bb548cf9f4e68a022857ef79e9e84c
  8. 0x2a2a2f10e1e0d712fd6848b94168f22112f29a18d50d4e53e5b1461a7f4d774b
  9. 0x4b56b343294e474466fb86e0e07b807748a7fd58f1bcc4c4d158844fcd53480b
  10. 0x1849abdab9b306191ae2d658697793afbb80090da1dc820f6ee0aacd338f8578
  11. 0x9c1d7a3e2abd583b1dff8bd25a4baee5982930fe95a180a1a8b26c3f7e8c93f2
  12. 0xe8bf822fd6c66b233e3e13e08596e8fb41c1ed9b85be0e4d50cfc9b740c0e206
  13. 0xb87e8b32cda179c9e632e227bbd8a6d1f6f61d9d81bb92dbd4dd835d2b3b5caa
  14. 0x683955a5b2250ad50568d022a6580d8739b6aff1356779d72a773b088e7c289c
  15. 0x610738e0c43687aded83c613c73de8b5226c73c375858a167436461c522ea213
  16. 0x06d71bfa7d8b41d62c8836efc2c601e1cc3772d9453596b2ae4950887f3310ca
  17. 0x8c756542e482157df0c36464d75c937b845e4423dbbcfad08f0cf8d5a16b9a13
  18. 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON