AI-agent design tools: fonts, font recognition, palettes, color naming, contrast, code, SVG, CSS.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
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.
https://jinero.online/mcp (Streamable HTTP)online.jinero/jinero in the official MCP registry/.well-known/mcp/server.jsonClaude Code (CLI):
Claude Desktop / Cursor / Cline (config):
Older stdio-only clients can bridge with npx mcp-remote https://jinero.online/mcp.
Every tool declares MCP annotations, verifiable in tools/list:
readOnlyHint: true and idempotentHint: true;recognize_font, extract_colors, svg_to_datauri) β marked openWorldHint: true, with SSRF-guarded, size-capped fetches.A note for automated risk scanners: some directories classify
minify_code,convert_code,generate_clamporrecognize_fontas "write" tools based on their verbs. They are pure functions β text/math in, text out; nothing on the server or the caller's side is modified. The authoritative signal is thereadOnlyHint: trueannotation each of the 22 tools declares intools/list(snapshotted intools.json).
The whole endpoint is capped at 60 requests/min per IP. On top of that, compute-heavy tools enforce their own per-tool per-IP caps (server v1.4.0+), returned as a clean tool error with a retry hint when exceeded β each cap is also stated in the tool's description:
| Tool | Cap | Why |
|---|---|---|
recognize_font | 5/min | CNN model inference |
extract_colors | 10/min | image analysis subprocess |
minify_code, convert_code, optimize_svg | 30/min | parser subprocesses |
svg_to_datauri | 30/min | may fetch external URLs |
tests/tools.test.mjs exercises every declared tool against the live endpoint (zero dependencies, Node 20+):
CI runs the suite on every push and weekly (workflow), and tools.json is a committed snapshot of the live tools/list β schemas and annotations included (npm run update-snapshot to refresh).
More runnable examples in examples/.
Generated from the live tools/list of the current server version.
search_fontsSearch 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
| Parameter | Type | Description |
|---|---|---|
name | string | Fuzzy name match. |
category | string | Comma-separated categories, e.g. 'serif,sans'. |
langs | string | Comma-separated language codes, e.g. 'latin,cyrillic' β ALL must be supported. |
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. |
variable | boolean | Only variable fonts. |
monospace | boolean | Only monospace fonts. |
styles_min | integer | Minimum number of styles. |
styles_max | integer | Maximum number of styles. |
order | string: likes | downloads | views | name | created_at | Sort field, default 'likes'. |
sort | string: asc | desc | Sort direction. |
per_page | integer | Results per page (default 24). |
page | integer | Page number. |
recognize_fontIdentify 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
| Parameter | Type | Description |
|---|---|---|
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. |
top_k | integer | Number of font matches to return (3β20, default 8). |
get_fontGet full metadata for one font family by slug: styles, weights, axes, license, subsets and download/CSS URLs.
read-only Β· idempotent
| Parameter | Type | Description |
|---|---|---|
slug (required) | string | Family slug, e.g. 'inter', 'playfair-display'. |
get_font_filesList every font file (weight/italic/format + direct woff2/ttf URL) for a family β handy for building custom @font-face rules.
read-only Β· idempotent
| Parameter | Type | Description |
|---|---|---|
slug (required) | string | Family slug, e.g. 'inter'. |
get_fonts_cssGenerate 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
| Parameter | Type | Description |
|---|---|---|
family (required) | string | Family spec, e.g. "inter:wght@400,700" or "inter:wght@300..900". |
display | string: swap | auto | block | fallback | optional | font-display value (default swap). |
get_font_download_urlReturn 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
| Parameter | Type | Description |
|---|---|---|
slug (required) | string | Family slug, e.g. 'inter'. |
check_contrastCheck the WCAG contrast ratio between a foreground and background color, with AA/AAA pass/fail for normal and large text.
read-only Β· idempotent
| Parameter | Type | Description |
|---|---|---|
fg (required) | string | Foreground color (hex, rgb(), or hsl()). |
bg (required) | string | Background color (hex, rgb(), or hsl()). |
get_color_shadesGenerate tints and shades for a base color (lighter/darker steps) with hex values.
read-only Β· idempotent
| Parameter | Type | Description |
|---|---|---|
hex (required) | string | Base color in hex, rgb(), or hsl(). |
step | string: 5 | 10 | 20 | 25 | Step percentage (default 10). |
limit | integer | Cap on tints/shades (default fills to ~100%). |
name_colorGet 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
| Parameter | Type | Description |
|---|---|---|
hex (required) | string | A hex color, or several comma-separated (e.g. "#3b82f6,#000,#ff7f50"). Up to 100 at once. |
extract_colorsExtract 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
| Parameter | Type | Description |
|---|---|---|
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. |
count | integer | How many colors to return (2β16, default 8). |
mode | string | Palette mode: "balanced" (default), "vibrant", or "muted". |
search_palettesSearch the color-palette catalog by name, tone, temperature, mood, harmony, exact color count and tags. Returns a paginated list.
read-only Β· idempotent
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/jinero-3)<a href="https://allmcps.com/mcp/jinero-3"><img src="https://allmcps.com/api/badge/jinero-3?style=directory" alt="Jinero on AllMCPs" /></a>