Хостований віддалений MCP-сервер, що дає вашому AI-агенту ті самі дизайн-інструменти, якими люди користуються на jinero.online: 22 інструменти — шрифти (пошук, CSS, файли, розпізнавання за зображенням), розрахунки кольорів (контраст, відтінки, назви, вилучення), добірні палітри, мініфікація, конвертація й визначення мови коду, оптимізація SVG і помічники для SCSS. Кожен інструмент — тонка обгортка над публічним REST API: один контракт, однакова поведінка. Опубліковано в офіційному реєстрі MCP як online.jinero/jinero; маніфест — за адресою /.well-known/mcp/server.json.

# Remote endpoint (Streamable HTTP)
https://jinero.online/mcp

# Peek at the tool list without any client:
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"}'

Працює з будь-яким MCP-клієнтом, що підтримує віддалені сервери (Streamable HTTP): Claude Code, Claude Desktop, Cursor, Cline, Zed, Gemini CLI та іншими. Старіші клієнти, що підтримують лише stdio, можна підключити через міст npx mcp-remote https://jinero.online/mcp.

# Claude Code (CLI)
claude mcp add --transport http jinero https://jinero.online/mcp
// Claude Desktop / Cursor / Cline — mcpServers config
{
  "mcpServers": {
    "jinero": {
      "type": "http",
      "url": "https://jinero.online/mcp"
    }
  }
}

Кожен інструмент оголошує MCP-анотації, тож клієнти й сканери безпеки можуть перевірити його поведінку, а не вгадувати: усі 22 інструменти — лише для читання й ідемпотентні. Надісланий код і SVG розбираються й перетворюються як текст — ніколи не виконуються й не зберігаються. Завантажені зображення (розпізнавання шрифтів, вилучення кольорів) обробляються в пам'яті й одразу видаляються. Лише три інструменти завантажують URL від користувача (recognize_font, extract_colors, svg_to_datauri) — вони позначені як open-world, а завантаження захищені від SSRF (лише публічні http(s), з обмеженням розміру). Анонімно, без API-ключа, загальний ліміт — 60 запитів/хв з одного IP; ресурсомісткі інструменти мають власні жорсткіші ліміти (recognize_font — 5/хв, extract_colors — 10/хв, перетворення коду/SVG — 30/хв), зазначені в описі кожного інструмента.

// Annotations served in tools/list for every tool
{
  "readOnlyHint": true,
  "idempotentHint": true,
  "openWorldHint": false   // true only on the 3 URL-fetching tools
}

Пошук у каталозі безкоштовних шрифтів за назвою, категорією, тегами стилю, підтримкою мов, ознаками variable/monospace і кількістю накреслень. Повертає посторінковий список родин з URL для попереднього перегляду й метаданими кожного накреслення.

TOOL search_fonts лише читання ідемпотентний
ПараметрТипОпис
name string Нечіткий пошук за назвою.
category string Категорії через кому, напр. 'serif,sans'.
langs string Коди мов через кому, напр. 'latin,cyrillic' — шрифт має підтримувати ВСІ.
style string Теги стилю через кому (handwriting, script, display, slab, rounded, condensed, expanded, stencil, pixel, blackletter, outline, retro) — мають збігатися ВСІ.
variable boolean Лише варіативні шрифти.
monospace boolean Лише моноширинні шрифти.
styles_min / styles_max integer Межі кількості накреслень.
order string likes (за замовчуванням) · downloads · views · name · created_at.
sort string asc · desc.
per_page / page integer Пагінація (per_page 1–100, за замовчуванням 24).
// tools/call arguments
{ "name": "inter", "category": "sans", "per_page": 2 }
Приклад відповіді
{
  "current_page": 1,
  "data": [
    {
      "name": "Inter Tight",
      "slug": "inter-tight",
      "category": "sans",
      "variable": true,
      "monospace": false,
      "langs": ["latin", "cyrillic", "greek"],
      "style_tags": [],
      "styles_count": 18,
      "downloads": 2800,
      "likes_count": 1392,
      "regular_url": "https://jinero.online/storage/fonts/inter-tight/inter-tight-regular.woff2",
      "styles": [ { "weight": 100, "italic": false, "name": "Thin" }, "…" ]
    }
  ],
  "per_page": 2,
  "total": 4
}

