Jinero について
Jinero は、フォント、色、パレット、コード、SVG、SCSS の読み取り専用デザインツールを提供する、AI エージェント向けのホスト型 MCP サーバーです。入力されたコードや SVG は実行・保存せずに解析または変換します。
主な機能
- 01フォントの検索と画像からの識別
- 02フォント CSS の生成とファイル情報の取得
- 03色の分析と WCAG コントラストの確認
- 04パレットの検索と画像からの色抽出
- 05コード形式の圧縮・変換・判定
- 06SVG の最適化と SCSS ヘルパー
活用シーン
- 01スクリーンショットからフォントを特定
- 02コントラストを確認してパレットを作成
- 03エージェントのワークフローでコード変換や 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 | いいえ | 1ページあたりの結果数(デフォルトは 24)。 |
| variable | boolean | いいえ | 可変フォントのみ。 |
| monospace | boolean | いいえ | 等幅フォントのみ。 |
| styles_max | integer | いいえ | スタイル数の上限。 |
| styles_min | integer | いいえ | スタイル数の下限。 |
詳細
Jinero MCP サーバー
online.jinero/jinero — AI エージェント(Claude、Cursor、Cline、Zed、Gemini CLI…)に jinero.online のデザインツールを提供する、ホスト型のリモート Model Context Protocol サーバーです。フォント(検索、CSS、ファイル、画像からの認識)、色計算(WCAG コントラスト、シェード、命名、パレット抽出)、厳選されたパレット、コードの圧縮/変換/検出、SVG 最適化、SCSS ヘルパー用の読み取り専用ツールを22個備えています。
- エンドポイント:
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 を取得するツールは3つだけ(
recognize_font、extract_colors、svg_to_datauri)で、SSRF 対策とサイズ上限を設けた取得機能とともにopenWorldHint: trueとして示されています。
自動リスクスキャナーに関する注意:
minify_code、convert_code、generate_clamp、recognize_fontを、動詞に基づいて「書き込み」ツールに分類するディレクトリがあります。これらは純粋関数です。入力されたテキスト/数値に対して、出力としてテキストを返すだけで、サーバー側にも呼び出し側にも変更を加えません。正式な判定基準は、tools/listで22個すべてのツールが宣言する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
名前、カテゴリー、スタイルタグ、対応言語、可変フォント/等幅フォントのフラグ、スタイル数で無料フォントカタログを検索します。フォントファミリーのページ分割された一覧を返します。
読み取り専用 · 冪等
| パラメーター | 型 | 説明 |
|---|---|---|
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 | 1ページあたりの結果数です(デフォルトは24)。 |
page | integer | ページ番号です。 |
recognize_font
画像に使われているフォントを特定します。jineroのフォントカタログでトレーニングした独自のCNN埋め込みモデルを使用しています。視覚的な形状やスタイルでフォントを照合するため、OCRもテキストも必要ありません(ラテン文字とキリル文字に対応)。テキスト1行を切り抜いた画像を、image_url(公開URL)または image_base64(base64/data URI。例:ローカルのスクリーンショット)として送信してください。画像はメモリー内で処理され、直ちに削除されます。保存されることはありません。視覚的に最も類似するフォントファミリーとスコアを返します。高速です(約200ミリ秒)。
読み取り専用 · 冪等 · 外部URLを取得
| パラメーター | 型 | 説明 |
|---|---|---|
image_url | string | 画像の公開URLです。テキスト1行を切り抜いた画像を指定します。image_base64とのいずれかを指定してください。視覚的な形状で認識するため、OCR/テキストは不要です。ラテン文字とキリル文字に対応しています。 |
image_base64 | string | base64エンコードされた画像(生のbase64、またはdata:image/...;base64 URI)です。デコード後の最大サイズは8 MBです。ホスティングせずにローカルファイル/スクリーンショットを送信する場合に使用します。image_urlとのいずれかを指定してください。 |
top_k | integer | 返すフォント候補の数です(3~20、デフォルトは8)。 |
get_font
スラッグで指定したフォントファミリーの完全なメタデータ(スタイル、ウェイト、軸、ライセンス、サブセット、ダウンロード/CSS URL)を取得します。
読み取り専用 · 冪等
| パラメーター | 型 | 説明 |
|---|---|---|
slug (必須) | string | フォントファミリーのスラッグです。例:'inter'、'playfair-display'。 |
get_font_files
フォントファミリーのすべてのフォントファイル(ウェイト/イタリック/形式、および直接ダウンロードできるwoff2/ttf URL)を一覧表示します。カスタムの@font-faceルールを作成する際に便利です。
読み取り専用 · 冪等
| パラメーター | 型 | 説明 |
|---|---|---|
slug (必須) | string | フォントファミリーのスラッグです。例:'inter'。 |
get_fonts_css
フォントファミリーの指定から、そのまま使える@font-face CSSを生成します(Google Fonts互換)。例:"inter:wght@400,700"または可変範囲"inter:[email protected]"。CSSテキストを返します。
読み取り専用 · 冪等
| パラメーター | 型 | 説明 |
|---|---|---|
family (必須) | 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をユーザーに渡すか、別途取得してください。
読み取り専用 · 冪等
| パラメーター | 型 | 説明 |
|---|---|---|
slug (必須) | string | フォントファミリーのスラッグです。例:'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
1 色または複数の色について、最も近い人が理解しやすい色名を取得します。単一の hex 値、またはカンマ区切りの複数の値(例:「#3b82f6,#000,#ff7f50」)を渡すと、各入力色について、最も近い色名、参照用 hex 値、完全一致フラグ、知覚上の距離を返します。
読み取り専用 · 冪等
| パラメーター | 型 | 説明 |
|---|---|---|
hex (required) | string | hex 形式の色、またはカンマ区切りの複数の色(例:「#3b82f6,#000,#ff7f50」)。一度に最大 100 色まで指定できます。 |
extract_colors
画像から主要な色のパレットを抽出します。公開されている image_url または image_base64(base64/データ URI。例:ローカルのスクリーンショット)を送信します。画像はメモリ上で処理され、保存されません。各色について、hex、rgb、hsl、画像に占める割合、最も近い色名を返します。1 回の呼び出しで、色名付きのパレットを取得できます。
読み取り専用 · 冪等 · 外部 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 | タグのスラッグ。すべて一致する必要があります(AND)。 |
order | string: newest | popular | name | 並べ替え順(デフォルトは newest)。 |
per_page | integer | 1 ページあたりの結果数(デフォルトは 24)。 |
page | integer | ページ番号。 |
get_palette
ID でカラーパレットを 1 つ取得します。色(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 (required) | string | 検査するスニペット。最大 200,000 文字。 |
convert_code
テキスト形式間でコードを変換します(例:JSON↔YAML、CSS↔SCSS)。純粋なテキスト変換です。ソースを解析して再シリアライズしますが、実行も保存もしません。有効な from/to ID とコンバーターごとのオプションについては、list_code_converters を使用してください。
読み取り専用 · 冪等
| パラメーター | 型 | 説明 |
|---|---|---|
code (required) | string | 変換するソースコード。 |
from (required) | string | ソース形式 ID(list_code_converters を参照)。 |
to (required) | string | 変換先の形式 ID。 |
options | object | コンバーターごとのオプション(list_code_converters の optionsSchema を参照)。 |
list_code_converters
利用可能なコードコンバーターと、それぞれの from/to ID およびコンバーターごとのオプションスキーマを一覧表示します。
読み取り専用 · 冪等
パラメーターはありません。
SVG
optimize_svg
SVG マークアップを最適化/クリーンアップします(SVGO)。純粋なマークアップ変換であり、実行も保存もされません。最小化された SVG と変換前後のサイズを返します。
読み取り専用 · 冪等
| パラメーター | 型 | 説明 |
|---|---|---|
svg (required) | 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 最適化プリセットと、それぞれの処理内容を一覧表示します。
読み取り専用 · 冪等
パラメーターはありません。
Dev
list_scss_mixins
SCSS ミックスインのカタログ(ID、タイトル、簡単な説明)を一覧表示します。グループまたは検索語で絞り込むこともできます。
読み取り専用 · 冪等
| パラメーター | 型 | 説明 |
|---|---|---|
group | string | 例:Bootstrap、Project、Pattern、Placeholder。 |
search | string | ID/タイトル/概要/説明を対象に、部分一致であいまい検索します。 |
fields | string: summary | full | 詳細レベル(デフォルトは summary)。 |
get_scss_mixin
ID を指定して SCSS ミックスインを 1 つ取得します。完全なソース、パラメーター、使用例を返します。
読み取り専用 · 冪等
| パラメーター | 型 | 説明 |
|---|---|---|
id (required) | string | ミックスイン ID(kebab-case)。例:'centerer'、'media-breakpoint-up'。 |
generate_clamp
2 つのビューポート幅の間でレスポンシブなサイズ指定を行う、流動的な CSS clamp() 式を計算します。純粋な計算であり、CSS スニペットを返します。書き込みや保存は行いません。
読み取り専用 · 冪等
| パラメーター | 型 | 説明 |
|---|---|---|
min_fs (required) | number | 最小サイズ(px)。 |
max_fs (required) | 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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。