Cleanor
Server Details
Zero-auth MCP: image optimize, cited storage/format data, and dev utilities LLMs get wrong.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- cleanor-app/cleanor-mcp
- GitHub Stars
- 0
- Server Listing
- Cleanor Tools
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.3/5 across 12 of 12 tools scored.
Each tool has a clearly distinct purpose: base64 encoding, color conversion, string counting, hashing, image format comparison, JSON formatting, JWT decoding, image optimization, QR code generation, slugification, storage capacity calculation, and UUID generation. No two tools overlap in functionality.
Tool names are mostly consistent using lowercase and underscores, but they mix patterns: some are nouns (color, hash, uuid), some verbs (count, slugify), and some verb_noun pairs (jwt_decode, optimize_image). This minor inconsistency is still readable.
With 12 tools, the count is well within the ideal range. Each tool serves a specific and useful utility function, making the set well-scoped for a general-purpose developer toolkit.
The tool set covers a broad range of common web development utilities (encoding, colors, hashing, JSON, images, UUIDs). Minor gaps like URL encoding or HTML escaping are missing, but the core functionalities are well-represented.
Available Tools
22 toolsbase64Base64 encode / decodeARead-onlyIdempotentInspect
Encode text to Base64 or decode Base64 back to text (UTF-8 safe). Supports URL-safe alphabet. Use whenever you need to encode/decode data URIs, tokens, or config values instead of guessing the bytes.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Direction. | encode |
| input | Yes | Text to encode, or Base64 to decode. | |
| url_safe | No | Use URL-safe alphabet (-_ instead of +/, no padding). |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | encode or decode. |
| result | Yes | The encoded or decoded text. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, lowering the bar. The description adds valuable context beyond annotations: 'UTF-8 safe' and 'Supports URL-safe alphabet' disclose encoding behavior that is not present in the annotations or schema. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences: the first states purpose and key features, the second gives usage guidance. Every word earns its place, with no fluff or repetition of schema fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple encode/decode tool with a complete output schema and strong annotations, the description is fully adequate. It covers purpose, usage context, and key behaviors without needing to explain return values or edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema fully documents each parameter (mode, input, url_safe). The description does not add further parameter-level details beyond the schema, meeting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description immediately states the core function ('Encode text to Base64 or decode Base64 back to text') with specific details like UTF-8 safety and URL-safe alphabet support. It clearly differentiates from sibling tools by naming the encode/decode operation, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit use cases: 'Use whenever you need to encode/decode data URIs, tokens, or config values instead of guessing the bytes.' This gives clear context for when to apply the tool, though it does not exclude alternatives by name, which would warrant a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
base_convertConvert a number between basesARead-onlyIdempotentInspect
Convert an integer between number bases 2–36 (e.g. hex to binary, decimal to base-36). Arbitrary precision via BigInt, so large values stay exact. Use for radix conversions instead of doing them by hand.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | The number, in from_base (e.g. "ff", "1010", "255"). | |
| to_base | No | Base to convert to (2–36). | |
| from_base | No | Base of the input (2–36). |
Output Schema
| Name | Required | Description |
|---|---|---|
| input | Yes | |
| result | Yes | The value in to_base. |
| decimal | Yes | The value in base 10. |
| to_base | Yes | |
| from_base | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so safety behavior is covered. The description adds meaningful context beyond those annotations: 'Arbitrary precision via BigInt, so large values stay exact' and the integer-only constraint. This enriches the behavioral model without contradicting the structured metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences total, front-loaded with a clear purpose statement followed by precision detail and a usage directive. No wasted words; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, annotations confirm it is read-only and idempotent, and an output schema exists (so return format is already covered). The description covers scope, precision, examples, and usage guidance, making it complete for an AI agent to select and invoke the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter fully described (value as string, from_base with default 10, to_base with default 16). The description reinforces this with examples but does not add syntax or format details beyond what the schema already provides. The arbitrary precision note about large values adds a small layer of contextual meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Convert') and resource ('integer between number bases 2–36'), then gives concrete examples (hex to binary, decimal to base-36). This clearly distinguishes it from sibling tools like unit_convert, which handle physical unit conversions rather than radix conversions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The final sentence, 'Use for radix conversions instead of doing them by hand,' explicitly states when to use the tool. It provides context through the base range and integer scope, though it does not explicitly mention when not to use it or name alternatives, which keeps it from a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
colorConvert a color between formatsARead-onlyIdempotentInspect
Convert a color (hex, rgb() or hsl()) and return hex, RGB and HSL representations at once. Use when picking or translating colors for CSS, design tokens or themes.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | A color: "#3b82f6", "rgb(59,130,246)" or "hsl(217,91%,60%)". |
Output Schema
| Name | Required | Description |
|---|---|---|
| hex | Yes | |
| hsl | Yes | |
| rgb | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds behavioral value by stating that it returns all three representations at once, which clarifies the output shape and the fact that no side effects occur. It does not cover error behavior or edge cases, but this is acceptable given the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first explains exactly what the tool does, the second gives the common use cases. Every word earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter conversion tool, the description covers input formats, output format, and use context. An output schema exists, so return values are documented elsewhere. It could mention handling of alpha channels or invalid inputs, but these gaps are minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, as the 'value' parameter already includes examples of each format. The tool description repeats the accepted formats but adds no semantic detail beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'convert' and resource 'a color', specifies accepted input formats (hex, rgb(), hsl()) and the output (hex, RGB, and HSL representations). This distinguishes it from sibling tools like unit_convert or base_convert.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit use case: 'Use when picking or translating colors for CSS, design tokens or themes.' It doesn't name alternatives or exclusions, but for a simple conversion tool this context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
color_paletteGenerate a color paletteARead-onlyIdempotentInspect
Build a harmonious color palette from a base color using color-theory rules (complementary, analogous, triadic, tetradic, or monochromatic). Returns each color as hex and HSL. Use to derive a theme or design tokens from one brand color.
| Name | Required | Description | Default |
|---|---|---|---|
| color | Yes | Base color: "#3b82f6", "rgb(...)" or "hsl(...)". | |
| harmony | No | Color-harmony rule. | analogous |
Output Schema
| Name | Required | Description |
|---|---|---|
| base | Yes | The base color as hex. |
| colors | Yes | |
| harmony | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, covering safety and determinism. The description adds some context about output (hex and HSL) and mentions color-theory rules, but these are largely echoed in the output schema and parameter enum. No behavior beyond what annotations and schema already convey is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences deliver the core action, examples of harmony rules, output format, and a use case. Every phrase earns its place with no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter, read-only, idempotent tool with a full output schema, the description is complete. It explains what the tool does, its inputs, output format, and typical use, leaving no significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both 'color' and 'harmony' have clear descriptions, and harmony's enum and default are documented. The description repeats the harmony examples and adds 'hex and HSL' as output, but does not enrich parameter meaning beyond the schema. Baseline 3 for high coverage is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action: 'Build a harmonious color palette from a base color using color-theory rules', listing all supported harmony types. This distinctly separates it from sibling tools like 'color', which likely handles single color conversions, and the title reinforces the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear use case: 'Use to derive a theme or design tokens from one brand color.' While it doesn't explicitly mention alternatives or exclusions, the context is sufficient to decide when to invoke it. A more explicit pointer to sibling 'color' for single-color operations would have made it a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
countCount characters, words, lines, bytesARead-onlyIdempotentInspect
Accurately count characters (Unicode code points), UTF-16 units, words, lines and UTF-8 bytes in text. LLMs are notoriously bad at counting, so always use this tool for "how many characters/words" questions.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Text to measure. |
Output Schema
| Name | Required | Description |
|---|---|---|
| bytes | Yes | UTF-8 bytes. |
| lines | Yes | |
| words | Yes | |
| characters | Yes | Unicode code points. |
| utf16_units | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds context about what is counted (Unicode code points vs UTF-16 units vs UTF-8 bytes), which is useful behavioral detail beyond the annotations. It does not describe return format or edge cases, but given the annotations cover the main risks, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, both earning their place. The first lists the countable units, the second gives a compelling usage guideline. No filler or redundant phrasing. It is well-structured and front-loaded with the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter, full schema coverage, and an output schema present (as indicated by context signals). The description covers the purpose, usage context, and accuracy guarantees. It is complete for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the input parameter has the description 'Text to measure.' which fully explains its purpose. The tool description adds no additional parameter-level detail beyond what the schema provides, so the baseline score of 3 is retained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool does: 'Accurately count characters (Unicode code points), UTF-16 units, words, lines and UTF-8 bytes in text.' It uses a specific verb ('count') and a specific resource (text), and enumerates the exact metrics. This distinguishes it from sibling utility tools like base64 or json_format, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use the tool: 'LLMs are notoriously bad at counting, so always use this tool for "how many characters/words" questions.' This clearly communicates the intended use case. However, it does not explicitly mention when not to use it or name alternative tools, though the sibling set makes alternatives obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cron_describeExplain a cron expressionARead-onlyInspect
Parse a standard 5-field cron expression (minute hour day-of-month month day-of-week) into a plain-English breakdown and the next few run times in UTC. Use to sanity-check a schedule instead of guessing what the fields mean.
| Name | Required | Description | Default |
|---|---|---|---|
| expression | Yes | A 5-field cron expression, e.g. "30 2 * * 1-5". |
Output Schema
| Name | Required | Description |
|---|---|---|
| hour | Yes | |
| month | Yes | |
| minute | Yes | |
| next_runs | Yes | Next run times in UTC ISO 8601. |
| day_of_week | Yes | |
| day_of_month | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description adds that the output is a plain-English breakdown and next run times in UTC. It does not explicitly state that 'next few' are relative to the current time, but with readOnly hint and output schema present, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and then the usage rationale. No redundant words; every clause adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a single parameter and an output schema, so the description does not need to explain return structures. It covers the input format, output nature, and timezone, which is complete for this simple utility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and includes an example, but the description further clarifies the field order ('minute hour day-of-month month day-of-week'), which is not in the schema's brief '5-field cron expression' text. This adds meaningful semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Parse') and identifies the exact resource (standard 5-field cron expression) and the two outputs (plain-English breakdown and next run times). It clearly distinguishes this from sibling tools, none of which relate to cron parsing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly suggests when to use it ('Use to sanity-check a schedule instead of guessing what the fields mean'), which tells the agent the intended context. It doesn't mention exclusions or alternatives, but no sibling tool overlaps, so the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
datetimeCurrent or parsed date/timeARead-onlyInspect
Get the current date/time, or convert a given timestamp, into a target IANA timezone with ISO, Unix and human-readable forms. Pass a Unix timestamp (seconds or ms) or an ISO string as input; omit it for "now". LLMs cannot know the real current time, so use this instead of guessing.
| Name | Required | Description | Default |
|---|---|---|---|
| input | No | Optional: a Unix timestamp (s or ms) or ISO date string. Omit for the current time. | |
| timezone | No | IANA timezone, e.g. "America/New_York" or "UTC". | UTC |
Output Schema
| Name | Required | Description |
|---|---|---|
| local | Yes | Human-readable local time in the timezone. |
| unix_s | Yes | |
| iso_utc | Yes | |
| unix_ms | Yes | |
| timezone | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true. The description adds meaningful behavior: it accepts Unix seconds/ms or ISO strings, omitting input means 'now', and output includes ISO, Unix, and human-readable forms. It does not contradict annotations and provides useful context beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the primary purpose and then efficiently explains input handling and rationale. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, and a full output schema exists. The description covers purpose, input formats, timezone behavior, and usage rationale. No significant gaps remain for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description repeats that input can be a Unix timestamp or ISO string and mentions the IANA timezone, but it does not add meaning beyond what the schema already provides for each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets the current date/time or converts a given timestamp into a target IANA timezone, with ISO, Unix, and human-readable forms. It uses specific verbs ('get', 'convert') and specifies the resource (date/time, timestamp, timezone), making it distinct from all sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'LLMs cannot know the real current time, so use this instead of guessing', giving a clear when-to-use scenario. It does not name alternatives or exclusions, but no sibling tool offers similar date/time functionality, so the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diffLine diff between two textsARead-onlyIdempotentInspect
Compute a line-by-line diff between two texts, marking removed lines with "-", added with "+" and unchanged with two spaces, plus a change count. Use to see exactly what changed instead of comparing by eye. Capped at 1000 lines per side.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | The original ("before") text. | |
| b | Yes | The updated ("after") text. |
Output Schema
| Name | Required | Description |
|---|---|---|
| diff | Yes | The line diff (+/-/space prefixed), empty if identical. |
| added | Yes | |
| changed | Yes | |
| removed | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint and idempotentHint, so the description adds valuable behavioral details beyond them: the exact prefix notation for diff lines and the line cap. This gives the agent a better sense of the output format and limits without needing to invoke the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences, front-loaded with the primary action and output format. Every sentence earns its place: what it does, the marking style and count, the use case, and the line cap. There is no wasted wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose, the exact output format, a practical usage motivation, and a critical limit. With an output schema present to detail the return structure and complete schema descriptions for both parameters, the description is comprehensive for this moderate-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters ('a' and 'b') have descriptions in the schema ('original (before)' and 'updated (after)'), achieving 100% schema coverage. The description's mention of 'two texts' adds no new semantic detail beyond what the schema already provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Compute') and resource ('line-by-line diff between two texts'), and details the output format (marking removed/added/unchanged lines plus a change count). It stands out distinctly from unrelated siblings such as base64, color, or count.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage context ('Use to see exactly what changed instead of comparing by eye') and mentions a constraint (capped at 1000 lines per side). However, it does not explicitly name alternative tools or provide when-not-to-use conditions beyond the cap, so it falls short of the highest bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hashHash text (SHA family)ARead-onlyIdempotentInspect
Compute a cryptographic hash of text (SHA-1, SHA-256, SHA-384 or SHA-512) and return the hex digest. Use for checksums, cache keys, or verifying content. MD5 is intentionally not offered (broken, and unavailable in Web Crypto). LLMs cannot compute these reliably by hand, so always use this tool instead of guessing.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Text to hash (UTF-8). | |
| algorithm | No | Hash algorithm. Default sha-256. | sha-256 |
Output Schema
| Name | Required | Description |
|---|---|---|
| hex | Yes | The hex-encoded digest. |
| algorithm | Yes | The hash algorithm used. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and idempotent hints. The description adds useful context: MD5 is excluded because it is broken and unavailable in Web Crypto, and LLMs cannot compute hashes reliably, making tool use necessary. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: it states the action, lists use cases, and explains the MD5 exclusion and LLM limitation. Every sentence adds value, and the key action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations providing safety profile, the description covers purpose, use cases, limitations, and parameter behavior. There are no significant gaps for this simple hashing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers both parameters with descriptions and an enum (100% coverage). The description reiterates the algorithm list but adds no new parameter-level detail, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it computes a cryptographic hash of text using SHA algorithms and returns a hex digest. It is specific about the resource and action, but does not explicitly differentiate from the sibling hmac tool, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit use cases ('checksums, cache keys, or verifying content') and states that MD5 is intentionally not offered. It does not mention alternatives like hmac or explicitly say when not to use this tool, so it is good but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hmacHMAC signature of a messageARead-onlyIdempotentInspect
Compute an HMAC (keyed hash) of a message with a secret, using SHA-1/256/384/512, returned as hex or Base64. Use to sign webhook payloads or verify a signature instead of guessing. LLMs cannot compute this by hand.
| Name | Required | Description | Default |
|---|---|---|---|
| secret | Yes | The shared secret key (UTF-8). | |
| message | Yes | The message to sign (UTF-8). | |
| encoding | No | Output encoding. | hex |
| algorithm | No | Hash algorithm. | sha-256 |
Output Schema
| Name | Required | Description |
|---|---|---|
| encoding | Yes | |
| algorithm | Yes | |
| signature | Yes | The HMAC in the requested encoding. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, covering safety. The description adds valuable context with 'LLMs cannot compute this by hand,' explaining why the tool exists and warning the agent not to attempt manual calculation. It also reinforces the keyed-hash behavior (needing a secret), going beyond the annotation-only baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: the first says what it does, the second when to use it, and the third why it is necessary. Every sentence earns its place, with no fluff or repetition. The most critical information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a utility tool with a full schema, an output schema, and safety annotations, the description is complete. It covers the function, the use case, and the limitation (LLM hand-computation). The absence of return-value details is acceptable since an output schema exists. No gaps remain for the agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (secret, message, encoding, algorithm) already fully described. The tool description does not add any meaning beyond the schema—it merely restates algorithm and encoding options. Baseline 3 applies when the schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb 'Compute' and names the exact resource: 'an HMAC (keyed hash) of a message with a secret'. It lists supported algorithms (SHA-1/256/384/512) and output formats (hex/Base64), immediately distinguishing it from the sibling 'hash' tool by emphasizing the keyed nature and its signing/verification use case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'Use to sign webhook payloads or verify a signature instead of guessing.' This gives clear context for invocation. However, it does not explicitly name an alternative tool (e.g., 'use hash for unkeyed digests'), so it stops short of the highest score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
image_format_savingsReal storage savings of next-gen image formatsARead-onlyInspect
How much smaller WebP, AVIF or JPEG XL are than JPEG at matched perceptual quality, from Cleanor Labs’ controlled benchmark. Also reports the "HEIC conversion tax" (converting an iPhone HEIC to JPG/PNG makes it bigger). Use to justify a format choice when building a site or app.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Target format to compare against JPEG. | avif |
| quality | No | web = typical web quality (SSIM 0.95); high = near-lossless (SSIM 0.98). | web |
Output Schema
| Name | Required | Description |
|---|---|---|
| format | Yes | |
| source | Yes | |
| quality | Yes | |
| all_formats | Yes | |
| percent_smaller_than_jpeg | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=true, the description adds useful context beyond the annotation: the benchmark source ('Cleanor Labs’ controlled benchmark') and the additional HEIC conversion tax output. It does not contradict annotations and provides a clear behavioral picture without needing to describe side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core value proposition, then the extra HEIC detail, and finally the use case. Every sentence earns its place; no filler or repetition of schema information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has only 2 parameters with full schema descriptions, an output schema, and a clear description covering purpose, use case, and additional output. The agent has all necessary context to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaning by explaining the 'matched perceptual quality' concept, which directly relates to the quality parameter. It also ties the format parameter to the comparison against JPEG, going beyond the schema's enum list.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the tool's function: it quantifies storage savings of WebP, AVIF, and JPEG XL over JPEG at matched quality. It also mentions the HEIC conversion tax and explicitly states the intended use ('justify a format choice'), distinguishing it from sibling tools like optimize_image or placeholder_image.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit use case: 'Use to justify a format choice when building a site or app.' It clearly indicates when to use the tool. It doesn't name alternatives or exclusion criteria, but the context is sufficient for an agent to decide between this and other image-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
json_formatFormat / validate JSONARead-onlyIdempotentInspect
Validate JSON and pretty-print or minify it, optionally sorting object keys. Returns a precise parse error (with position) if invalid. Use to check and clean JSON instead of eyeballing it.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | pretty = 2-space indent; minify = single line. | pretty |
| input | Yes | JSON text. | |
| sort_keys | No | Sort object keys alphabetically (deep). |
Output Schema
| Name | Required | Description |
|---|---|---|
| valid | Yes | Whether the input was valid JSON. |
| formatted | Yes | The formatted JSON text. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so safety is covered. The description adds valuable behavioral detail: it returns a precise parse error with position if invalid, which informs the agent of failure behavior. This is beyond what annotations provide and is useful for handling errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. The first sentence states core functionality, the second adds error behavior and usage guidance. Information is front-loaded and every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers validation, formatting modes, optional key sorting, and error reporting. Given the tool's moderate complexity, full schema coverage, and presence of an output schema, the description is complete enough for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter fully described (input, mode with enum, sort_keys with default). The description repeats the mode and sort behavior without adding new meaning, so it does not elevate beyond the baseline of 3. It confirms the intended use but doesn't offer extra insight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool validates JSON and can pretty-print or minify it, with optional key sorting. This is a specific verb + resource ('Format / validate JSON') and differentiates from sibling tools by focusing on JSON processing rather than encoding, hashing, or generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context: 'Use to check and clean JSON instead of eyeballing it.' This indicates when the tool is appropriate, though it does not explicitly mention when not to use it or alternatives. The guidance is clear enough for an agent to select it for JSON validation/formatting needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jwt_decodeDecode a JWT (no verification)ARead-onlyIdempotentInspect
Decode a JSON Web Token into its header and payload so you can inspect claims (iss, exp, sub, scopes). The signature is NOT verified and no secret is required or stored. Use to read a token during debugging.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | The JWT (three dot-separated segments). |
Output Schema
| Name | Required | Description |
|---|---|---|
| header | No | The decoded JWT header object. |
| exp_iso | No | Expiry as ISO 8601, if present. |
| expired | No | Whether the token is past its exp, if present. |
| payload | No | The decoded JWT payload (claims). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, but the description adds critical behavioral context: 'The signature is NOT verified and no secret is required or stored.' This goes beyond the structured annotations by clarifying security implications and output content (header and payload).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero filler. The first sentence states purpose and output, the second highlights the critical caveat, and the third gives a direct use case. Information is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter tool with an output schema declared, the description fully covers the purpose, behavior, output, and use case. It also addresses security-relevant aspects (no verification, no secret storage), making it complete for both selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with a description for the token parameter ('The JWT (three dot-separated segments)'). The tool description adds some context about what the decoded result contains, but it doesn't elaborate on the parameter beyond what the schema already states, so it meets the baseline without exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Decode a JSON Web Token into its header and payload' and the purpose 'so you can inspect claims.' It distinguishes itself from sibling tools by specifically targeting JWT decoding, with the title also adding 'no verification.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage context: 'Use to read a token during debugging.' It also implies a when-not by stating 'The signature is NOT verified,' signaling this is not for validation. However, it doesn't name alternative tools for verification, so it falls short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
optimize_imageOptimize / convert an image for the webARead-onlyInspect
Fetch an image from a public URL and re-encode it smaller (WebP/AVIF/JPEG), optionally resizing to a target width. Returns the optimized image plus before/after byte sizes. Use this when an AI-generated or dropped-in asset (hero image, screenshot, illustration) is too large to ship.
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | Resize to this width in px, preserving aspect ratio. Omit to keep original size. | |
| format | No | Output format. webp = best browser support; avif = smallest; jpeg = universal. | webp |
| quality | No | Encode quality 1-100 (80 is a good default). | |
| image_url | Yes | Public URL of the source image (PNG/JPEG/WebP/AVIF/GIF). |
Output Schema
| Name | Required | Description |
|---|---|---|
| format | Yes | Output image format. |
| mime_type | Yes | |
| saved_pct | Yes | Percent smaller than the original. |
| original_bytes | Yes | |
| optimized_bytes | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and openWorldHint=true, and the description aligns with these, adding context beyond them. It discloses the key behavior: fetching from a public URL, re-encoding to a smaller size, and returning before/after byte sizes. This is useful contextual info beyond the annotations, though it does not reveal potential edge cases like URL accessibility or size limits, which are not required given the openWorldHint and schema coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the main action, and the second sentence justifies usage. Every word earns its place, with no redundant phrases or filler. It is concise, structured, and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a tool with 4 parameters (1 required) and an output schema. It explains the core function, the optional resizing, and the return type (optimized image with before/after sizes). The use case is also stated. Given the output schema exists, it does not need to detail return values further. A minor gap is the lack of mention of potential input constraints (e.g., must be publicly accessible), but the schema's URI format already hints at this, so 4 is fair.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description mentions 'optionally resizing to a target width' and lists formats, but these mirror the schema descriptions rather than adding new meaning. No additional parameter semantics beyond the schema are provided, so a 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Fetch an image from a public URL and re-encode it smaller (WebP/AVIF/JPEG), optionally resizing to a target width.' This uses a specific verb (fetch and re-encode) with clear resources and output. It distinguishes itself from siblings like placeholder_image (which generates placeholders) and image_format_savings (which likely estimates savings without performing conversion) by focusing on actual conversion/optimization.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit use case: 'Use this when an AI-generated or dropped-in asset (hero image, screenshot, illustration) is too large to ship.' This gives clear guidance on when to use the tool. However, it does not explicitly mention when not to use it or name alternative tools like image_format_savings for comparative analysis, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
placeholder_imageGenerate a placeholder image (SVG)ARead-onlyIdempotentInspect
Generate a lightweight SVG placeholder image at any size, with an optional label and custom background/text colors. Dependency-free, pastes straight into a page or mockup. Use for wireframes and design stubs instead of hotlinking a placeholder service.
| Name | Required | Description | Default |
|---|---|---|---|
| bg | No | Background color (hex, rgb() or hsl()). | #e5e7eb |
| text | No | Label text. Defaults to the dimensions, e.g. "600×400". | |
| color | No | Text color. | #6b7280 |
| width | No | Width in pixels. | |
| height | No | Height in pixels. |
Output Schema
| Name | Required | Description |
|---|---|---|
| svg | Yes | The SVG markup. |
| width | Yes | |
| height | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering safety and determinism. The description adds meaningful behavioral context: the SVG is lightweight, dependency-free, and pastes directly into a page or mockup, implying the output is inline SVG markup. It does not contradict annotations and enriches them with output-format expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficiently crafted sentences: the first states the core function and customization, the second adds dependency-free integration and a use case. Every word earns its place; no redundancy or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, full schema coverage, output schema presence, and strong annotations, the description is complete. It covers purpose, output shape (SVG, paste-ready), and usage scenario. The output schema handles return-value details, so no further explanation is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage of all five parameters, complete with descriptions and defaults. The description's references to 'optional label' and 'custom background/text colors' simply mirror the schema fields without adding new meaning. Per the rubric, high schema coverage warrants a baseline 3, which is appropriate here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Generate') and identifies the resource ('lightweight SVG placeholder image') plus customization options (label, colors). It clearly distinguishes from sibling image tools like image_format_savings and optimize_image, which deal with format analysis rather than creation. The phrase 'instead of hotlinking a placeholder service' further narrows its unique role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit use case ('wireframes and design stubs') and an alternative to avoid ('hotlinking a placeholder service'), giving clear context. It stops short of listing when not to use the tool (e.g., when a raster PNG is required), so it lacks full exclusion criteria but still offers actionable guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
qr_codeGenerate a QR code (SVG)ARead-onlyInspect
Encode text or a URL as a QR code and return a crisp, dependency-free SVG you can paste straight into a page, deck or doc.
| Name | Required | Description | Default |
|---|---|---|---|
| ecc | No | Error-correction level: L=7%, M=15%, Q=25%, H=30% recoverable. | M |
| size | No | SVG pixel size. | |
| text | Yes | Text or URL to encode. |
Output Schema
| Name | Required | Description |
|---|---|---|
| svg | Yes | The QR code as SVG markup. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond the readOnlyHint annotation by specifying the output is a crisp, dependency-free SVG that can be pasted directly. This clarifies the return format and quality, which is useful behavioral information. No contradictions with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence that immediately states the action, input, and output. It is concise with no wasted words, and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately covers the tool's purpose, input, and output format, and the presence of an output schema reduces the need to explain return values. It could mention error-correction or size limits, but those are already in the schema, so overall it is complete enough for a simple generation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides full descriptions for all three parameters (text, ecc, size), covering their meanings and defaults. The description adds no additional parameter-specific semantics beyond confirming that text or a URL is encoded, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool encodes text or a URL into a QR code and returns an SVG. It uses a specific verb (encode) and resource (QR code), and distinguishes itself from sibling tools by its unique output format and dependency-free nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the primary use case—generating a QR code for embedding in pages, decks, or docs—but does not explicitly exclude alternative tools. Since no sibling tool overlaps with QR generation, the context is clear enough, though not as explicit as naming alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regex_testTest a regular expressionARead-onlyIdempotentInspect
Test a JavaScript regular expression against sample text and return whether it matches, plus every match with its captured groups and index. Use to verify a pattern instead of reasoning about it in your head. Input and pattern are length-capped to keep it fast and safe.
| Name | Required | Description | Default |
|---|---|---|---|
| flags | No | Regex flags, e.g. "gi". Allowed: g i m s u y d. | g |
| input | Yes | Text to test against. | |
| pattern | Yes | The regex pattern (without slashes). |
Output Schema
| Name | Required | Description |
|---|---|---|
| matched | Yes | Whether the pattern matched at all. |
| matches | Yes | Each match with its start index and captured groups. |
| truncated | Yes | True if results were capped at 100. |
| match_count | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the JavaScript flavor detail and notes length caps (input and pattern) to keep it fast and safe, supplementing annotations that already signal read-only and idempotent behavior. It also states output includes matches with groups and ideas, which goes beyond annotation info.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: purpose, usage, and safety constraint. Each sentence adds distinct value and is front-loaded with the core functionality, with no redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only regex testing tool with full schema coverage and an output schema, the description covers purpose, usage, and constraints. The presence of an output schema means the description doesn't need to enumerate return value structures, and annotations cover side-effect safety.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, each parameter is already well-described in the schema. The description adds only a general note about length caps, which is already reflected in maxLength properties, so it provides minimal additional parameter semantics beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool tests a JavaScript regular expression against sample text and returns match status, every match, captured groups, and indices. This specific verb+resource combination clearly distinguishes it from all sibling utility tools, none of which relate to regex testing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance to use this tool to verify a pattern instead of reasoning about it mentally, which implies the appropriate use case. It does not explicitly exclude any scenarios or name alternative tools, so it falls slightly short of fully explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
slugifySlugify text for URLsARead-onlyIdempotentInspect
Turn a title or phrase into a clean, URL-safe slug (lowercase, hyphenated, accents stripped). Use when generating page paths, filenames or anchor IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Text to slugify. | |
| separator | No | Word separator. | - |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | The URL-safe slug. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, and the description adds useful behavioral context: 'lowercase, hyphenated, accents stripped' and 'URL-safe'. This goes beyond the annotations to describe the transformation behavior. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a concise two-sentence structure with the primary action front-loaded and the use cases clearly stated. No filler words or redundant information—every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity, strong annotations, and presence of an output schema, the description fully covers what an agent needs to understand the tool's purpose, behaviors, and applicable scenarios. Nothing missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions, so the baseline is 3. The description does not add significant parameter-specific meaning beyond noting the transformations; it restates the separator concept implicitly via 'hyphenated' but does not explicitly discuss the separator parameter. Schema descriptions carry the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Turn') and resource ('title or phrase into a clean, URL-safe slug'), and explicitly lists the transformations applied (lowercase, hyphenated, accents stripped). This distinguishes it from sibling utility tools like base64, hash, or url_parse.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases ('page paths, filenames or anchor IDs'), which clearly signals when to use the tool. However, it does not mention any exclusions or alternatives, so it falls short of a full 5 per the rubric.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
storage_capacityHow much fits in a phone storage tierARead-onlyInspect
How many photos or minutes of video actually fit in a given storage size, corrected for real OS/filesystem overhead. Backed by Cleanor Labs measured per-item sizes. Use for realistic sample copy, dashboards, or "how many photos fit in 128 GB" answers.
| Name | Required | Description | Default |
|---|---|---|---|
| content | No | What to count. | photos |
| storage_gb | Yes | Advertised storage size in GB (e.g. 64, 128, 256, 512). |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | |
| breakdown | Yes | How many of each item fit. |
| usable_gb | Yes | Usable GB after OS/filesystem overhead. |
| storage_gb | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds meaningful behavioral context: it corrects for OS/filesystem overhead and is backed by Cleanor Labs measured per-item sizes. This clarifies data provenance and the calculator's accuracy, going beyond the safety annotation without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: the core function, the data source, and concrete use cases. No fluff, front-loaded with the main question it answers.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with an output schema, the description fully covers the tool's purpose, key corrections, and typical applications. The annotations cover safety, and the schema covers parameters and output, so no critical context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds semantic value by explaining that the storage size is interpreted as advertised capacity and the result is corrected for real overhead. It also explicitly mentions 'photos or minutes of video', aligning with the content enum and clarifying the meaning of the output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: calculating how many photos or minutes of video fit in a storage size, with a specific verb ('fit') and resource ('storage size'). It also distinguishes itself from siblings by focusing on corrected/realistic capacity rather than generic conversion tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit use cases: 'Use for realistic sample copy, dashboards, or "how many photos fit in 128 GB" answers.' It doesn't mention alternatives or exclusions, but given no sibling tool overlaps significantly, the guidance is clear and practical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unit_convertConvert between unitsARead-onlyIdempotentInspect
Convert a value between units of length, mass, data size, time, speed or temperature. Supported units: mm, cm, m, km, in, ft, yd, mi, nmi, mg, g, kg, t, oz, lb, st, bit, byte, kb, kib, mb, mib, gb, gib, tb, tib, ms, s, min, h, day, week, mps, kph, mph, fps, knot, c, f, k. Use for exact conversions instead of approximating.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target unit (must be the same category as "from"). | |
| from | Yes | Source unit (e.g. "km", "lb", "mib", "c"). | |
| value | Yes | The numeric value to convert. |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | Yes | |
| from | Yes | |
| value | Yes | |
| result | Yes | |
| category | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description adds value beyond that by listing the complete set of supported units and the exactness conditional. No contradictions with annotations; this is a pure, side-effect-free conversion operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is mostly a single purposeful sentence with a necessary unit list. It is front-loaded with the action and categories, and the trailing usage hint is concise. The long unit list is justified by the need to enumerate accepted values, so it earns a high but not perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 required parameters and an output schema, the description covers the unit inventory and use case, making it functionally complete. It does not explain error behavior for incompatible units, but the schema's 'from'/'to' descriptions already convey the constraint. Overall, the agent has enough context to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the schema describes all parameters, it lacks enums for 'from' and 'to'. The description compensates by providing an exhaustive list of valid units, which is essential for correct invocation. This goes beyond the minimal schema descriptions and adds significant meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific action ('Convert a value between units') and enumerates the categories (length, mass, data size, time, speed, temperature), distinguishing it from sibling conversion tools like base_convert or color. The title 'Convert between units' is reinforced by the detailed scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The instruction 'Use for exact conversions instead of approximating' provides clear usage context, implying this tool should be chosen when precise conversion is needed. It does not explicitly name alternatives or exclusions, but the context is sufficient for an agent to decide when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
url_parseParse a URL into partsARead-onlyIdempotentInspect
Break a URL into its components: scheme, host, port, path, decoded query parameters and fragment. Use to inspect or debug a URL instead of parsing it by eye.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to parse (absolute, with scheme). |
Output Schema
| Name | Required | Description |
|---|---|---|
| host | Yes | |
| path | Yes | |
| port | Yes | Port, or empty if the scheme default. |
| query | Yes | |
| scheme | Yes | |
| fragment | Yes | |
| username | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering the safety profile. The description adds value by specifying that query parameters are 'decoded' and by enumerating the output components. It does not discuss error behavior for invalid URLs, but the annotations lower the bar, and the added decode detail justifies a 4 rather than a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences. The first sentence front-loads the action and output components; the second gives practical usage context. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple one-parameter, read-only tool with an output schema and supportive annotations. The description covers purpose, usage context, and the nature of the result (decoded query parameters). Nothing essential is missing for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter schema coverage is 100%: the 'url' parameter is described as 'absolute, with scheme,' which aligns with the description's use of 'URL.' The description does not add any new parameter-level meaning beyond what the schema provides. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Break') and resource ('a URL'), and explicitly lists the output components (scheme, host, port, path, decoded query parameters, fragment). This clearly distinguishes the tool from sibling utilities, which are entirely different (base64, datetime, etc.).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit context for when to use the tool: 'Use to inspect or debug a URL instead of parsing it by eye.' It doesn't name an alternative tool, but among the siblings there is no obvious conflicting URL parser, so this guidance is sufficient. A dedicated 'when not to use' clause is absent, which prevents a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uuidGenerate UUIDsARead-onlyInspect
Generate one or more UUIDs. v4 is fully random; v7 is time-sortable (recommended for database keys). LLMs cannot produce cryptographically random or correctly-formatted UUIDs, so always use this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | How many to generate. | |
| version | No | UUID version. v7 = time-ordered. | v4 |
Output Schema
| Name | Required | Description |
|---|---|---|
| uuids | Yes | The generated UUIDs. |
| version | Yes | UUID version generated. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the tool is known to be safe. The description adds behavioral context by explaining randomness (v4) vs. time-sortability (v7), which is useful beyond the annotation's binary safety signal. It also notes the guarantee of correctly formatted output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences, front-loading the core purpose and then adding practical usage details. No wasted words; every sentence contributes to understanding the tool's function and selection criteria.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, an output schema that documents return values, and clear annotations, the description fully covers the essential context: what it does, why it's needed, and how to choose the version. It is complete without being verbose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters with clear descriptions and default values, so the description does not need to restate them. The description adds semantic context for the version parameter by explaining when to choose v7, but this is mostly redundant with the schema's enum description. Baseline of 3 is appropriate given full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates UUIDs, a specific and distinct function among the sibling utility tools. It also elaborates on UUID versions (v4 and v7), adding meaningful specificity beyond a simple verb+resource statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly recommends v7 for database keys and stresses that LLMs cannot produce valid UUIDs, so this tool should always be used. This provides clear when-to-use guidance and effectively excludes manual generation as an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- Alicense-qualityCmaintenanceLLM-native image optimization middleware & MCP server. Reduces vision model token consumption by preprocessing images into tile-boundary-aligned, padding-free formats.693Elastic 2.0
- Alicense-qualityAmaintenanceLossless context compression for LLMs, packing text into 2x-8x fewer tokens with byte-exact reconstruction. Provides MCP tools to compress files/text and expand exact slices, verified by sha256.6MIT
- FlicenseBqualityCmaintenanceLocal MCP server for token optimization, providing tools to compress code/JSON, optimize prompts, and manage placeholder-based content redaction and hydration to reduce LLM token usage.5

@first-ch/tools-mcpofficial
AlicenseAqualityBmaintenanceMCP server exposing First CH Tools' free web-tool logic for WCAG contrast, JP character counting, WebP conversion, JSON-LD, and llms.txt generation to AI agents.692MIT
Your Connectors
Sign in to create a connector for this server.