Визначає, який шрифт використано на зображенні. Працює на нашій власній CNN-моделі ембедингів, навченій на каталозі jinero: вона порівнює шрифти за візуальною формою, тож не потребує ні OCR, ні читабельного тексту (латиниця й кирилиця). Надішліть щільно обрізаний фрагмент з одним рядком тексту як публічний image_url або як image_base64 (сирий base64 / data URI — ідеально для локального скриншота, який агент щойно зробив). Зображення обробляється в пам'яті й одразу видаляється. ~200 мс на виклик.

TOOL recognize_font лише читання ідемпотентний завантажує зовнішні URL
ПараметрТипОпис
image_url string Публічний http(s) URL зображення. Передайте його або image_base64.
image_base64 string Зображення в Base64 (сирий base64 або URI data:image/…;base64), до 8 МБ після декодування. Передайте його або image_url.
top_k integer Кількість збігів шрифтів у відповіді (3–20, за замовчуванням 8).
// tools/call arguments — URL variant
{ "image_url": "https://example.com/heading-crop.png", "top_k": 5 }

// …or send a local screenshot directly
{ "image_base64": "data:image/png;base64,iVBORw0KGgo…", "top_k": 5 }
Приклад відповіді
{
  "matches": [
    { "slug": "lunasima", "name": "Lunasima", "category": "sans", "score": 0.8331,
      "family_url": "https://jinero.online/fonts/lunasima" },
    { "slug": "tajawal", "name": "Tajawal", "category": "sans", "score": 0.8213,
      "family_url": "https://jinero.online/fonts/tajawal" }
  ],
  "note": "Matched by a trained CNN embedding (visual shape), no OCR."
}

Повні метадані родини шрифтів за slug: дизайнер, ліцензія, категорія, підтримка мов, осі варіативності, усі накреслення, а також готові URL для завантаження, CSS і файлів.

TOOL get_font лише читання ідемпотентний
ПараметрТипОпис
slug string Slug родини, напр. 'inter', 'playfair-display'.
// tools/call arguments
{ "slug": "inter" }
Приклад відповіді
{
  "name": "Inter",
  "slug": "inter",
  "category": "sans",
  "designer": "Rasmus Andersson",
  "license": "OFL",
  "license_url": "https://openfontlicense.org/open-font-license-official-text/",
  "variable": true,
  "monospace": false,
  "langs": ["latin", "cyrillic", "greek", "vietnamese"],
  "styles_count": 18,
  "download_url": "https://jinero.online/api/v1/fonts/inter/download",
  "files_url": "https://jinero.online/api/v1/fonts/inter/files",
  "css_url": "https://jinero.online/api/v1/fonts/css?family=inter",
  "fonts": [ { "weight": 400, "italic": false, "name": "Regular" }, "…" ]
}

Список усіх файлів шрифту родини — насиченість, ознака курсиву, назва накреслення, формат і прямий URL woff2/ttf з розміром файлу. Зручно, коли агент пише власні правила @font-face або завантажує окремі накреслення.

TOOL get_font_files лише читання ідемпотентний
ПараметрТипОпис
slug string Slug родини, напр. 'inter'.
// tools/call arguments
{ "slug": "inter" }
Приклад відповіді
{
  "family": "Inter",
  "slug": "inter",
  "files": [
    { "weight": 100, "italic": false, "style": "Thin", "format": "woff2",
      "url": "https://jinero.online/storage/fonts/inter/inter-thin.woff2", "size": 111816 },
    { "weight": 400, "italic": false, "style": "Regular", "format": "ttf",
      "url": "https://jinero.online/storage/fonts/inter/inter-regular.ttf", "size": 876576 }
  ]
}

