Back to Discover

jinero-mcp

connector

jinero-online

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

View on GitHub
0 starsSynced Aug 10, 2026

Install to Claude Code

/plugin marketplace add jinero-online/jinero-mcp

README

Jinero MCP Server

online.jinero/jinero — a hosted, remote Model Context Protocol server that gives AI agents (Claude, Cursor, Cline, Zed, Gemini CLI…) the design tools of jinero.online: 22 read-only tools for fonts (search, CSS, files, recognition from an image), color math (WCAG contrast, shades, naming, palette extraction), curated palettes, code minify/convert/detect, SVG optimization and SCSS helpers.

Connect

Claude Code (CLI):

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

Claude Desktop / Cursor / Cline (config):

{
  "mcpServers": {
    "jinero": { "type": "http", "url": "https://jinero.online/mcp" }
  }
}

Older stdio-only clients can bridge with npx mcp-remote https://jinero.online/mcp.

Trust & safety

Every tool declares MCP annotations, verifiable in tools/list:

  • all 22 tools are readOnlyHint: true and idempotentHint: true;
  • submitted code/SVG is parsed and transformed as text — never executed, never stored;
  • uploaded images (font recognition, color extraction) are processed in memory and deleted immediately;
  • only three tools fetch a user-supplied URL (recognize_font, extract_colors, svg_to_datauri) — marked openWorldHint: true, with SSRF-guarded, size-capped fetches.

Try it without a client

# List all tools
curl -s -X POST https://jinero.online/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

More runnable examples in examples/.

Tool reference

Generated from the live tools/list of the current server version.

Fonts

search_fonts

Search the free font catalog by name, category, style tags, language coverage, variable/monospace flags and style count. Returns a paginated list of families.

read-only · idempotent

ParameterTypeDescription
namestringFuzzy name match.
categorystringComma-separated categories, e.g. 'serif,sans'.
langsstringComma-separated language codes, e.g. 'latin,cyrillic' — ALL must be supported.
stylestringComma-separated style tags, e.g. 'handwriting,condensed' — ALL must match. One of: handwriting, script, display, slab, rounded, condensed, expanded, stencil, pixel, blackletter, outline, retro.
variablebooleanOnly variable fonts.
monospacebooleanOnly monospace fonts.
styles_minintegerMinimum number of styles.
styles_maxintegerMaximum number of styles.
orderstring: likes | downloads | views | name | created_atSort field, default 'likes'.
sortstring: asc | descSort direction.
per_pageintegerResults per page (default 24).
pageintegerPage number.

recognize_font

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. Fast (~200 ms).

read-only · idempotent · fetches external URLs

ParameterTypeDescription
image_urlstringPublic 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_base64stringBase64-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.
top_kintegerNumber of font matches to return (3–20, default 8).

get_font

Get full metadata for one font family by slug: styles, weights, axes, license, subsets and download/CSS URLs.

read-only · idempotent

ParameterTypeDescription
slug (required)stringFamily slug, e.g. 'inter', 'playfair-display'.

get_font_files

List every font file (weight/italic/format + direct woff2/ttf URL) for a family — handy for building custom @font-face rules.

read-only · idempotent

ParameterTypeDescription
slug (required)stringFamily slug, e.g. 'inter'.

get_fonts_css

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.

read-only · idempotent

ParameterTypeDescription
family (required)stringFamily spec, e.g. "inter:wght@400,700" or "inter:wght@300..900".
displaystring: swap | auto | block | fallback | optionalfont-display value (default swap).

get_font_download_url

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.

read-only · idempotent

ParameterTypeDescription
slug (required)stringFamily slug, e.g. 'inter'.

Colors

check_contrast

Check the WCAG contrast ratio between a foreground and background color, with AA/AAA pass/fail for normal and large text.

read-only · idempotent

ParameterTypeDescription
fg (required)stringForeground color (hex, rgb(), or hsl()).
bg (required)stringBackground color (hex, rgb(), or hsl()).

get_color_shades

Generate tints and shades for a base color (lighter/darker steps) with hex values.

read-only · idempotent

ParameterTypeDescription
hex (required)stringBase color in hex, rgb(), or hsl().
stepstring: 5 | 10 | 20 | 25Step percentage (default 10).
limitintegerCap on tints/shades (default fills to ~100%).

name_color

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.

read-only · idempotent

ParameterTypeDescription
hex (required)stringA hex color, or several comma-separated (e.g. "#3b82f6,#000,#ff7f50"). Up to 100 at once.

extract_colors

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.

read-only · idempotent · fetches external URLs

