MCP Tools for the Things LLMs Get Wrong
Large language models are excellent at language and unreliable at determinism. Ask an LLM to hash a string, generate a real UUID, count the characters in a paragraph, or tell you the current time, and it will answer with total confidence and frequently be wrong. The fix is not a better prompt. The fix is to stop asking the model to compute and let it call a tool that computes exactly. That is what the Cleanor MCP server does: it gives any AI agent a set of deterministic, zero-auth tools for the operations models get wrong.
TL;DR
- LLMs guess at anything deterministic, hashes, UUIDs, counting, the current time, regex, cron, and conversions, because they predict tokens, they do not run algorithms.
- The fix is tooling, not prompting: hand the agent a tool that returns the one correct answer.
- The Cleanor MCP server exposes 22 read-only tools for exactly this, free, no API key, connectable in a minute.
Why LLMs get these wrong
An LLM predicts the next token. It does not run an algorithm, hold a register, or read a clock. So for any task with a single correct answer that depends on exact computation, the model is guessing from patterns it saw in training:
- Hashing and encoding. A SHA-256 digest or a Base64 string has one correct value. The model has no hasher, so it fabricates a plausible-looking string.
- Random identifiers. A UUID must be correctly formatted and, for v4, cryptographically random. Models produce UUIDs that look right but are neither random nor guaranteed valid.
- Counting. Because models see tokens, not characters, "how many characters are in this text" is a classic failure. Word, line, and byte counts drift too.
- The current time. A model cannot know the real date and time, or convert a Unix timestamp to a timezone, without a clock.
- Math on structure. Regex matches, cron schedules, unit conversions, base conversions, and text diffs are all deterministic, and all routinely mishandled when reasoned about in prose.
None of this is a knock on the models. It is simply the wrong job for a next-token predictor. Give the agent a tool, and the failure disappears.
The deterministic tools, and what they replace
The Cleanor MCP server exposes read-only tools that return exact answers instead of guesses. The developer utilities cover the everyday cases:
| Tool | Replaces the model guessing at |
|---|---|
hash |
SHA-1 / 256 / 384 / 512 digests |
uuid |
UUID v4 (random) and v7 (time-sortable) |
base64 |
Base64 encode and decode, UTF-8 safe |
json_format |
Validating and pretty-printing JSON |
jwt_decode |
Reading a JWT header and payload |
color |
hex, RGB, and HSL conversion |
slugify |
URL-safe slugs from titles |
count |
Characters, words, lines, and bytes |
regex_test |
Matches and captured groups for a pattern |
cron_describe |
What a cron expression means and its next runs |
unit_convert |
Length, mass, data, time, speed, temperature |
datetime |
The real current time in any IANA timezone |
url_parse |
Scheme, host, path, query, and fragment |
base_convert |
Integers between bases 2 to 36 |
diff |
A line-by-line diff of two texts |
hmac |
Keyed HMAC signatures (SHA family) |
placeholder_image |
A sized SVG placeholder with a label |
color_palette |
A harmonious palette from one base color |
Alongside these, the server also does the two things a general-purpose utility server usually cannot: it actually optimizes and converts images an AI just generated (optimize_image), and it hands back cited Cleanor Labs research data on device storage capacity and image-format savings. Every response links its source, so an agent's answer stays verifiable.
Deterministic beats "reason about it" every time
The pattern to adopt is simple: when a task has exactly one correct answer that a small program could produce, call a tool instead of prompting harder. A verified hash is worth more than a fluent paragraph explaining a hash. A tool call that returns 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 for the SHA-256 of "hello" is correct by construction. A model that types it from memory is rolling dice.
This also makes agents safer to run unattended. Every Cleanor tool is annotated read-only, needs no credentials, and holds no state, so there is nothing to authorize and nothing to rotate.
Connect it in under a minute
The server is free, has no API key, and needs no signup.
Claude Code:
claude mcp add --transport http cleanor https://mcp.cleanor.app/mcp
Cursor, VS Code, or Claude Desktop (mcp.json):
{
"mcpServers": {
"cleanor": {
"url": "https://mcp.cleanor.app/mcp"
}
}
}
Stdio-only clients can run it locally with npx @cleanor/mcp. The server is also listed in the official MCP Registry as app.cleanor/cleanor.
The bottom line
The takeaway is not that LLMs are bad. It is that determinism is a tooling problem, not a prompting problem. Wire up an MCP server for the exact answers, and let the model do what it is actually good at.
FAQ
Which operations do LLMs get wrong most often?
Hashing, UUID generation, character and token counting, the current date and time, regex matching, cron interpretation, unit and base conversion, and exact text diffs. All of them are deterministic, and all are better handled by a tool call than by prompting.
Is the Cleanor MCP server free?
Yes. It is zero-auth with no API key and no signup, protected only by generous per-IP rate limits.
Do I need to send any data or credentials?
No. The developer utilities are pure computation with no authentication, and nothing is stored.
Which clients work with it?
Any MCP client that speaks Streamable HTTP, including Claude Code, Claude Desktop, Cursor, VS Code, Windsurf, and Cline. Stdio-only clients can run npx @cleanor/mcp.
Can I self-host it?
Yes. It is published on npm as @cleanor/mcp and can run locally over stdio, or you can point any client at the hosted endpoint for zero setup.