Генерує готовий до вставлення CSS @font-face за специфікацією родини — синтаксис, сумісний із Google Fonts, зокрема діапазони варіативних шрифтів. Повертає звичайний CSS-текст, який агент може одразу додати в таблицю стилів.

TOOL get_fonts_css лише читання ідемпотентний
ПараметрТипОпис
family string Специфікація родини, напр. "inter:wght@400,700" або варіативний діапазон "inter:[email protected]".
display string Значення font-display: swap (за замовчуванням) · auto · block · fallback · optional.
// tools/call arguments
{ "family": "inter:wght@400,700", "display": "swap" }
Приклад відповіді
/* jinero.online Fonts API */

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('https://jinero.online/storage/fonts/inter/inter-regular.woff2') format('woff2');
}
/* … one block per requested weight … */

Повертає прямий URL для завантаження ZIP родини шрифтів (усі накреслення в TTF + WOFF2 і готовий fonts.css). Сам інструмент нічого не завантажує — він передає URL користувачу чи агенту.

TOOL get_font_download_url лише читання ідемпотентний
ПараметрТипОпис
slug string Slug родини, напр. 'inter'.
// tools/call arguments
{ "slug": "inter" }
Приклад відповіді
{
  "slug": "inter",
  "download_url": "https://jinero.online/api/v1/fonts/inter/download"
}

Коефіцієнт контрасту WCAG 2.1 між кольором тексту й фону з позначками відповідності AA/AAA для звичайного й великого тексту — та сама математика sRGB, що й у Lighthouse.

TOOL check_contrast лише читання ідемпотентний
ПараметрТипОпис
fg string Колір тексту: hex, rgb() або hsl().
bg string Колір фону, ті самі формати.
// tools/call arguments
{ "fg": "#1d4ed8", "bg": "#ffffff" }
Приклад відповіді
{
  "success": true,
  "ratio": 6.29,
  "ratio_string": "6.29:1",
  "aa":  { "normal": true,  "large": true },
  "aaa": { "normal": false, "large": true },
  "thresholds": { "aa_normal": 4.5, "aa_large": 3, "aaa_normal": 7, "aaa_large": 4.5 }
}

Повний набір дизайн-токенів з одного базового кольору: тони, відтінки й п'ять гармонійних схем (комплементарна, аналогова, тріадна, розщеплена комплементарна, тетрадна). Кожен колір містить рядки hex/rgb/hsl, яскравість і рекомендований колір тексту.

TOOL get_color_shades лише читання ідемпотентний
ПараметрТипОпис
hex string Базовий колір: hex, rgb() або hsl().
step string Крок у відсотках: 5, 10 (за замовчуванням), 20, 25.
limit integer Обмеження кількості тонів/відтінків (за замовчуванням — до ~100%).
// tools/call arguments
{ "hex": "#3b82f6", "step": "20", "limit": 2 }
Приклад відповіді
{
  "success": true,
  "base": { "hex": "#3b82f6", "hsl_string": "hsl(217, 91%, 60%)", "luminance": 0.2355,
            "text_color": "#000000", "contrast_on_white": 3.68 },
  "tints":  [ { "percent": 20, "hex": "#629bf8", "…": "…" } ],
  "shades": [ { "percent": 20, "hex": "#2f68c5", "…": "…" } ],
  "harmonies": { "complementary": ["…"], "analogous": ["…"], "triadic": ["…"] }
}

Найближча зрозуміла назва для одного чи кількох кольорів — найближчий за сприйняттям збіг у наборі з ~31 000 кольорів. Чудово підходить для підписів до вилучених палітр чи згенерованих зразків.

