Jinero
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
AI-agent design tools: fonts, font recognition, palettes, color naming, contrast, code, SVG, CSS.
| Author | online.jinero |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 1718 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Jinero": {
"url": "https://jinero.online/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (22)
search_fontsread-onlySearch the free font catalog by name, category, style tags, language coverage, variable/monospace flags and style count. Returns a paginated list of families.
Parameters:
name— string — Fuzzy name match.page— integer — Page number.sort— string — Sort direction.langs— string — Comma-separated language codes, e.g. 'latin,cyrillic' — ALL must be supported.order— string — Sort field, default 'likes'.style— string — 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.category— string — Comma-separated categories, e.g. 'serif,sans'.per_page— integer — Results per page (default 24).variable— boolean — Only variable fonts.monospace— boolean — Only monospace fonts.styles_max— integer — Maximum number of styles.styles_min— integer — Minimum number of styles.
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
recognize_fontread-onlyIdentify 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).
Parameters:
top_k— integer — Number of font matches to return (3–20, default 8).image_url— string — 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.image_base64— string — 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.
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
get_fontread-onlyGet full metadata for one font family by slug: styles, weights, axes, license, subsets and download/CSS URLs.
Parameters:
slug(required) — string — Family slug, e.g. 'inter', 'playfair-display'.
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
get_font_filesread-onlyList every font file (weight/italic/format + direct woff2/ttf URL) for a family — handy for building custom @font-face rules.
Parameters:
slug(required) — string — Family slug, e.g. 'inter'.
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
get_fonts_cssread-onlyGenerate ready-to-use @font-face CSS for a family spec (Google-Fonts-compatible), e.g. "inter:wght@400,700" or a variable range "inter:[email protected]". Returns CSS text.
Parameters:
family(required) — string — Family spec, e.g. "inter:wght@400,700" or "inter:[email protected]".display— string — font-display value (default swap).
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
get_font_download_urlread-onlyReturn 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.
Parameters:
slug(required) — string — Family slug, e.g. 'inter'.
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
check_contrastread-onlyCheck the WCAG contrast ratio between a foreground and background color, with AA/AAA pass/fail for normal and large text.
Parameters:
fg(required) — string — Foreground color (hex, rgb(), or hsl()).bg(required) — string — Background color (hex, rgb(), or hsl()).
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
get_color_shadesread-onlyGenerate tints and shades for a base color (lighter/darker steps) with hex values.
Parameters:
hex(required) — string — Base color in hex, rgb(), or hsl().step— string — Step percentage (default 10).limit— integer — Cap on tints/shades (default fills to ~100%).
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
name_colorread-onlyGet 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.
Parameters:
hex(required) — string — A hex color, or several comma-separated (e.g. "#3b82f6,#000,#ff7f50"). Up to 100 at once.
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
extract_colorsread-onlyExtract 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.
Parameters:
mode— string — Palette mode: "balanced" (default), "vibrant", or "muted".count— integer — How many colors to return (2–16, default 8).image_url— string — Public URL of the image to pull the palette from. Provide either this or image_base64.image_base64— string — 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.
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
search_palettesread-onlySearch the color-palette catalog by name, tone, temperature, mood, harmony, exact color count and tags. Returns a paginated list.
Parameters:
mood— string — e.g. pastel, muted, earthy, vibrant, monochrome.name— string — Fuzzy name match.page— integer — Page number.tags— array — Tag slugs — ALL must match (AND).tone— string — Overall tone.order— string — Sort order (default newest).harmony— string — e.g. analogous, complementary, triadic, monochromatic, split-complementary, tetradic.per_page— integer — Results per page (default 24).color_count— integer — Exact number of colors.temperature— string — Color temperature.
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
get_paletteread-onlyGet one color palette by id: its colors (hex), name/derived title, mood, harmony, temperature and tags.
Parameters:
id(required) — integer — Palette id.
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
minify_coderead-onlyMinify 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.
Parameters:
code(required) — string — Source code to transform.type(required) — string — Source language, or 'auto' to sniff.mode— string — Default minify.keep_license— boolean — Preserve /*! ... */ license comments when minifying.
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
detect_coderead-onlyDetect the language/format of a code snippet. Static analysis only — the snippet is never executed and never stored.
Parameters:
code(required) — string — Snippet to inspect. Max 200,000 chars.
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
convert_coderead-onlyConvert 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.
Parameters:
code(required) — string — Source code to convert.from(required) — string — Source format id (see list_code_converters).to(required) — string — Target format id.options— object — Per-converter options (see optionsSchema in list_code_converters).
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
list_code_convertersread-onlyList available code converters with their from/to ids and per-converter option schemas.
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
optimize_svgread-onlyOptimize/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.
Parameters:
svg(required) — string — SVG source. Max 500,000 chars.preset— string — Optimization preset (default balanced).
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
svg_to_datauriread-onlyEncode 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.
Parameters:
svg— string — Raw SVG markup. Mutually exclusive with url.url— string — Public image URL the server will fetch.quotes— string — Quote style for the data URI (default double).encoding— string — Defaults: utf8 for SVG, base64 for raster.
Hints: read-only yes · destructive not declared · idempotent yes · open-world yes
list_svg_presetsread-onlyList the available SVG optimization presets and what each one does.
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
list_scss_mixinsread-onlyList the SCSS mixin catalog (id, title, short description), optionally filtered by group or search.
Parameters:
group— string — e.g. Bootstrap, Project, Pattern, Placeholder.fields— string — Detail level (default summary).search— string — Fuzzy substring across id/title/short/desc.
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
get_scss_mixinread-onlyGet one SCSS mixin by id: full source, parameters and usage example.
Parameters:
id(required) — string — Mixin id (kebab-case), e.g. 'centerer', 'media-breakpoint-up'.
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
generate_clampread-onlyCalculate a fluid CSS clamp() expression for responsive sizing between two viewport widths. Pure calculation — returns a CSS snippet, writes and stores nothing.
Parameters:
min_fs(required) — number — Minimum size in px.max_fs(required) — number — Maximum size in px.root— number — Root font-size in px for rem conversion (default 16).unit— string — Output unit (default rem).max_vw— number — Viewport width at max_fs (default 1440).min_vw— number — Viewport width at min_fs (default 320).
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.