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.
22 tools: 1 do something that can't be undone, 10 change things and 11 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone1Claude Code: ask: see these tools
- Changes things10Claude Code: ask: see these tools
- Only reads11Claude Code: allow: see these tools
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/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnget_fonts_css
The server marks "get_fonts_css" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "get_fonts_css" says "get": a word for reading.
- Warnget_color_shades
The server marks "get_color_shades" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "get_color_shades" says "get": a word for reading.
- Warnminify_code
The server marks "minify_code" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched 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.
- Warndetect_code
The server marks "detect_code" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched 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.
- Warnconvert_code
The server marks "convert_code" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "convert_code" says "convert": a word for a change.
- Warngenerate_clamp
The server marks "generate_clamp" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "generate_clamp" says "generate": a word for a change.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "convert_code" says "convert": a word for a change.
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".
What this check looks forMatched 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.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "generate_clamp" says "generate": a word for a change.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "get_color_shades" says "get": a word for reading.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "get_fonts_css" says "get": a word for reading.
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".
What this check looks forMatched 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.
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/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .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.