关于 Jinero
Jinero 是面向 AI Agent 的托管 MCP 服务,提供字体、颜色、调色板、代码、SVG 和 SCSS 等只读设计工具。工具分析或转换提交的数据,不会执行或存储代码和 SVG。
主要功能
- 01搜索字体并识别图片中的字体
- 02生成字体 CSS 并查询文件信息
- 03分析颜色并检查 WCAG 对比度
- 04搜索调色板并提取图片颜色
- 05压缩、转换和检测代码格式
- 06优化 SVG 并提供 SCSS 辅助工具
适用场景
- 01根据截图查找字体
- 02检查颜色对比度并构建调色板
- 03在 Agent 工作流中转换代码或优化 SVG
MCP 相关
Jinero 通过托管的 Streamable HTTP MCP 端点提供 22 个只读且幂等的工具。MCP 客户端无需身份验证即可使用字体、颜色、调色板、代码、SVG 和 SCSS 工具。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://jinero.online/mcpclaude mcp add --transport http online-jinero-jinero https://jinero.online/mcp{"mcpServers":{"online-jinero-jinero":{"type":"http","url":"https://jinero.online/mcp"}}}在 Cursor 中打开{"servers":{"online-jinero-jinero":{"type":"http","url":"https://jinero.online/mcp"}}}在 VS Code 中打开{"mcpServers":{"online-jinero-jinero":{"type":"http","url":"https://jinero.online/mcp"}}}{"mcpServers":{"online-jinero-jinero":{"serverUrl":"https://jinero.online/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
22| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 否 | 模糊名称匹配。 |
| page | integer | 否 | 页码。 |
| sort | enum | 否 | 排序方向。asc | desc |
| langs | string | 否 | 逗号分隔的语言代码,例如 'latin,cyrillic'——必须全部受支持。 |
| order | enum | 否 | 排序字段,默认值为 'likes'。likes | downloads | views | name | created_at |
| style | string | 否 | 逗号分隔的样式标签,例如 'handwriting,condensed'——必须全部匹配。可选值:handwriting、script、display、slab、rounded、condensed、expanded、stencil、pixel、blackletter、outline、retro。 |
| category | string | 否 | 逗号分隔的类别,例如 'serif,sans'。 |
| per_page | integer | 否 | 每页结果数(默认值为 24)。 |
| variable | boolean | 否 | 仅限可变字体。 |
| monospace | boolean | 否 | 仅限等宽字体。 |
| styles_max | integer | 否 | 样式数量上限。 |
| styles_min | integer | 否 | 样式数量下限。 |
详细介绍
Jinero MCP 服务
online.jinero/jinero — 托管的远程 Model Context Protocol 服务,为 AI Agent(Claude、Cursor、Cline、Zed、Gemini CLI……)提供 jinero.online 的设计工具:22 个只读工具,涵盖字体(搜索、CSS、文件、从图像识别)、颜色计算(WCAG 对比度、色阶、命名、调色板提取)、精选调色板、代码压缩/转换/检测、SVG 优化和 SCSS 辅助工具。
- 端点:
https://jinero.online/mcp(Streamable HTTP) - **身份验证:**无 — 匿名且免费,每个 IP 每分钟限流 60 次请求(此外,较重的工具还有各自的限制,见下文)
- **注册表:**官方 MCP 注册表中的
online.jinero/jinero - 清单:
/.well-known/mcp/server.json - 用户文档:jinero.online/dev/mcp — 完整参考文档,包含响应示例
连接
Claude Code(CLI):
claude mcp add --transport http jinero https://jinero.online/mcp
Claude Desktop / Cursor / Cline(配置):
{
"mcpServers": {
"jinero": { "type": "http", "url": "https://jinero.online/mcp" }
}
}
较旧的纯 stdio 客户端可使用 npx mcp-remote https://jinero.online/mcp 建立桥接。
信任与安全
每个工具都声明了 MCP 注解,可在 tools/list 中验证:
- 所有 22 个工具均为
readOnlyHint: true和idempotentHint: true; - 提交的代码/SVG 只会作为文本解析和转换 — 绝不会执行,也绝不会存储;
- 上传的图像(字体识别、颜色提取)会在内存中处理并立即删除;
- 只有三个工具会获取用户提供的 URL(
recognize_font、extract_colors、svg_to_datauri)— 标记为openWorldHint: true,并采用防 SSRF、限制大小的获取方式。
**给自动化风险扫描器的说明:**某些目录会根据动词将
minify_code、convert_code、generate_clamp或recognize_font归类为“写入”工具。它们都是纯函数 — 输入文本/数学运算,输出文本;不会修改服务端或调用方的任何内容。权威依据是 22 个工具各自在tools/list中声明的readOnlyHint: true注解(已快照保存于tools.json)。
速率限制
整个端点每个 IP 每分钟最多处理 60 次请求。此外,计算量较大的工具还会实施各自的每工具、每 IP 限制(服务 v1.4.0+);超出限制时会返回明确的工具错误和重试提示 — 每项限制也会在工具描述中说明:
| 工具 | 限制 | 原因 |
|---|---|---|
recognize_font | 5/min | CNN 模型推理 |
extract_colors | 10/min | 图像分析子进程 |
minify_code、convert_code、optimize_svg | 30/min | 解析器子进程 |
svg_to_datauri | 30/min | 可能获取外部 URL |
测试与 CI
tests/tools.test.mjs 会针对在线端点测试所有已声明的工具(零依赖,Node 20+):
npm test
CI 会在每次推送和每周运行测试套件([工作流](.github/workflows/test.yml);tools.json 是在线 tools/list 的已提交快照,包含架构和注解(运行 npm run update-snapshot 可刷新)。
无需客户端即可试用
# 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"}'
更多可运行示例见 examples/。
工具参考
根据当前服务版本在线返回的 tools/list 生成。
字体
search_fonts
按名称、类别、样式标签、语言覆盖范围、可变字体/等宽字体标记和样式数量搜索免费字体目录。返回分页的字体系列列表。
只读 · 幂等
| Parameter | Type | Description |
|---|---|---|
name | string | 模糊匹配名称。 |
category | string | 以逗号分隔的类别,例如 'serif,sans'。 |
langs | string | 以逗号分隔的语言代码,例如 'latin,cyrillic'——必须全部支持。 |
style | string | 以逗号分隔的样式标签,例如 'handwriting,condensed'——必须全部匹配。可选值:handwriting、script、display、slab、rounded、condensed、expanded、stencil、pixel、blackletter、outline、retro。 |
variable | boolean | 仅限可变字体。 |
monospace | boolean | 仅限等宽字体。 |
styles_min | integer | 样式数量下限。 |
styles_max | integer | 样式数量上限。 |
order | string: likes | downloads | views | name | created_at | 排序字段,默认值为 'likes'。 |
sort | string: asc | desc | 排序方向。 |
per_page | integer | 每页结果数(默认值为 24)。 |
page | integer | 页码。 |
recognize_font
识别图像中使用的字体。由我们自有的 CNN 嵌入模型提供支持,该模型基于 jinero 字体目录训练而成——它根据视觉形状/风格匹配字体,因此无需 OCR,也无需文本(支持拉丁字母和西里尔字母)。发送一行文字的紧密裁剪图像,可使用 image_url(公开 URL)或 image_base64(base64/data-URI,例如本地截图)。图像在内存中处理后立即删除——绝不存储。返回视觉上最相似的字体系列及其分数。速度快(约 200 ms)。
只读 · 幂等 · 获取外部 URL
| Parameter | Type | Description |
|---|---|---|
image_url | string | 图像的公开 URL——图像应为一行文字的紧密裁剪图。提供此参数或 image_base64。通过视觉形状进行识别(无需 OCR/文本);支持拉丁字母和西里尔字母。 |
image_base64 | string | Base64 编码的图像(原始 base64 或 data:image/...;base64 URI),解码后最大 8 MB——使用此参数发送本地文件/截图,无需托管。提供此参数或 image_url。 |
top_k | integer | 返回的字体匹配数量(3–20,默认值为 8)。 |
get_font
通过 slug 获取一个字体系列的完整元数据:样式、字重、轴、许可证、子集以及下载/CSS URL。
只读 · 幂等
| Parameter | Type | Description |
|---|---|---|
slug (required) | string | 字体系列 slug,例如 'inter'、'playfair-display'。 |
get_font_files
列出某字体系列的所有字体文件(字重/斜体/格式及直接 woff2/ttf URL)——便于构建自定义 @font-face 规则。
只读 · 幂等
| Parameter | Type | Description |
|---|---|---|
slug (required) | string | 字体系列 slug,例如 'inter'。 |
get_fonts_css
为字体系列规格生成可直接使用的 @font-face CSS(兼容 Google Fonts),例如 "inter:wght@400,700" 或可变范围 "inter:[email protected]"。返回 CSS 文本。
只读 · 幂等
| Parameter | Type | Description |
|---|---|---|
family (required) | string | 字体系列规格,例如 "inter:wght@400,700" 或 "inter:[email protected]"。 |
display | string: swap | auto | block | fallback | optional | font-display 值(默认值为 swap)。 |
get_font_download_url
返回字体系列的直接 ZIP 下载 URL(包含所有样式和可直接使用的 fonts.css)。不会下载——将 URL 提供给用户,或单独获取该 URL。
只读 · 幂等
| Parameter | Type | Description |
|---|---|---|
slug (required) | string | 字体系列 slug,例如 'inter'。 |
颜色
check_contrast
检查前景色与背景色之间的 WCAG 对比度,并判断普通文本和大文本是否通过 AA/AAA 标准。
只读 · 幂等
| 参数 | 类型 | 描述 |
|---|---|---|
fg (required) | string | 前景色(hex、rgb() 或 hsl())。 |
bg (required) | string | 背景色(hex、rgb() 或 hsl())。 |
get_color_shades
为基础颜色生成色调和阴影(逐步变浅/变深),并提供 hex 值。
只读 · 幂等
| 参数 | 类型 | 描述 |
|---|---|---|
hex (required) | string | hex、rgb() 或 hsl() 格式的基础颜色。 |
step | string: 5 | 10 | 20 | 25 | 步进百分比(默认值为 10)。 |
limit | integer | 色调/阴影数量上限(默认填充至约 100%)。 |
name_color
获取一个或多个颜色最接近的易读名称。传入单个 hex 值或多个逗号分隔的值(例如 "#3b82f6,#000,#ff7f50");返回每个输入颜色及其最接近的颜色名称、参考 hex 值、是否完全匹配的标记和感知距离。
只读 · 幂等
| 参数 | 类型 | 描述 |
|---|---|---|
hex (required) | string | 一个 hex 颜色值,或多个逗号分隔的值(例如 "#3b82f6,#000,#ff7f50")。一次最多 100 个。 |
extract_colors
从图像中提取主色调色板。传入公开的 image_url 或 image_base64(base64/数据 URI,例如本地屏幕截图)。图像仅在内存中处理,绝不会存储。每种颜色都会返回其 hex、rgb、hsl、在图像中的占比以及最接近的颜色名称,一次调用即可获得带名称的调色板。
只读 · 幂等 · 获取外部 URL
| 参数 | 类型 | 描述 |
|---|---|---|
image_url | string | 用于提取调色板的图像公开 URL。提供此项或 image_base64。 |
image_base64 | string | Base64 编码的图像(原始 base64 或 data:image/...;base64 URI),解码后最大 10 MB — 可用此项发送无需托管的本地文件/屏幕截图。提供此项或 image_url。 |
count | integer | 返回的颜色数量(2–16,默认值为 8)。 |
mode | string | 调色板模式:"balanced"(默认)、"vibrant" 或 "muted"。 |
调色板
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、split-complementary、tetradic。 |
color_count | integer | 确切的颜色数量。 |
tags | array | 标签 slug — 必须全部匹配(AND)。 |
order | string: newest | popular | name | 排序方式(默认 newest)。 |
per_page | integer | 每页结果数(默认值为 24)。 |
page | integer | 页码。 |
get_palette
按 id 获取一个调色板:其颜色(hex)、名称/派生标题、氛围、色彩和谐关系、色温和标签。
只读 · 幂等
| 参数 | 类型 | 描述 |
|---|---|---|
id (required) | integer | 调色板 id。 |
代码
minify_code
压缩或美化 JS、CSS、HTML、SVG、JSON 或 XML 文本。将 type 设为 auto 可自动识别语言。代码只会被解析并重新输出 — 绝不会执行或存储。
只读 · 幂等
| 参数 | 类型 | 描述 |
|---|---|---|
code (required) | string | 要转换的源代码。 |
type (required) | string: js | css | html | svg | json | xml | auto | 源语言,或使用 'auto' 自动识别。 |
mode | string: minify | beautify | 默认值为 minify。 |
keep_license | boolean | 压缩时保留 /*! ... */ 许可证注释。 |
detect_code
检测代码片段的语言/格式。仅进行静态分析——不会执行或存储代码片段。
只读 · 幂等
| 参数 | 类型 | 描述 |
|---|---|---|
code (必填) | string | 要检查的代码片段。最多 200,000 个字符。 |
convert_code
在文本格式之间转换代码(例如 JSON↔YAML、CSS↔SCSS)。仅进行文本转换:解析并重新序列化源代码,不会执行或存储。使用 list_code_converters 获取有效的 from/to ID 和各转换器的选项。
只读 · 幂等
| 参数 | 类型 | 描述 |
|---|---|---|
code (必填) | string | 要转换的源代码。 |
from (必填) | string | 源格式 ID(参见 list_code_converters)。 |
to (必填) | string | 目标格式 ID。 |
options | object | 各转换器的选项(参见 list_code_converters 中的 optionsSchema)。 |
list_code_converters
列出可用的代码转换器及其 from/to ID 和各转换器的选项架构。
只读 · 幂等
无参数。
SVG
optimize_svg
优化/清理 SVG 标记(SVGO)。仅进行标记转换——不会执行或存储任何内容。返回压缩后的 SVG 以及转换前后的大小。
只读 · 幂等
| 参数 | 类型 | 描述 |
|---|---|---|
svg (必填) | string | SVG 源代码。最多 500,000 个字符。 |
preset | string: safe | balanced | aggressive | 优化预设(默认值为 balanced)。 |
svg_to_datauri
将 SVG(或获取的图像)编码为适用于 CSS 的 data: URI。请提供原始 svg 或 url。
只读 · 幂等 · 获取外部 URL
| 参数 | 类型 | 描述 |
|---|---|---|
svg | string | 原始 SVG 标记。不能与 url 同时使用。 |
url | string | 服务将获取的公开图像 URL。 |
encoding | string: utf8 | base64 | 默认值:SVG 使用 utf8,光栅图像使用 base64。 |
quotes | string: single | double | data URI 的引号样式(默认值为 double)。 |
list_svg_presets
列出可用的 SVG 优化预设及其功能。
只读 · 幂等
无参数。
开发
list_scss_mixins
列出 SCSS mixin 目录(ID、标题、简短描述),可按分组或搜索内容进行筛选。
只读 · 幂等
| 参数 | 类型 | 描述 |
|---|---|---|
group | string | 例如 Bootstrap、Project、Pattern、Placeholder。 |
search | string | 在 ID/标题/简短描述/描述中模糊匹配子字符串。 |
fields | string: summary | full | 详细程度(默认值为 summary)。 |
get_scss_mixin
按 ID 获取一个 SCSS mixin:完整源码、参数和用法示例。
只读 · 幂等
| 参数 | 类型 | 描述 |
|---|---|---|
id (必填) | string | Mixin ID(kebab-case),例如 'centerer'、'media-breakpoint-up'。 |
generate_clamp
计算用于在两个视口宽度之间实现响应式尺寸的流体 CSS clamp() 表达式。仅进行计算——返回 CSS 代码片段,不会写入或存储任何内容。
只读 · 幂等
| 参数 | 类型 | 描述 |
|---|---|---|
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 | 输出单位(默认值为 rem)。 |
root | number | rem 转换所用的根字号,单位为 px(默认值为 16)。 |
关于
由 jinero.online 构建并运营——提供字体、图标、颜色和代码相关的免费设计工具。MCP 服务是同一 公开 REST API 的轻量封装:使用同一份契约,行为完全一致。
此代码库包含该服务的公开文档和示例。欢迎在此提交有关工具的问题和功能请求。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。