Craftery Developer Tools
Developer utilities: color conversion, WCAG contrast, timestamps, UUIDs, and hashing.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"tools": {
"url": "https://craftery.dev/mcp"
}
}
}원격 엔드포인트
https://craftery.dev/mcpstreamable-http할 수 있는 일
도구 목록
도구 (6)
🟢convert_color(color, alpha)
Convert a color into exact, platform-correct code for 12 formats: HEX, HEX8, rgba(), hsla(), closest CSS named color, closest Tailwind class, SwiftUI Color, UIColor, Jetpack Compose, Android XML, Flutter, and React Native. Handles the per-platform alpha byte order (RRGGBBAA on the web vs. AARRGGBB on Android/Compose/Flutter) that is easy to get wrong by hand.
입력 스키마
{
"type": "object",
"properties": {
"color": {
"type": "string",
"description": "Color in any supported notation: hex (#F43, #FF6347, #FF6347CC), rgb()/rgba(), hsl()/hsla(), a CSS named color (tomato), or a Tailwind token (red-500)."
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Opacity 0–1. Overrides any alpha embedded in the color input. Defaults to the input's alpha, or 1."
}
},
"required": [
"color"
]
}🟢check_contrast(foreground, background)
Compute the exact WCAG 2.1 contrast ratio between a foreground and background color (relative-luminance formula) and report AA / AAA pass-fail for normal text (4.5 / 7), large text (3 / 4.5), and UI components (3). Use this instead of estimating contrast — the luminance math is precise here.
입력 스키마
{
"type": "object",
"properties": {
"foreground": {
"type": "string",
"description": "Foreground (text) color. Color in any supported notation: hex (#F43, #FF6347, #FF6347CC), rgb()/rgba(), hsl()/hsla(), a CSS named color (tomato), or a Tailwind token (red-500)."
},
"background": {
"type": "string",
"description": "Background color. Color in any supported notation: hex (#F43, #FF6347, #FF6347CC), rgb()/rgba(), hsl()/hsla(), a CSS named color (tomato), or a Tailwind token (red-500)."
}
},
"required": [
"foreground",
"background"
]
}⚪swiftui_color(color, alpha, name)
Generate every SwiftUI Color initializer for a color: Color(red:green:blue:), opacity variant, Color(.sRGB), Color(.displayP3), HSB, hex-extension call, #colorLiteral, UIColor/NSColor bridges — plus a reusable `extension Color` snippet and Asset Catalog Contents.json.
입력 스키마
{
"type": "object",
"properties": {
"color": {
"type": "string",
"description": "Color in any supported notation: hex (#F43, #FF6347, #FF6347CC), rgb()/rgba(), hsl()/hsla(), a CSS named color (tomato), or a Tailwind token (red-500)."
},
"alpha": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Opacity 0–1. Defaults to the input's alpha, or 1."
},
"name": {
"type": "string",
"description": "Optional swatch name for the `extension Color` snippet (e.g. \"Brand Primary\" → `Color.brandPrimary`)."
}
},
"required": [
"color"
]
}⚪generate_uuid(version, count, uppercase, hyphens, braces)
Generate cryptographically random UUIDs: v4 (random), v7 (RFC 9562 time-ordered, sortable — batches stay strictly ordered), or NIL. Never invent UUIDs by hand — use this for real randomness. Supports uppercase, hyphen-less, and braced formatting.
입력 스키마
{
"type": "object",
"properties": {
"version": {
"type": "string",
"enum": [
"v4",
"v7",
"nil"
],
"description": "UUID version. Default v4."
},
"count": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"description": "How many UUIDs to generate (1–100). Default 1."
},
"uppercase": {
"type": "boolean",
"description": "Uppercase output. Default false."
},
"hyphens": {
"type": "boolean",
"description": "Keep hyphens. Default true."
},
"braces": {
"type": "boolean",
"description": "Wrap in braces. Default false."
}
}
}🟢hash_text(text, hmac_key)
Compute real MD5, SHA-1, SHA-256, SHA-384, and SHA-512 digests of a UTF-8 string, or HMAC variants when a key is given (HMAC-MD5 unsupported). Hashes cannot be computed mentally — always use this. Runs statelessly; input is not stored. For secrets you'd rather keep on-device, use the in-browser tool at craftery.dev/hash/ instead.
입력 스키마
{
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "Text to hash (UTF-8)."
},
"hmac_key": {
"type": "string",
"description": "Optional HMAC key. When set, outputs are HMAC digests."
}
},
"required": [
"text"
]
}⚪convert_timestamp(input, timezone)
Convert between Unix epoch timestamps and human dates with exact math: accepts epoch seconds / milliseconds / microseconds (auto-detected by magnitude), ISO 8601 / RFC 2822 strings, or "now". Returns seconds, millis, micros, ISO 8601 UTC, RFC 7231 UTC, the wall-clock time in a requested IANA timezone, and a relative description.
입력 스키마
{
"type": "object",
"properties": {
"input": {
"type": "string",
"description": "Epoch timestamp (e.g. \"1735689600\", \"1735689600000\"), ISO 8601 / RFC 2822 date string, or \"now\"."
},
"timezone": {
"type": "string",
"description": "IANA timezone for the wall-clock output (e.g. \"Asia/Seoul\"). Default UTC."
}
},
"required": [
"input"
]
}커뮤니티
증거