Skip to content

Jinero

by jinero.online · remote · no sign-in to list tools · v1.4.0 · published by online.jinero

AI-agent design tools: fonts, font recognition, palettes, color naming, contrast, code, SVG, CSS.

Final · 1Changes · 10

22 tools: 1 do something that can't be undone, 10 change things and 11 only read.

Scanned Oct 21, 2026

6 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http jinero https://jinero.online/mcp

Findings

Matches of fixed checks, with the text they matched.

6 warn
  • The server marks "get_fonts_css" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "get_fonts_css" says "get": a word for reading.

    What this check looks for
  • The server marks "get_color_shades" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "get_color_shades" says "get": a word for reading.

    What this check looks for
  • The server marks "minify_code" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.

    What this check looks for
  • The server marks "detect_code" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.

    What this check looks for
  • The server marks "convert_code" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "convert_code" says "convert": a word for a change.

    What this check looks for
  • The server marks "generate_clamp" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "generate_clamp" says "generate": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

22 tools

Can't be undone 1Claude Code: ask
  • convert_codeConvert code between text formats (e.g.1 finding

    Why it is in this group

    • The name "convert_code" says "convert": a word for a change.
    • The input addresses people (input.to): what it sends cannot be taken back.
    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "convert_code" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "convert_code" says "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
Changes things 10Claude Code: ask
  • check_contrastCheck the WCAG contrast ratio between a foreground and background color, with AA/AAA pass/fail for normal and large text.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Check the WCAG contrast ratio between a foreground and background color, with AA/AAA pass/fail for normal and large text.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • detect_codeDetect the language/format of a code snippet.1 finding

    Why it is in this group

    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "detect_code" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.

      What this check looks for
    Description, as the server wrote it
    Detect the language/format of a code snippet. Static analysis only — the snippet is never executed and never stored.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • extract_colorsExtract a dominant-color palette from an image.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
  • generate_clampCalculate a fluid CSS clamp() expression for responsive sizing between two viewport widths.1 finding

    Why it is in this group

    • The name "generate_clamp" says "generate": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "generate_clamp" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "generate_clamp" says "generate": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Calculate a fluid CSS clamp() expression for responsive sizing between two viewport widths. Pure calculation — returns a CSS snippet, writes and stores nothing.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • get_color_shadesGenerate tints and shades for a base color (lighter/darker steps) with hex values.1 finding

    Why it is in this group

    • The name "get_color_shades" says "get": a word for reading.
    • The description's first verb is "generate": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "get_color_shades" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "get_color_shades" says "get": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Generate tints and shades for a base color (lighter/darker steps) with hex values.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • get_fonts_cssGenerate ready-to-use @font-face CSS for a family spec (Google-Fonts-compatible), e.g.1 finding

    Why it is in this group

    • The name "get_fonts_css" says "get": a word for reading.
    • The description's first verb is "generate": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "get_fonts_css" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "get_fonts_css" says "get": a word for reading.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • minify_codeMinify or beautify JS, CSS, HTML, SVG, JSON or XML text.1 finding

    Why it is in this group

    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "minify_code" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The input takes a statement or command to run (input.code), which can change anything it can reach.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • optimize_svgOptimize/clean SVG markup (SVGO).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Optimize/clean SVG markup (SVGO). Pure markup transformation — nothing is executed or stored. Returns minified SVG plus before/after sizes. Rate limit: 30 calls/min per IP.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • recognize_fontIdentify which font is used in an image.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
  • svg_to_datauriEncode an SVG (or fetched image) as a CSS-ready data: URI.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Encode an SVG (or fetched image) as a CSS-ready data: URI. Provide either raw svg or a url. Rate limit: 30 calls/min per IP.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: true
Only reads 11Claude Code: allow
  • get_fontGet full metadata for one font family by slug: styles, weights, axes, license, subsets and download/CSS URLs.No findings

    Why it is in this group

    • The name "get_font" says "get": a word for reading.
    Description, as the server wrote it
    Get full metadata for one font family by slug: styles, weights, axes, license, subsets and download/CSS URLs.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • get_font_download_urlReturn the direct ZIP download URL for a font family (all styles + a ready fonts.css).No findings

    Why it is in this group

    • The name "get_font_download_url" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • get_font_filesList every font file (weight/italic/format + direct woff2/ttf URL) for a family — handy for building custom @font-face rules.No findings

    Why it is in this group

    • The name "get_font_files" says "get": a word for reading.
    Description, as the server wrote it
    List every font file (weight/italic/format + direct woff2/ttf URL) for a family — handy for building custom @font-face rules.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • get_paletteGet one color palette by id: its colors (hex), name/derived title, mood, harmony, temperature and tags.No findings

    Why it is in this group

    • The name "get_palette" says "get": a word for reading.
    Description, as the server wrote it
    Get one color palette by id: its colors (hex), name/derived title, mood, harmony, temperature and tags.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • get_scss_mixinGet one SCSS mixin by id: full source, parameters and usage example.No findings

    Why it is in this group

    • The name "get_scss_mixin" says "get": a word for reading.
    Description, as the server wrote it
    Get one SCSS mixin by id: full source, parameters and usage example.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • list_code_convertersList available code converters with their from/to ids and per-converter option schemas.No findings

    Why it is in this group

    • The name "list_code_converters" says "list": a word for reading.
    Description, as the server wrote it
    List available code converters with their from/to ids and per-converter option schemas.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • list_scss_mixinsList the SCSS mixin catalog (id, title, short description), optionally filtered by group or search.No findings

    Why it is in this group

    • The name "list_scss_mixins" says "list": a word for reading.
    Description, as the server wrote it
    List the SCSS mixin catalog (id, title, short description), optionally filtered by group or search.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • list_svg_presetsList the available SVG optimization presets and what each one does.No findings

    Why it is in this group

    • The name "list_svg_presets" says "list": a word for reading.
    Description, as the server wrote it
    List the available SVG optimization presets and what each one does.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • name_colorGet the closest human-readable name for one or more colors.No findings

    Why it is in this group

    • The description's first verb is "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • search_fontsSearch the free font catalog by name, category, style tags, language coverage, variable/monospace flags and style count.No findings

    Why it is in this group

    • The name "search_fonts" says "search": a word for reading.
    Description, as the server wrote it
    Search the free font catalog by name, category, style tags, language coverage, variable/monospace flags and style count. Returns a paginated list of families.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • search_palettesSearch the color-palette catalog by name, tone, temperature, mood, harmony, exact color count and tags.No findings

    Why it is in this group

    • The name "search_palettes" says "search": a word for reading.
    Description, as the server wrote it
    Search the color-palette catalog by name, tone, temperature, mood, harmony, exact color count and tags. Returns a paginated list.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.4.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http jinero https://jinero.online/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__jinero__search_fonts",
      "mcp__jinero__get_font",
      "mcp__jinero__get_font_files",
      "mcp__jinero__get_font_download_url",
      "mcp__jinero__name_color",
      "mcp__jinero__search_palettes",
      "mcp__jinero__get_palette",
      "mcp__jinero__list_code_converters",
      "mcp__jinero__list_svg_presets",
      "mcp__jinero__list_scss_mixins",
      "mcp__jinero__get_scss_mixin"
    ],
    "ask": [
      "mcp__jinero__recognize_font",
      "mcp__jinero__get_fonts_css",
      "mcp__jinero__check_contrast",
      "mcp__jinero__get_color_shades",
      "mcp__jinero__extract_colors",
      "mcp__jinero__minify_code",
      "mcp__jinero__detect_code",
      "mcp__jinero__convert_code",
      "mcp__jinero__optimize_svg",
      "mcp__jinero__svg_to_datauri",
      "mcp__jinero__generate_clamp"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as jinero. Review it before you use it.