TOOL name_color лише читання ідемпотентний
ПараметрТипОпис
hex string Один hex або кілька через кому (до 100), напр. "#3b82f6,#000,#ff7f50".
// tools/call arguments
{ "hex": "#3b82f6,#000,#ff7f50" }
Приклад відповіді
{
  "success": true,
  "count": 3,
  "colors": [
    { "input": "#3B82F6", "name": "Dodger Blue", "hex": "#3E82FC", "exact": false, "distance": 10.91 },
    { "input": "#000000", "name": "Black",       "hex": "#000000", "exact": true,  "distance": 0 },
    { "input": "#FF7F50", "name": "Coral",       "hex": "#FF7F50", "exact": true,  "distance": 0 }
  ]
}

Вилучає палітру домінантних кольорів із зображення — кластеризація k-means у режимах balanced / vibrant / muted. Надішліть публічний image_url або image_base64 (сирий base64 / data URI — ідеально для локального скриншота). Зображення обробляється в пам'яті й ніколи не зберігається. Кожен колір повертається з назвою: підписана палітра за один виклик.

TOOL extract_colors лише читання ідемпотентний завантажує зовнішні URL
ПараметрТипОпис
image_url string Публічний URL зображення (завантажується на сервері, до 10 МБ, лише image/*). Передайте його або image_base64.
image_base64 string Зображення в Base64 (сирий base64 або URI data:image/…;base64), до 10 МБ після декодування. Передайте його або image_url.
count integer Скільки кольорів повернути: 2–16, за замовчуванням 8.
mode string balanced (за замовчуванням) · vibrant · muted.
// tools/call arguments — URL variant
{ "image_url": "https://example.com/cover.jpg", "count": 6, "mode": "vibrant" }

// …or send a local screenshot directly
{ "image_base64": "data:image/png;base64,iVBORw0KGgo…", "count": 6 }
Приклад відповіді
{
  "success": true,
  "mode": "vibrant",
  "colors": [
    { "hex": "#f9f9f9", "percent": 90.8, "name": "White", "name_exact": false,
      "rgb": { "r": 249, "g": 249, "b": 249 }, "hsl": { "h": 0, "s": 0, "l": 97.6 } },
    { "hex": "#1d1c1b", "percent": 5.8, "name": "Cod Gray", "name_exact": false, "…": "…" }
  ]
}

Пошук у каталозі добірних колірних палітр за назвою, тоном, температурою, настроєм, гармонією, точною кількістю кольорів і тегами. Повертає посторінковий список — кожна палітра з hex-кольорами й класифікацією.

TOOL search_palettes лише читання ідемпотентний
ПараметрТипОпис
name string Нечіткий пошук за назвою.
tone string light · dark · mixed.
temperature string warm · cool · neutral.
mood string напр. pastel, muted, earthy, vibrant, monochrome.
harmony string напр. analogous, complementary, triadic, monochromatic.
color_count integer Точна кількість кольорів (2–10).
tags array Slug-и тегів — мають збігатися ВСІ.
order string newest (за замовчуванням) · popular · name.
per_page / page integer Пагінація (per_page 1–100, за замовчуванням 24).
// tools/call arguments
{ "tone": "light", "mood": "pastel", "per_page": 1 }
Приклад відповіді
{
  "current_page": 1,
  "data": [
    {
      "id": 6267,
      "name": "5-Color Darling Bud Palette",
      "colors": ["#ffffff", "#e7b7fb", "#b0cbfc", "#f98bf7", "#f7cefc"],
      "color_count": 5,
      "tone": "mixed",
      "temperature": "neutral"
    }
  ],
  "total": 6267
}

Одна палітра за id: її hex-кольори, назва, тон, температура, настрій, гармонія й теги.

TOOL get_palette лише читання ідемпотентний
ПараметрТипОпис
id integer id палітри (із search_palettes).
// tools/call arguments
{ "id": 6267 }
Приклад відповіді
{
  "success": true,
  "palette": {
    "id": 6267,
    "name": "5-Color Darling Bud Palette",
    "colors": ["#ffffff", "#e7b7fb", "#b0cbfc", "#f98bf7", "#f7cefc"],
    "color_count": 5,
    "tone": "mixed",
    "temperature": "neutral",
    "tags": []
  }
}

Мініфікує або форматує JS, CSS, HTML, SVG, JSON чи XML. Код лише розбирається й перевиводиться як текст — ніколи не виконується й не зберігається. Укажіть type=auto, щоб сервер сам визначив мову.

TOOL minify_code лише читання ідемпотентний
ПараметрТипОпис
code string Вхідний текст для перетворення.
type string js · css · html · svg · json · xml · auto.
mode string minify (за замовчуванням) · beautify.
keep_license boolean Зберігати ліцензійні коментарі /*! … */ під час мініфікації.
// tools/call arguments
{ "code": ".a { color: #ffffff; margin: 0px; }", "type": "css" }
Приклад відповіді
{
  "success": true,
  "type": "css",
  "mode": "minify",
  "output": ".a{color:#fff;margin:0}",
  "original_size": 47,
  "output_size": 23,
  "savings_percent": 51.1
}

Визначає мову чи формат фрагмента коду — лише статичний аналіз, фрагмент ніколи не виконується. Також повідомляє, які конвертери приймають визначений формат на вхід.

TOOL detect_code лише читання ідемпотентний
ПараметрТипОпис
code string Фрагмент для аналізу. До 200 000 символів.
// tools/call arguments
{ "code": "const x = () => 42;" }
Приклад відповіді
{
  "success": true,
  "detected_type": "esm",
  "confidence": "medium",
  "available_targets": [ { "to": "cjs", "label": "ESM → CommonJS" } ]
}

Конвертує код між текстовими форматами — JSON↔YAML, JSON→TOML, CSS↔SCSS, ESM→CJS та інші. Суто текстове перетворення: вихідний код розбирається й серіалізується заново, ніколи не виконується й не зберігається. Повний список пар from/to і параметри кожного конвертера — у list_code_converters.

TOOL convert_code лише читання ідемпотентний
ПараметрТипОпис
code string Вихідний код для конвертації.
from string id вхідного формату (див. list_code_converters).
to string id цільового формату.
options object Параметри конкретного конвертера (див. optionsSchema у list_code_converters).
// tools/call arguments
{ "code": "{\"name\":\"jinero\"}", "from": "json", "to": "yaml" }
Приклад відповіді
{
  "success": true,
  "from": "json",
  "to": "yaml",
  "output": "name: jinero\n",
  "notes": null
}

Реєстр доступних конвертерів: id from/to, зрозумілі назви й схема параметрів кожного конвертера. Без параметрів.

TOOL list_code_converters лише читання ідемпотентний
// tools/call arguments
{ }
Приклад відповіді
{
  "success": true,
  "converters": [
    { "id": "json_to_yaml", "from": "json", "to": "yaml", "label": "JSON → YAML",
      "optionsSchema": { "indent": [2, 4], "sortKeys": false } },
    { "id": "yaml_to_json", "from": "yaml", "to": "json", "label": "YAML → JSON", "…": "…" }
  ]
}

Оптимізує й очищає SVG-розмітку за допомогою SVGO — суто перетворення розмітки, нічого не виконується й не зберігається. Повертає мініфікований SVG і розміри до/після.

TOOL optimize_svg лише читання ідемпотентний
ПараметрТипОпис
svg string Вихідний SVG. До 500 000 символів.
preset string safe · balanced (за замовчуванням) · aggressive.
// tools/call arguments
{ "svg": "<svg xmlns=\"…\" width=\"24\" height=\"24\"><rect …/></svg>", "preset": "balanced" }
Приклад відповіді
{
  "success": true,
  "preset": "balanced",
  "output": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"><path fill=\"#f00\" d=\"M2 2h20v20H2z\"/></svg>",
  "original_size": 136,
  "optimized_size": 106,
  "savings_percent": 22.1
}

Кодує SVG (або завантажене зображення) в готовий для CSS data: URI — варіанти з URL-кодуванням і base64, а також готовий фрагмент background-image. Передайте або сиру розмітку svg, або публічний url.

TOOL svg_to_datauri лише читання ідемпотентний завантажує зовнішні URL
ПараметрТипОпис
svg string Сира SVG-розмітка. Не можна поєднувати з url.
url string Публічний URL зображення, яке завантажить сервер.
encoding string utf8 · base64. За замовчуванням: utf8 для SVG, base64 для растру.
quotes string single · double (за замовчуванням) — стиль лапок у CSS-фрагменті.
// tools/call arguments
{ "svg": "<svg xmlns=\"http://www.w3.org/2000/svg\"><circle r=\"4\"/></svg>" }
Приклад відповіді
{
  "success": true,
  "mime_type": "image/svg+xml",
  "primary_label": "URL-encoded Data URI",
  "primary_output": "data:image/svg+xml,%3Csvg xmlns=%22http…%3E",
  "secondary_label": "Base64 Data URI",
  "secondary_output": "data:image/svg+xml;base64,PHN2ZyB4bWxu…",
  "css_output": "background-image: url(\"data:image/svg+xml,%3Csvg…%3E\");"
}

Доступні пресети оптимізації SVG і що робить кожен. Без параметрів.

TOOL list_svg_presets лише читання ідемпотентний
// tools/call arguments
{ }
Приклад відповіді
{
  "presets": [
    { "key": "safe",       "name": "Safe",       "description": "Minimal optimization, preserves most attributes" },
    { "key": "balanced",   "name": "Balanced",   "description": "Good compression with minimal visual changes" },
    { "key": "aggressive", "name": "Aggressive", "description": "Maximum compression, may affect some SVG features" }
  ]
}

Каталог SCSS-міксинів — id, назва й короткий опис кожного, з необов'язковим фільтром за групою чи нечітким пошуком. Укажіть fields=full, щоб додати до списку вихідний код.

TOOL list_scss_mixins лише читання ідемпотентний
ПараметрТипОпис
group string Bootstrap · Project · Pattern · Placeholder.
search string Нечіткий пошук підрядка в id/title/description.
fields string summary (за замовчуванням) · full.
// tools/call arguments
{ "search": "centerer", "fields": "summary" }
Приклад відповіді
{
  "success": true,
  "count": 1,
  "groups": ["Bootstrap", "Project", "Pattern", "Placeholder"],
  "items": [
    { "id": "centerer", "title": "centerer()", "group": "Project",
      "short": "Absolute centering helper with axis toggles." }
  ]
}

Один SCSS-міксин за id — повний код SCSS/Sass/Less, параметри й демо використання.

TOOL get_scss_mixin лише читання ідемпотентний
ПараметрТипОпис
id string id міксину (kebab-case), напр. 'centerer', 'media-breakpoint-up'.
// tools/call arguments
{ "id": "centerer" }
Приклад відповіді
{
  "success": true,
  "mixin": {
    "id": "centerer",
    "title": "centerer()",
    "group": "Project",
    "short": "Absolute centering helper with axis toggles.",
    "scss": "@mixin centerer($horizontal: true, $vertical: true) { … }",
    "demo": "…",
    "url": "https://jinero.online/dev/scss-mixins#centerer"
  }
}

Розраховує плинний CSS-вираз clamp() для адаптивних розмірів між двома ширинами в'юпорту. Суто обчислення — повертає CSS-фрагмент у варіантах px і rem та саму математику.

TOOL generate_clamp лише читання ідемпотентний
ПараметрТипОпис
min_fs number Мінімальний розмір у px.
max_fs number Максимальний розмір у px.
min_vw number Ширина в'юпорту для min_fs (за замовчуванням 320).
max_vw number Ширина в'юпорту для max_fs (за замовчуванням 1440).
unit string px · rem (за замовчуванням) · both.
root number Кореневий font-size у px для перерахунку в rem (за замовчуванням 16).
// tools/call arguments
{ "min_fs": 16, "max_fs": 24 }
Приклад відповіді
{
  "success": true,
  "css": "clamp(1rem, 0.8571rem + 0.7143vw, 1.5rem)",
  "variants": {
    "px":  "clamp(16px, 13.7143px + 0.7143vw, 24px)",
    "rem": "clamp(1rem, 0.8571rem + 0.7143vw, 1.5rem)"
  },
  "math": { "slope": 0.007143, "intercept_px": 13.7143, "vw_coefficient": 0.7143 }
}

Про MCP-сервер jinero.online

Хостований сервер Model Context Protocol, що відкриває інструменти Jinero для шрифтів, кольорів, палітр, коду й SVG будь-якому AI-агенту, — 22 анотовані інструменти лише для читання за однією URL-адресою.

Лише читання — за задумом

Усі 22 інструменти оголошують MCP-анотації readOnlyHint + idempotentHint. Надісланий код і SVG розбираються як текст і ніколи не виконуються; зображення обробляються в пам'яті й ніколи не зберігаються.

Без ключа й встановлення

Хостований віддалений сервер на Streamable HTTP — додайте одну URL-адресу в MCP-клієнт, і можна працювати. Анонімно, ліміт — 60 запитів/хв з одного IP (у ресурсомістких інструментів — жорсткіші власні ліміти).

Вбудоване розпізнавання шрифтів

recognize_font визначає шрифти за скриншотом за допомогою нашої власної CNN-моделі ембедингів — за візуальною формою, без OCR, латиниця й кирилиця — через URL або base64.

Один контракт із REST API

Кожен MCP-інструмент викликає ті самі контролери, що й публічний REST API, тож поведінка, ліміти й формат відповідей однакові в обох інтерфейсах.

Часті запитання

Ні. Сервер анонімний і безкоштовний, загальний ліміт — 60 запитів/хв з одного IP; ресурсомісткі інструменти мають жорсткіші ліміти (recognize_font — 5/хв, extract_colors — 10/хв, перетворення коду/SVG — 30/хв). Його опубліковано в офіційному реєстрі MCP як online.jinero/jinero.

Кожен інструмент працює лише на читання, ідемпотентний і заявляє це через MCP-анотації (readOnlyHint, idempotentHint), які ваш клієнт може перевірити в tools/list. Код, надісланий на мініфікацію, конвертацію чи визначення мови, розбирається як текст і ніколи не виконується. Лише три інструменти завантажують указаний вами URL (recognize_font, extract_colors, svg_to_datauri); ці завантаження захищені від SSRF і обмежені за розміром, а завантажені зображення ніколи не зберігаються.

З будь-яким MCP-клієнтом, що підтримує віддалені сервери (Streamable HTTP): Claude Code, Claude Desktop, Cursor, Cline, Zed, Gemini CLI та іншими. Старіші клієнти, що підтримують лише stdio, можна підключити через міст npx mcp-remote https://jinero.online/mcp.

Двома способами: публічний image_url або image_base64 із сирим base64 / data URI (до 8 МБ після декодування) — тож агент може надіслати локальний скриншот напряму, нікуди його не викладаючи. Розпізнавання порівнює візуальну форму літер за допомогою нашої власної CNN-моделі, тому OCR не потрібен, а латиниця й кирилиця підтримуються.

Той самий рушій, інший транспорт. MCP-інструменти викликають ті самі контролери, що й задокументовані REST-ендпоінти, тож параметри й формат відповідей збігаються. REST — для вашого власного коду; MCP — щоб передати інструменти AI-агенту.

За адресою https://jinero.online/.well-known/mcp/server.json, а також в офіційному реєстрі MCP (registry.modelcontextprotocol.io) під назвою online.jinero/jinero.