Craftery Developer Tools
Developer utilities: color conversion, WCAG contrast, timestamps, UUIDs, and hashing.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"tools": {
"url": "https://craftery.dev/mcp"
}
}
}Puntos de conexión remotos
https://craftery.dev/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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"
]
}Comunidad
Evidencia