tools.clean/mcp
Read-only developer, date, finance, and text utilities. Authless remote MCP server by Clean.tools.
Parse a 5-field cron expression and return a human-readable description plus the exact next run times. Prefer this over reasoning about cron semantics yourself: it correctly handles ranges, lists, steps, month/day names, and the tricky day-of-month OR day-of-week rule. Next runs are computed in UTC.
Validate a 5-field cron expression and return whether it is well-formed, the specific error if not, and the expanded matching values per field. Use this to check cron syntax instead of guessing whether an expression is valid.
Build an iCalendar RRULE string (RFC 5545) from structured recurrence options, describe it in plain English, and expand the next occurrences. Prefer this over manually computing recurring dates: it correctly handles INTERVAL, COUNT/UNTIL exclusivity, BYDAY with ordinals (e.g. the 2nd Monday), BYMONTH, and month-length edge cases.
Convert a wall-clock date-time from one IANA time zone to another, accounting for DST. Prefer this over doing timezone math yourself: it uses the runtime's IANA database so offsets and daylight-saving transitions are correct.
Format a date-time using C/POSIX strftime directives (%Y %m %d %H %M %S %A %B %j %z etc.) and return the result. Use this instead of guessing what a strftime pattern produces. Times are formatted in UTC.
Compute a fixed-rate loan/mortgage monthly payment and a year-by-year amortization schedule (principal, interest, remaining balance). Prefer this over doing the amortization arithmetic yourself; it uses the standard payment formula and handles the 0% case.
Solve the time value of money equation for any one of N, I/Y, PV, PMT, or FV given the other four. Prefer this for annuity/loan/investment problems: I/Y uses Newton-Raphson (no closed form) and it supports compounding frequency and annuity-due timing.
Project the growth of a principal with compound interest and optional recurring monthly contributions, returning the final balance and a year-by-year breakdown. Prefer this over estimating compound growth; it iterates month-by-month for accuracy.
Two modes. mode="rate": convert a nominal annual rate to APY given compounding frequency. mode="loan": solve the true APR of an installment loan from its amount, monthly payment, term, and fees (Reg-Z style, Newton-Raphson). Prefer this over approximating APR/APY.
Solve for the interest rate that grows a principal to a target amount over a number of years, using simple or compound interest. Prefer this over trial-and-error; compound mode uses the exact nth-root formula.
Compute SHA-1, SHA-256, and/or SHA-512 hex digests of a UTF-8 string using Web Crypto. Always use this instead of trying to produce a hash from memory; hashes cannot be guessed.
Compute a line-level diff between two texts using longest-common-subsequence, returning added/removed/unchanged lines and counts. Prefer this over eyeballing differences between two blocks of text.
Run a JavaScript regular expression against a test string and return every match with its index, captured groups, and named groups. Prefer this over predicting regex matches yourself. Inputs are length-bounded as a ReDoS guard.
Convert tabular data between JSON (array of objects), CSV, TSV, and XML. Prefer this over hand-transforming structured data: it handles quoted CSV fields, nested-object flattening, and union headers across rows.
Check whether a number passes the Luhn (mod-10) checksum used by credit-card and other identifier numbers, returning validity plus the per-digit working. Prefer this over computing the checksum by hand.
Convert a value between units within a category (length, weight, temperature, volume, data, speed, area, time). Prefer this over unit-conversion arithmetic; factors are exact and temperature uses the correct offset formulas.
Generate cryptographically random RFC 4122 version-4 UUIDs. Always use this to mint UUIDs rather than fabricating one, so the version/variant bits and randomness are correct.
Generate cryptographically secure random integers or decimals in a range using unbiased rejection sampling. Prefer this over inventing 'random' numbers, which are neither uniform nor reproducible-safe.
Generate strong passwords using Web Crypto randomness. mode="random" builds character-set passwords; mode="memorable" builds word-based passphrases. Prefer this over making up a password, which will be weak and predictable.
Decode (NOT verify) a JSON Web Token: base64url-decode the header and payload, surface standard claims, and report expiry relative to now. The signature is never checked, so never authorize anything based on the output. Prefer this over trying to read a JWT by eye.
Encode or decode text with URL percent-encoding, HTML entities, Base64 (UTF-8 safe), or Unicode escapes. Prefer this over doing the encoding by hand; edge cases like multi-byte characters and entity tables are handled correctly.
Count words, characters (with and without spaces), sentences, and paragraphs in text using Unicode-aware segmentation (Intl.Segmenter), including grapheme-correct character counts and abbreviation-aware sentence splitting. Prefer this over estimating counts.
Encode text into a QR code (byte mode, EC level M, versions 1-10) and return both the module matrix (rows of 0/1) and a ready-to-render SVG string. Prefer this over describing a QR code; the matrix is a correct, scannable encoding.
Convert text between naming/letter cases. Given text and a target case (upper, lower, title, sentence, camel, snake, kebab, or constant), returns the converted string. Uses smart word tokenization (splits camelCase, snake_case, kebab-case, and whitespace) so a phrase in any style can be re-cased consistently. Title case honors an editorial stop-word list and preserves ALL-CAPS acronyms.
Transform ASCII letters and digits into styled Unicode glyphs (bold, italic, script, fraktur, double-struck, monospace, circled, small-caps, and more) for use where fonts aren't available (social bios, usernames). Call with a `style` and `text` to get the transformed string. Omit `style` to discover the list of valid style keys.
Render a Markdown string to a sanitized HTML fragment. Supports headings, bold/italic/strikethrough, inline and fenced code, links and images (with an http/https/mailto URL-scheme allowlist; other schemes become "#"), blockquotes, ordered/unordered/task lists, GFM tables, and horizontal rules. All raw angle brackets are HTML-escaped, so the output is XSS-safe to inject. Use when you need to preview or convert lightweight Markdown to HTML matching the Clean.tools markdown preview tool.
Generate deterministic Lorem Ipsum placeholder text. Given a mode ("paragraphs", "sentences", "words", or "formatted") and a count, returns the same fixed text every time by cycling a built-in Latin corpus. Use for filler/placeholder copy in mockups, tests, or layout. Count is clamped to the mode's limit (paragraphs 20, sentences 100, words 500) and ignored for "formatted", which returns a fixed rich-text block as plain text.
Redacts sensitive terms in a block of text by replacing each occurrence with block characters (████). Give it text plus the terms to hide (as a comma-separated string or an array of strings). By default it matches whole words only and is case-insensitive; set fixedWidth to hide how long each redacted term was. Returns the redacted text and a count of replacements, and never echoes the original terms. Use for scrubbing names, emails, IDs, or other secrets before sharing text.
Pretty-print / reformat a SQL query into a readable, canonical layout: each clause keyword (SELECT, FROM, WHERE, GROUP BY, ...) on its own line with its arguments indented beneath it, commas breaking columns onto new lines, JOIN/AND/OR starting fresh lines, and short parenthesised groups kept inline. Use when a user pastes messy or minified SQL and wants it formatted, or wants keyword casing normalized. Returns the formatted SQL as text.
Derive color-harmony palettes from a single hex color using HSL hue/lightness rotations. Given one hex color (with or without a leading #), returns the base color plus complementary, analogous, triadic, split-complementary, and monochromatic swatch sets as arrays of hex strings. Use for generating design palettes or accent/shade sets from a brand color.
Compute the WCAG 2.x contrast ratio between a foreground and background hex color. Returns the ratio (1-21), pass/fail booleans for normal and large text at AA and AAA levels (thresholds 4.5 / 7 / 3 / 4.5), and a suggested passing foreground hex when normal-text AA fails (null otherwise). Use for accessibility checks of text/background color pairs.
Build a CSS gradient value from 2-5 hex color stops. Use when the user wants a ready-to-paste `linear-gradient(...)` or `radial-gradient(...)` CSS value from a set of colors and an optional direction. Returns the gradient value string plus the normalized type/direction/colors.
Percentage calculator with three modes: "of" computes X% of Y (fields percent, value); "is-what" computes what percent X is of Y (fields x, y); "change" computes the percent change from one value to another (fields from, to). Returns the numeric result plus a human-readable formula string. Use for quick percentage math, ratios, and percent-increase/decrease.
Calculate a restaurant tip and split the bill. Given a bill amount, a tip percentage, and an optional number of people (default 1), returns the tip amount, grand total, and the per-person tip and per-person total, all rounded to cents. Use for tipping, bill-splitting, or gratuity questions.
| Timestamp | Status | Latency | Conformance |
|---|---|---|---|
| Jul 8, 2026 | success | 199.7ms | Pass |
| Jul 8, 2026 | success | 138ms | Pass |