MCP Server

Craftery Developer Tools

dev.craftery/tools
Developer Tools Public & reachable MCP 2026-07-28

What this MCP does

Provides utilities for color conversion, accessibility contrast checking, timestamps, UUID generation, and cryptographic hashing.

check_contrast
Check WCAG 2.1 contrast ratio
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.
Input schema
{'type': 'object', 'required': ['foreground', 'background'], 'properties': {'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).'}, '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).'}}}
convert_color
Convert color to 12 platform formats
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.
Input schema
{'type': 'object', 'required': ['color'], 'properties': {'alpha': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': "Opacity 0–1. Overrides any alpha embedded in the color input. Defaults to the input's alpha, or 1."}, '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).'}}}
convert_timestamp
Convert Unix timestamp ↔ date
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.
Input schema
{'type': 'object', 'required': ['input'], '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.'}}}
generate_uuid
Generate UUIDs (v4 / v7 / NIL)
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.
Input schema
{'type': 'object', 'properties': {'count': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'How many UUIDs to generate (1–100). Default 1.'}, 'braces': {'type': 'boolean', 'description': 'Wrap in braces. Default false.'}, 'hyphens': {'type': 'boolean', 'description': 'Keep hyphens. Default true.'}, 'version': {'enum': ['v4', 'v7', 'nil'], 'type': 'string', 'description': 'UUID version. Default v4.'}, 'uppercase': {'type': 'boolean', 'description': 'Uppercase output. Default false.'}}}
hash_text
Hash text (MD5 / SHA / HMAC)
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.
Input schema
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'Text to hash (UTF-8).'}, 'hmac_key': {'type': 'string', 'description': 'Optional HMAC key. When set, outputs are HMAC digests.'}}}
swiftui_color
Generate SwiftUI color code
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.
Input schema
{'type': 'object', 'required': ['color'], 'properties': {'name': {'type': 'string', 'description': 'Optional swatch name for the `extension Color` snippet (e.g. "Brand Primary" → `Color.brandPrimary`).'}, 'alpha': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': "Opacity 0–1. Defaults to the input's alpha, or 1."}, '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).'}}}
Added
convert_timestamp
Sept. 17, 2026, 12:39 p.m.
Added
hash_text
Sept. 17, 2026, 12:39 p.m.
Added
generate_uuid
Sept. 17, 2026, 12:39 p.m.
Added
swiftui_color
Sept. 17, 2026, 12:39 p.m.
Added
check_contrast
Sept. 17, 2026, 12:39 p.m.
Added
convert_color
Sept. 17, 2026, 12:39 p.m.