Cleanor
Ce que fait ce MCP
Offers deterministic developer utilities, data conversion and validation tools, image optimization, color tools, QR generation, and placeholder graphics.
Outils
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['input'], 'properties': {'mode': {'enum': ['encode', 'decode'], 'type': 'string', 'default': 'encode', 'description': 'Direction.'}, 'input': {'type': 'string', 'maxLength': 100000, 'minLength': 1, 'description': 'Text to encode, or Base64 to decode.'}, 'url_safe': {'type': 'boolean', 'default': False, 'description': 'Use URL-safe alphabet (-_ instead of +/, no padding).'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['mode', 'result'], 'properties': {'mode': {'type': 'string', 'description': 'encode or decode.'}, 'result': {'type': 'string', 'description': 'The encoded or decoded text.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['value'], 'properties': {'value': {'type': 'string', 'maxLength': 2000, 'minLength': 1, 'description': 'The number, in from_base (e.g. "ff", "1010", "255").'}, 'to_base': {'type': 'integer', 'default': 16, 'maximum': 36, 'minimum': 2, 'description': 'Base to convert to (2â\x80\x9336).'}, 'from_base': {'type': 'integer', 'default': 10, 'maximum': 36, 'minimum': 2, 'description': 'Base of the input (2â\x80\x9336).'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['input', 'from_base', 'to_base', 'result', 'decimal'], 'properties': {'input': {'type': 'string'}, 'result': {'type': 'string', 'description': 'The value in to_base.'}, 'decimal': {'type': 'string', 'description': 'The value in base 10.'}, 'to_base': {'type': 'number'}, 'from_base': {'type': 'number'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['value'], 'properties': {'value': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'A color: "#3b82f6", "rgb(59,130,246)" or "hsl(217,91%,60%)".'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['hex', 'rgb', 'hsl'], 'properties': {'hex': {'type': 'string'}, 'hsl': {'type': 'string'}, 'rgb': {'type': 'string'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['color'], 'properties': {'color': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Base color: "#3b82f6", "rgb(...)" or "hsl(...)".'}, 'harmony': {'enum': ['complementary', 'analogous', 'triadic', 'tetradic', 'monochromatic'], 'type': 'string', 'default': 'analogous', 'description': 'Color-harmony rule.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['harmony', 'base', 'colors'], 'properties': {'base': {'type': 'string', 'description': 'The base color as hex.'}, 'colors': {'type': 'array', 'items': {'type': 'object', 'required': ['hex', 'hsl'], 'properties': {'hex': {'type': 'string'}, 'hsl': {'type': 'string'}}, 'additionalProperties': False}}, 'harmony': {'type': 'string'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['input'], 'properties': {'input': {'type': 'string', 'maxLength': 100000, 'minLength': 0, 'description': 'Text to measure.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['characters', 'utf16_units', 'words', 'lines', 'bytes'], 'properties': {'bytes': {'type': 'number', 'description': 'UTF-8 bytes.'}, 'lines': {'type': 'number'}, 'words': {'type': 'number'}, 'characters': {'type': 'number', 'description': 'Unicode code points.'}, 'utf16_units': {'type': 'number'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['expression'], 'properties': {'expression': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'A 5-field cron expression, e.g. "30 2 * * 1-5".'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['minute', 'hour', 'day_of_month', 'month', 'day_of_week', 'next_runs'], 'properties': {'hour': {'type': 'string'}, 'month': {'type': 'string'}, 'minute': {'type': 'string'}, 'next_runs': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Next run times in UTC ISO 8601.'}, 'day_of_week': {'type': 'string'}, 'day_of_month': {'type': 'string'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'input': {'type': 'string', 'maxLength': 64, 'description': 'Optional: a Unix timestamp (s or ms) or ISO date string. Omit for the current time.'}, 'timezone': {'type': 'string', 'default': 'UTC', 'maxLength': 64, 'description': 'IANA timezone, e.g. "America/New_York" or "UTC".'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['timezone', 'local', 'iso_utc', 'unix_s', 'unix_ms'], 'properties': {'local': {'type': 'string', 'description': 'Human-readable local time in the timezone.'}, 'unix_s': {'type': 'number'}, 'iso_utc': {'type': 'string'}, 'unix_ms': {'type': 'number'}, 'timezone': {'type': 'string'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['a', 'b'], 'properties': {'a': {'type': 'string', 'maxLength': 100000, 'minLength': 0, 'description': 'The original ("before") text.'}, 'b': {'type': 'string', 'maxLength': 100000, 'minLength': 0, 'description': 'The updated ("after") text.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['changed', 'added', 'removed', 'diff'], 'properties': {'diff': {'type': 'string', 'description': 'The line diff (+/-/space prefixed), empty if identical.'}, 'added': {'type': 'number'}, 'changed': {'type': 'boolean'}, 'removed': {'type': 'number'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['input'], 'properties': {'input': {'type': 'string', 'maxLength': 100000, 'minLength': 1, 'description': 'Text to hash (UTF-8).'}, 'algorithm': {'enum': ['sha-256', 'sha-1', 'sha-384', 'sha-512'], 'type': 'string', 'default': 'sha-256', 'description': 'Hash algorithm. Default sha-256.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['algorithm', 'hex'], 'properties': {'hex': {'type': 'string', 'description': 'The hex-encoded digest.'}, 'algorithm': {'type': 'string', 'description': 'The hash algorithm used.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['message', 'secret'], 'properties': {'secret': {'type': 'string', 'maxLength': 4096, 'minLength': 1, 'description': 'The shared secret key (UTF-8).'}, 'message': {'type': 'string', 'maxLength': 100000, 'minLength': 0, 'description': 'The message to sign (UTF-8).'}, 'encoding': {'enum': ['hex', 'base64'], 'type': 'string', 'default': 'hex', 'description': 'Output encoding.'}, 'algorithm': {'enum': ['sha-256', 'sha-1', 'sha-384', 'sha-512'], 'type': 'string', 'default': 'sha-256', 'description': 'Hash algorithm.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['algorithm', 'encoding', 'signature'], 'properties': {'encoding': {'type': 'string'}, 'algorithm': {'type': 'string'}, 'signature': {'type': 'string', 'description': 'The HMAC in the requested encoding.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'format': {'enum': ['webp', 'avif', 'jxl'], 'type': 'string', 'default': 'avif', 'description': 'Target format to compare against JPEG.'}, 'quality': {'enum': ['web', 'high'], 'type': 'string', 'default': 'web', 'description': 'web = typical web quality (SSIM 0.95); high = near-lossless (SSIM 0.98).'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['format', 'quality', 'percent_smaller_than_jpeg', 'all_formats', 'source'], 'properties': {'format': {'type': 'string'}, 'source': {'type': 'string'}, 'quality': {'type': 'string'}, 'all_formats': {'type': 'object', 'required': ['avif', 'webp', 'jxl'], 'properties': {'jxl': {'type': 'number'}, 'avif': {'type': 'number'}, 'webp': {'type': 'number'}}, 'additionalProperties': False}, 'percent_smaller_than_jpeg': {'type': 'number'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['input'], 'properties': {'mode': {'enum': ['pretty', 'minify'], 'type': 'string', 'default': 'pretty', 'description': 'pretty = 2-space indent; minify = single line.'}, 'input': {'type': 'string', 'maxLength': 100000, 'minLength': 1, 'description': 'JSON text.'}, 'sort_keys': {'type': 'boolean', 'default': False, 'description': 'Sort object keys alphabetically (deep).'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['valid', 'formatted'], 'properties': {'valid': {'type': 'boolean', 'description': 'Whether the input was valid JSON.'}, 'formatted': {'type': 'string', 'description': 'The formatted JSON text.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['token'], 'properties': {'token': {'type': 'string', 'maxLength': 100000, 'minLength': 1, 'description': 'The JWT (three dot-separated segments).'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'header': {'description': 'The decoded JWT header object.'}, 'exp_iso': {'type': 'string', 'description': 'Expiry as ISO 8601, if present.'}, 'expired': {'type': 'boolean', 'description': 'Whether the token is past its exp, if present.'}, 'payload': {'description': 'The decoded JWT payload (claims).'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['image_url'], 'properties': {'width': {'type': 'integer', 'maximum': 4096, 'minimum': 16, 'description': 'Resize to this width in px, preserving aspect ratio. Omit to keep original size.'}, 'format': {'enum': ['webp', 'avif', 'jpeg'], 'type': 'string', 'default': 'webp', 'description': 'Output format. webp = best browser support; avif = smallest; jpeg = universal.'}, 'quality': {'type': 'integer', 'default': 80, 'maximum': 100, 'minimum': 1, 'description': 'Encode quality 1-100 (80 is a good default).'}, 'image_url': {'type': 'string', 'format': 'uri', 'description': 'Public URL of the source image (PNG/JPEG/WebP/AVIF/GIF).'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['format', 'original_bytes', 'optimized_bytes', 'saved_pct', 'mime_type'], 'properties': {'format': {'type': 'string', 'description': 'Output image format.'}, 'mime_type': {'type': 'string'}, 'saved_pct': {'type': 'number', 'description': 'Percent smaller than the original.'}, 'original_bytes': {'type': 'number'}, 'optimized_bytes': {'type': 'number'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'bg': {'type': 'string', 'default': '#e5e7eb', 'maxLength': 32, 'description': 'Background color (hex, rgb() or hsl()).'}, 'text': {'type': 'string', 'maxLength': 120, 'description': 'Label text. Defaults to the dimensions, e.g. "600Ã\x97400".'}, 'color': {'type': 'string', 'default': '#6b7280', 'maxLength': 32, 'description': 'Text color.'}, 'width': {'type': 'integer', 'default': 600, 'maximum': 4000, 'minimum': 1, 'description': 'Width in pixels.'}, 'height': {'type': 'integer', 'default': 400, 'maximum': 4000, 'minimum': 1, 'description': 'Height in pixels.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['svg', 'width', 'height'], 'properties': {'svg': {'type': 'string', 'description': 'The SVG markup.'}, 'width': {'type': 'number'}, 'height': {'type': 'number'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['text'], 'properties': {'ecc': {'enum': ['L', 'M', 'Q', 'H'], 'type': 'string', 'default': 'M', 'description': 'Error-correction level: L=7%, M=15%, Q=25%, H=30% recoverable.'}, 'size': {'type': 'integer', 'default': 320, 'maximum': 1024, 'minimum': 64, 'description': 'SVG pixel size.'}, 'text': {'type': 'string', 'maxLength': 2000, 'minLength': 1, 'description': 'Text or URL to encode.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['svg'], 'properties': {'svg': {'type': 'string', 'description': 'The QR code as SVG markup.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['pattern', 'input'], 'properties': {'flags': {'type': 'string', 'default': 'g', 'maxLength': 8, 'description': 'Regex flags, e.g. "gi". Allowed: g i m s u y d.'}, 'input': {'type': 'string', 'maxLength': 20000, 'minLength': 0, 'description': 'Text to test against.'}, 'pattern': {'type': 'string', 'maxLength': 1000, 'minLength': 1, 'description': 'The regex pattern (without slashes).'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['matched', 'match_count', 'truncated', 'matches'], 'properties': {'matched': {'type': 'boolean', 'description': 'Whether the pattern matched at all.'}, 'matches': {'type': 'array', 'items': {'type': 'object', 'required': ['index', 'match', 'groups'], 'properties': {'index': {'type': 'number'}, 'match': {'type': 'string'}, 'groups': {'type': 'array', 'items': {'type': ['string', 'null']}}}, 'additionalProperties': False}, 'description': 'Each match with its start index and captured groups.'}, 'truncated': {'type': 'boolean', 'description': 'True if results were capped at 100.'}, 'match_count': {'type': 'number'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['input'], 'properties': {'input': {'type': 'string', 'maxLength': 2000, 'minLength': 1, 'description': 'Text to slugify.'}, 'separator': {'enum': ['-', '_'], 'type': 'string', 'default': '-', 'description': 'Word separator.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'The URL-safe slug.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['storage_gb'], 'properties': {'content': {'enum': ['photos', 'video'], 'type': 'string', 'default': 'photos', 'description': 'What to count.'}, 'storage_gb': {'type': 'number', 'maximum': 4096, 'minimum': 1, 'description': 'Advertised storage size in GB (e.g. 64, 128, 256, 512).'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['storage_gb', 'usable_gb', 'content', 'breakdown'], 'properties': {'content': {'type': 'string'}, 'breakdown': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'count', 'unit'], 'properties': {'unit': {'type': 'string'}, 'count': {'type': 'number'}, 'label': {'type': 'string'}}, 'additionalProperties': False}, 'description': 'How many of each item fit.'}, 'usable_gb': {'type': 'number', 'description': 'Usable GB after OS/filesystem overhead.'}, 'storage_gb': {'type': 'number'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['value', 'from', 'to'], 'properties': {'to': {'type': 'string', 'maxLength': 8, 'minLength': 1, 'description': 'Target unit (must be the same category as "from").'}, 'from': {'type': 'string', 'maxLength': 8, 'minLength': 1, 'description': 'Source unit (e.g. "km", "lb", "mib", "c").'}, 'value': {'type': 'number', 'description': 'The numeric value to convert.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['value', 'from', 'to', 'result', 'category'], 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'value': {'type': 'number'}, 'result': {'type': 'number'}, 'category': {'type': 'string'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'type': 'string', 'maxLength': 4000, 'minLength': 1, 'description': 'The URL to parse (absolute, with scheme).'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['scheme', 'host', 'port', 'path', 'query', 'fragment'], 'properties': {'host': {'type': 'string'}, 'path': {'type': 'string'}, 'port': {'type': 'string', 'description': 'Port, or empty if the scheme default.'}, 'query': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'value'], 'properties': {'key': {'type': 'string'}, 'value': {'type': 'string'}}, 'additionalProperties': False}}, 'scheme': {'type': 'string'}, 'fragment': {'type': 'string'}, 'username': {'type': 'string'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'count': {'type': 'integer', 'default': 1, 'maximum': 100, 'minimum': 1, 'description': 'How many to generate.'}, 'version': {'enum': ['v4', 'v7'], 'type': 'string', 'default': 'v4', 'description': 'UUID version. v7 = time-ordered.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['version', 'uuids'], 'properties': {'uuids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The generated UUIDs.'}, 'version': {'type': 'string', 'description': 'UUID version generated.'}}, 'additionalProperties': False}
Modifications récentes des outils
Serveurs MCP similaires
GripForge
Generates, rigs, animates, analyzes, and packages game characters, weapons, armor, effects, environments, and engine-ready assets.
spriteship
Generates and manages 2D game characters, assets, animations, tilesets, UI packs, maps, and engine-ready exports for multiple gam…
Blixtworks
Offers pay-per-call utilities for text, image processing and analysis, data conversion, validation, web inspection, cryptography,…
Compose Preview Catalogs
Browses, renders, compares, audits, and edits Jetpack Compose preview catalogs and associated UI designs.
arch-tools-mcp
Provides general-purpose agent APIs for browser automation, web and PDF extraction, data conversion, email operations, fact check…
kernelcad
Authors, evaluates, reviews, simulates, edits, and exports parametric CAD assemblies and geometry from editable TypeScript-based …
floot
Creates, edits, previews, databases, and publishes full-stack web and mobile applications with hosted resources and deployment wo…
Raven
Supports coding agents with design audits, design-system guidance, and a configurable visual preference profile.