MCP-сервер
Дайте своєму AI-агенту дизайн-інструменти Jinero через Model Context Protocol — 22 інструменти лише для читання для шрифтів, кольорів, палітр, коду й SVG на хостованому віддаленому сервері. Без npm і без ключа.
Хостований віддалений 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 для попереднього перегляду й метаданими кожного накреслення.
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 мс на виклик.
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 і файлів.
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 або завантажує окремі накреслення.
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-текст, який агент може одразу додати в таблицю стилів.
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 користувачу чи агенту.
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.
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, яскравість і рекомендований колір тексту.
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 кольорів. Чудово підходить для підписів до вилучених палітр чи згенерованих зразків.
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 — ідеально для локального скриншота). Зображення обробляється в пам'яті й ніколи не зберігається. Кожен колір повертається з назвою: підписана палітра за один виклик.
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-кольорами й класифікацією.
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-кольори, назва, тон, температура, настрій, гармонія й теги.
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, щоб сервер сам визначив мову.
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
}
Визначає мову чи формат фрагмента коду — лише статичний аналіз, фрагмент ніколи не виконується. Також повідомляє, які конвертери приймають визначений формат на вхід.
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.
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, зрозумілі назви й схема параметрів кожного конвертера. Без параметрів.
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 і розміри до/після.
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.
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 і що робить кожен. Без параметрів.
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, щоб додати до списку вихідний код.
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, параметри й демо використання.
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 та саму математику.
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.