ParameterTypeDescription
image_urlstringPublic URL of the image to pull the palette from. Provide either this or image_base64.
image_base64stringBase64-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.
countintegerHow many colors to return (2–16, default 8).
modestringPalette mode: "balanced" (default), "vibrant", or "muted".

Palettes

search_palettes

Search the color-palette catalog by name, tone, temperature, mood, harmony, exact color count and tags. Returns a paginated list.

read-only · idempotent

ParameterTypeDescription
namestringFuzzy name match.
tonestring: light | dark | mixedOverall tone.
temperaturestring: warm | cool | neutralColor temperature.
moodstringe.g. pastel, muted, earthy, vibrant, monochrome.
harmonystringe.g. analogous, complementary, triadic, monochromatic, split-complementary, tetradic.
color_countintegerExact number of colors.
tagsarrayTag slugs — ALL must match (AND).
orderstring: newest | popular | nameSort order (default newest).
per_pageintegerResults per page (default 24).
pageintegerPage number.

get_palette

Get one color palette by id: its colors (hex), name/derived title, mood, harmony, temperature and tags.

read-only · idempotent

ParameterTypeDescription
id (required)integerPalette id.

Code

minify_code

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.

read-only · idempotent

ParameterTypeDescription
code (required)stringSource code to transform.
type (required)string: js | css | html | svg | json | xml | autoSource language, or 'auto' to sniff.
modestring: minify | beautifyDefault minify.
keep_licensebooleanPreserve /*! ... */ license comments when minifying.

detect_code

Detect the language/format of a code snippet. Static analysis only — the snippet is never executed and never stored.

read-only · idempotent

ParameterTypeDescription
code (required)stringSnippet to inspect. Max 200,000 chars.

convert_code

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.

read-only · idempotent

ParameterTypeDescription
code (required)stringSource code to convert.
from (required)stringSource format id (see list_code_converters).
to (required)stringTarget format id.
optionsobjectPer-converter options (see optionsSchema in list_code_converters).

list_code_converters

List available code converters with their from/to ids and per-converter option schemas.

read-only · idempotent

No parameters.

SVG

optimize_svg

Optimize/clean SVG markup (SVGO). Pure markup transformation — nothing is executed or stored. Returns minified SVG plus before/after sizes.

read-only · idempotent

ParameterTypeDescription
svg (required)stringSVG source. Max 500,000 chars.
presetstring: safe | balanced | aggressiveOptimization preset (default balanced).

svg_to_datauri

Encode an SVG (or fetched image) as a CSS-ready data: URI. Provide either raw svg or a url.

read-only · idempotent · fetches external URLs

ParameterTypeDescription
svgstringRaw SVG markup. Mutually exclusive with url.
urlstringPublic image URL the server will fetch.
encodingstring: utf8 | base64Defaults: utf8 for SVG, base64 for raster.
quotesstring: single | doubleQuote style for the data URI (default double).

list_svg_presets

List the available SVG optimization presets and what each one does.

read-only · idempotent

No parameters.

Dev

list_scss_mixins

List the SCSS mixin catalog (id, title, short description), optionally filtered by group or search.

read-only · idempotent

ParameterTypeDescription
groupstringe.g. Bootstrap, Project, Pattern, Placeholder.
searchstringFuzzy substring across id/title/short/desc.
fieldsstring: summary | fullDetail level (default summary).

get_scss_mixin

Get one SCSS mixin by id: full source, parameters and usage example.

read-only · idempotent

ParameterTypeDescription
id (required)stringMixin id (kebab-case), e.g. 'centerer', 'media-breakpoint-up'.

generate_clamp

Calculate a fluid CSS clamp() expression for responsive sizing between two viewport widths. Pure calculation — returns a CSS snippet, writes and stores nothing.

read-only · idempotent

ParameterTypeDescription
min_fs (required)numberMinimum size in px.
max_fs (required)numberMaximum size in px.
min_vwnumberViewport width at min_fs (default 320).
max_vwnumberViewport width at max_fs (default 1440).
unitstring: px | rem | bothOutput unit (default rem).
rootnumberRoot font-size in px for rem conversion (default 16).

About

Built and operated by jinero.online — free design tools for fonts, icons, colors and code. The MCP server is a thin wrapper over the same public REST API: one contract, identical behavior.

This repository holds the public documentation and examples for the server. Issues and feature requests for the tools are welcome here.

Rendered live from jinero-online/jinero-mcp's GitHub README — not stored, always reflects the source repo.

1 Install Method

NameDescriptionCategorySource
streamable-http remoteHosted streamable-http endpointmcp-serverhttps://jinero.online/mcp

0 Comments

Login required
Log in to post a comment or update on this repo.

No comments yet — be the first to share an update.