CodeKitHub
Server Details
Everyday calculators and converters for AI assistants: units, dates, percentages, text, JSON.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-03-26
- URL
TDQS
Scored across 13 tools
Each tool targets a clearly distinct operation, and the descriptions make boundaries explicit. Date/time tools are separated by purpose: age from a birth date, difference between two dates, and timestamp/ISO conversion, so misselection is unlikely.
All names use snake_case, but the naming pattern mixes verb_noun (calculate_age, hash_text) with noun_noun or noun_verb forms (date_difference, color_convert, json_tools). The set remains readable, but it does not follow a single predictable convention.
With 13 tools, the server is well within a useful range and each tool covers a distinct common utility. No tool appears redundant or included just to pad the surface.
The suite covers a solid range of everyday utilities: dates, numbers, text, encoding, hashing, JSON, colors, units, and tool discovery. It lacks broader categories such as image or code utilities mentioned by find_tool, but agents can still complete most common utility workflows.
Available Tools
13 toolscalculate_ageARead-onlyIdempotentInspect
Exact age from a birth date: years, months, days, total days and days until the next birthday.
| Name | Required | Description | Default |
|---|---|---|---|
| as_of | No | YYYY-MM-DD, default today (UTC). | |
| birth_date | Yes | YYYY-MM-DD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is fully covered and the bar is lower. The description adds the return-value breakdown, which is genuinely useful since no output schema exists, but it says nothing about timezone/date-format edge cases or failure behavior for invalid dates.
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 sentence with zero filler, front-loaded with the core purpose and followed by the output components. Nothing is wasted.
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 read-only calculation, the description plus annotations plus a fully documented schema cover what an agent needs. The only gap is that return values are described while missing an output schema, and the as_of parameter is never referenced in prose.
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 both parameters and their YYYY-MM-DD format and default-today behavior are already documented in the schema. The description does not mention as_of at all, adding no meaning beyond the structured fields — 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 states a specific verb and resource ('Exact age from a birth date') and enumerates the returned components (years, months, days, total days, days to next birthday). It does not explicitly distinguish itself from the sibling date_difference, but the tool's purpose is unambiguous.
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?
Usage is implied by the birth-date framing, which makes the intended context clear. However, there is no explicit guidance on when to prefer this over date_difference, nor any note on the as_of parameter's role in backdating an age calculation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_percentageARead-onlyIdempotentInspect
Percentage maths. percent_of: a% of b. what_percent: a is what % of b. percent_change: change from a to b.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | ||
| b | Yes | ||
| mode | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive, so the safety profile is covered. The description then adds the real behavioral content — what each mode actually computes — though it omits edge behavior such as division by zero and whether results are returned as fractions or percentages.
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?
One short opening sentence plus three compact mode clauses, each front-loaded with its enum value. Zero filler; every clause maps to a required input.
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 three-parameter, side-effect-free calculator with no output schema, this covers the essentials. The remaining gap is that return-value conventions and error cases (e.g. b = 0) are left for the agent to guess.
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 0%, so the description must carry parameter meaning, and it does: it defines how a and b are interpreted in each of the three modes (a% of b, a as a percentage of b, change from a to b). It leaves the numeric return convention ambiguous, which keeps it from a 5.
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?
States the resource (percentage maths) and enumerates the three exact operations it performs, each with a formulaic gloss. An agent can distinguish this from siblings like compound_interest or date_difference without opening the schema.
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 three mode names imply when each applies, but there is no explicit when-to-use guidance, no exclusions, and no mention of alternatives among the math/convert siblings. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
color_convertARead-onlyIdempotentInspect
Convert a colour between HEX, RGB and HSL.
| Name | Required | Description | Default |
|---|---|---|---|
| color | Yes | #1d6fe0, rgb(29, 111, 224) or hsl(215, 77%, 50%) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile of this pure conversion is fully covered. The description adds no behavioral context beyond that — nothing about invalid-input handling or output shape — but with rich annotations the bar is lower.
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?
One short sentence, front-loaded with the verb and resource, with zero filler. Nothing could be removed without losing meaning.
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 one-parameter, well-annotated utility with no output schema, the definition covers what an agent needs to invoke it correctly. The only gap is that the return value (a string in the requested format) is never stated, though it is strongly implied.
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% and the single parameter's description already gives concrete examples in all three formats, so the schema does the heavy lifting. The description reinforces the supported format trio but adds no syntax or edge-case detail beyond 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?
States a specific verb (convert) and resource (a colour) plus the exact formats supported (HEX, RGB, HSL), so an agent knows precisely what the tool does. It does not need to distinguish itself from siblings like convert_units or encode_decode, whose resources are unrelated, but it also never names them.
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?
Usage is only implied by the purpose: input one colour format, get another. There is no explicit when-to-use statement, no mention of what happens with an unrecognised format, and no pointer to an alternative tool for ambiguous cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compound_interestBRead-onlyIdempotentInspect
Compound interest with optional monthly contributions: final balance, total contributed and interest earned.
| Name | Required | Description | Default |
|---|---|---|---|
| years | Yes | ||
| principal | Yes | ||
| compounds_per_year | No | Default 12. | |
| annual_rate_percent | Yes | ||
| monthly_contribution | No | Default 0. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful output context (final balance, total contributed, interest earned), but it does not disclose calculation assumptions such as contribution timing or compounding behavior beyond what the schema states.
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 single front-loaded sentence with no wasted language. It efficiently states the tool's purpose, optional variant, and return values.
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 names the returned values, which is helpful because there is no output schema. However, with five parameters and only 40% schema description coverage, it leaves relevant invocation details such as contribution timing and compounding assumptions unaddressed.
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 only 40%, and the description adds meaning only for the optional monthly contribution. It does not explain principal, annual_rate_percent, years, or compounds_per_year beyond what their names and the two schema descriptions already convey.
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 identifies a compound-interest calculator and names the optional monthly-contribution variant, along with the outputs it produces. It is specific enough to distinguish this from sibling tools like calculate_percentage or convert_units, though it does not explicitly contrast with alternatives.
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?
There is no explicit guidance on when to use this tool versus another, nor any stated prerequisites or exclusions. Usage is only implied by the tool name and the mention of optional monthly contributions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_caseBRead-onlyIdempotentInspect
Change text case: upper, lower, title, sentence, camel, pascal, snake, kebab or constant.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| style | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is fully covered. The description adds only scope ('text case'), with no note on output form or how unknown/mixed input casing is handled — acceptable but minimal given annotations carry the load.
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 front-loaded sentence with no filler. It is slightly redundant with the enum, but that redundancy is cheap and aids scanning.
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, fully annotated, idempotent text-transform tool with two required params, the description is sufficient to call it correctly. The only real gap is per-style semantics, which is a minor risk for formats like sentence or constant.
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 0%, so the description does compensate somewhat by enumerating the valid styles, but this merely repeats the enum and gives no semantics for each style (e.g., sentence vs title, or how camel/snake handle word boundaries). The 'text' parameter's meaning is left entirely implicit.
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?
States a specific verb and resource ('Change text case') plus the full set of supported styles, so an agent can tell it apart from siblings like text_stats or encode_decode. No explicit sibling routing, but overlap is minimal.
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?
There is no when-to-use or when-not-to-use guidance and no mention of alternatives; the agent must infer that this is the tool for case normalization rather than, say, text_stats. Usage is implied by the name only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_unitsARead-onlyIdempotentInspect
Convert between units of length, mass, volume, area, speed, time, data size and temperature, e.g. 5 miles to km or 72 F to C.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | Unit, e.g. mi, km, lb, kg, gal, l, mph, GB, MiB, C, F, K. | |
| value | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as read-only, idempotent, non-destructive, and closed-world. The description adds the supported unit dimensions and examples but does not disclose output format, handling of unsupported units, or error behavior. With annotations covering the safety profile, this is adequate but not rich.
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 single compact sentence with the core purpose front-loaded and examples appended efficiently. Every phrase 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, read-only conversion tool with full annotations and no output schema, the description supplies enough scope and examples to call it correctly. It stops short of explicitly stating the numeric return value, but that is a minor omission.
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 only 33%, with only 'from' described in the schema. The description's examples ('5 miles to km or 72 F to C') and unit-category list partially compensate by clarifying the kinds of values 'from' and 'to' accept, but they do not fully document all parameters.
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 states a specific verb and resource ('Convert between units') and enumerates the supported dimensions plus concrete examples. It clearly distinguishes itself from conversion siblings such as color_convert and timestamp_convert by focusing on physical and data units.
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 supported categories and examples give a clear usage context: use for converting numeric quantities between units. There is no explicit exclusion or named alternative, but the scope is unambiguous enough for an agent to select it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
date_differenceBRead-onlyIdempotentInspect
Days, weeks and calendar years/months/days between two dates.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | Yes | YYYY-MM-DD | |
| start_date | Yes | YYYY-MM-DD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds useful context by enumerating the unit breakdowns returned, but it does not say whether the result is signed or absolute, which date is subtracted from which, or how partial months/years are resolved.
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 tight sentence with no filler, and the most decision-relevant information (the units returned) is front-loaded. It is terse rather than padded, though the fragment form costs a little clarity.
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 two-parameter, non-destructive calculation with no output schema, the description covers the essentials but leaves open the direction of the subtraction and the handling of negative intervals — details an agent would want before calling it.
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 both parameters are documented as YYYY-MM-DD, so the schema carries the load. The description adds nothing about the two parameters, and the baseline of 3 applies.
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 names the resource (two dates) and the computed quantity (days, weeks, calendar years/months/days between them), which is enough to separate it from siblings like calculate_age and timestamp_convert. It lacks an explicit verb, so the phrasing reads as a noun fragment, but the operation is unambiguous.
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?
There is no guidance on when to pick this over calculate_age (age from a birthdate) or timestamp_convert, which are the closest siblings. The agent must infer the choice from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
encode_decodeBRead-onlyIdempotentInspect
Encode or decode text: Base64, URL, HTML entities, hex.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | ||
| text | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds nothing beyond that — no behavior for invalid input (malformed Base64 or hex), no note on character-set assumptions for hex or URL encoding. With annotations carrying the load, this earns little credit.
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 front-loaded sentence that names the action first and the supported formats second. No filler, nothing buried.
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 two-parameter pure-function utility with no output schema, the description covers the essentials but omits failure behavior and the fact that the return value is the transformed string. Adequate for invocation, thin for 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 description coverage is 0%, so the description must compensate; it partially does by naming the four format families that map onto the eight enum modes, making the encode/decode direction inferable. It never explains that 'text' is the raw input string or clarifies the escape/unescape pairing, so the enum still has to be read from 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?
States a specific verb pair (encode/decode) and resource (text), plus the four supported encodings, which distinguishes it from siblings like hash_text and convert_case. It stops short of explicitly naming those siblings as alternatives.
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?
Usage is only implied: the listed formats tell an agent this is the tool for Base64/URL/HTML/hex transformation, and the mode enum does the routing. There is no statement of when to prefer hash_text or convert_case, and no note on what to do with unsupported inputs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_toolBRead-onlyIdempotentInspect
Find a free online tool on CodeKitHub (there are hundreds: converters, calculators, generators, text, code and image tools). Returns the tool page link.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| max_results | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds only that results are tool page links over a bounded catalog; it says nothing about result ordering, whether queries are fuzzy or exact, or what an empty result looks like — gaps annotations cannot fill.
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 tight sentences: purpose and catalog scope first, return value second. No filler, though the parenthetical category list is slightly long for the value it adds.
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 read-only search with no output schema, the description covers what it does and what it returns (a page link). It is still incomplete on the things an agent must guess: query semantics and the effect of max_results.
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 0%, so the description must carry parameter meaning and does not: neither `query` (free-text? category? tool name?) nor `max_results` (cap 15, defaults unknown) is mentioned. Only the word 'Find' loosely hints at what `query` accepts, leaving `max_results` entirely undocumented in both schema and description.
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?
States a specific verb+resource ('Find a free online tool on CodeKitHub'), scopes the catalog with concrete categories, and discloses the return value ('the tool page link'). It lacks sibling differentiation: the siblings are all concrete tools (calculate_age, hash_text, etc.), and the description never explains that this is the discovery entry point relative to them.
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 discovery framing implies when to use it — when you don't yet know which CodeKitHub tool you need — but nothing is stated explicitly. There is no mention of when not to use it, and no instruction to then invoke the specific sibling tool it surfaces.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hash_textBRead-onlyIdempotentInspect
SHA hash of a text (SHA-1, SHA-256, SHA-384, SHA-512). Do not send secrets you need to keep private.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| algorithm | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds one genuinely non-obvious behavioral fact beyond them: hashing is irreversible, so secrets should not be submitted. It says nothing about the output format (hex string? length?), which matters for a hash utility with no output schema.
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 short sentences, no filler, and the core purpose is front-loaded ahead of the caveat. Nothing could be removed without losing 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?
For a two-parameter utility with no output schema, the description covers purpose and adds a privacy caveat, which is reasonable. The missing default algorithm and unspecified return format (digest encoding/case) are real gaps an agent cannot resolve from structured fields alone.
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 0%, so the description must carry the parameter burden, and it largely does not beyond echoing the enum values already in the schema. Most importantly it never states which algorithm is used when the optional `algorithm` argument is omitted, nor how the input text is encoded before hashing.
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?
"SHA hash of a text" states a specific verb (hash) and resource (text), and the parenthetical enumerates the supported algorithms, so the agent knows exactly what the tool computes. It does not, however, distinguish itself from the nearest sibling (encode_decode), which an agent might plausibly reach for instead.
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?
Usage is implied by the name and by the utility-tool neighborhood, and the privacy caveat functions as a partial "when not to use" signal. There is no explicit statement of when to prefer this over encode_decode or how to pick among the four algorithms.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
json_toolsCRead-onlyIdempotentInspect
Format, minify or validate JSON.
| Name | Required | Description | Default |
|---|---|---|---|
| json | Yes | ||
| action | No | ||
| indent | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds nothing beyond that: it does not say whether validate returns a boolean or an error message, what happens on malformed input, or what the default action is when action is omitted.
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 terse sentence with zero padding, front-loaded with the verbs. Brevity is appropriate, though it is under-specified rather than optimally concise.
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 no output schema, the description should explain the return shape of each mode — especially validate, whose output could be a boolean, a message, or a formatted error. Combined with 0% parameter coverage, an agent cannot invoke this confidently without guessing.
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 0%, so the description carries the full burden, yet it only echoes the action values. The required `json` payload and the indent parameter (range 1-8, applicable only to format) go entirely unexplained in both schema and description.
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?
States specific verbs (format, minify, validate) against a specific resource (JSON), so an agent knows exactly what the tool does. Sibling tools are all distinct utility functions, so no explicit differentiation is needed, but the description does not say it operates on a supplied string rather than a file.
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 three operation names are listed but there is no guidance on when to pick one over another, no note that indent only matters for format, and no mention of what validate does differently (report-only vs. mutate). Usage is only inferable from the action enum in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_statsARead-onlyIdempotentInspect
Count characters, words, sentences, paragraphs and lines, and estimate reading time.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, non-destructive, and closed-world, so the safety profile is fully covered. The description adds what metrics are computed but does not describe the return format, how reading time is estimated, or how lines/paragraphs are counted — details an agent might need.
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 single efficient sentence that front-loads the action and lists all metrics without any extraneous text. Every word 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 annotations cover behavior, but there is no output schema and the description does not explain the return shape (e.g., whether counts are returned as an object, in what order) or the basis of reading-time estimation. It is adequate but leaves clear gaps for an agent to infer.
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?
There is one parameter ('text') with 0% schema description coverage. The description implies that the input text is what gets analyzed, but it adds no explicit meaning beyond the parameter name, such as required format, size limits, or handling of empty strings. Baseline is adjusted for one param with no schema documentation.
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 states a specific action (count) and enumerates the exact resources/metrics: characters, words, sentences, paragraphs, lines, plus reading time. It is clear what the tool does, though it does not explicitly differentiate itself from sibling tools, which is less necessary here since none overlap.
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?
Usage is implied by the listed metrics, but there is no explicit guidance on when to use this tool versus alternatives, nor any mention of prerequisites or exclusions. For a simple utility tool this is minimally adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timestamp_convertARead-onlyIdempotentInspect
Convert a Unix timestamp (seconds or milliseconds) or an ISO date to both forms; "now" gives the current time.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it read-only, idempotent, non-destructive and closed-world, so the description needn't restate safety. It does add real behavioral context beyond them: the seconds-vs-milliseconds input tolerance, the 'now' sentinel, and the fact that output covers both forms. What's missing is how an ambiguous numeric value (e.g. 10 digits vs 13) is disambiguated.
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?
One front-loaded sentence that covers the verb, the accepted inputs, the output guarantee, and the 'now' special case. No filler and nothing buried.
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 one-parameter converter with no output schema, the description supplies the accepted input domain and enough of the return shape ('both forms') to call it confidently. A note on invalid-input behavior or the exact output structure would close the last gap.
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 0% and the single string parameter is completely bare in the schema, so the description must carry the load — and it does, enumerating Unix seconds, Unix milliseconds, ISO date, and the literal 'now'. It stops short of specifying the accepted ISO format variants or precision details.
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?
A specific verb ('Convert') plus a specific resource (Unix timestamp / ISO date) with the accepted input forms named inline. It implicitly separates itself from siblings like date_difference and calculate_age by being a pure format conversion, though it does not name those siblings explicitly.
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?
Usage is only implied: the described input formats make it clear this is the tool for normalizing a timestamp, and 'now' is flagged as a valid shorthand. There is no explicit statement of when to prefer this over date_difference or calculate_age, and no guidance on invalid input.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
13 tool updates
- First observed
calculate_age - First observed
calculate_percentage - First observed
color_convert - First observed
compound_interest - First observed
convert_case - First observed
convert_units - First observed
date_difference - First observed
encode_decode - First observed
find_tool - First observed
hash_text - First observed
json_tools - First observed
text_stats - First observed
timestamp_convert
Related MCP Connectors
500+ deterministic tools for AI agents: math, conversion, validation, hashing, encoding, date/time.
60+ units, live FX, timezones, and date arithmetic for AI agents.
More than a hundred everyday tools: PDFs, images, text, data, calculators, dice and currency.
Loan & mortgage calculator, compound interest, ROI, crypto prices, FX conversion for AI agents.
Related MCP Servers
- AlicenseBqualityCmaintenanceEnables AI agents to perform 22 unit conversions and common calculations such as length, weight, temperature, volume, tip, percentage, date difference, age, currency, cooking, and fuel consumption.141MIT
- FlicenseNot gradedqualityDmaintenanceProvides basic utility tools including calculator for arithmetic operations, text processor for string transformations, and JSON formatter for validating and formatting JSON data.1-
- AlicenseAqualityDmaintenanceProvides advanced mathematical utilities including basic arithmetic, statistical analysis, unit conversions, quadratic equation solving, percentage calculations, and trigonometric functions for AI assistants.6MIT
- AlicenseAqualityBmaintenanceEnables users to compute everyday developer and text utilities—including JSON formatting, QR codes, unit and timestamp conversion, hashing, Base64, regex testing, password/UUID generation, and word counting—through read-only tools without AI calls or external lookups.10498 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.