Plumbkit
Server Details
Exact utilities for agents: time zones, date math, business days, calculator, units, validation.
- Status
- Healthy
- Uptime
- 100.0% over 20 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 16 tools
Each tool targets a clearly distinct operation or domain: date/time arithmetic, timezone conversion, unit conversion, math, hashing/encoding, JSON repair/validation, regex testing, text statistics, and four different validators. While business_days and date_diff both involve dates, their stated purposes are distinct and unlikely to be confused.
All names use snake_case and are descriptive, which is a strong baseline. However, the ordering is mixed: many are verb_noun (convert_units, hash_text, validate_email) while others are noun-first or noun-only (business_days, json_repair, regex_test, text_stats), so the pattern is not perfectly uniform.
With 16 tools spanning several utility domains, the count is well-scoped and each tool has a clear reason to exist. There is no obvious redundancy or bloat, and the set feels complete without being overwhelming.
The surface covers core operations for date/time, units, math, text, JSON, and common validators (email, IBAN, phone, URL). Minor gaps remain, such as date formatting/parsing, UUID/random generation, or broader string manipulation, but agents can work around them.
Available Tools
16 toolsbusiness_daysBusiness day calculatorARead-onlyIdempotentInspect
Works with business (working) days. mode "add": returns the date N business days after start_date (start_date itself is not counted; negative N goes backward; 0 returns start_date, or the next business day if start_date is not one). mode "count": counts business days from start_date to end_date, including both ends. Weekends default to Saturday and Sunday. Public holidays are NOT built in — pass them in "holidays".
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Business days to add (mode "add") | |
| mode | Yes | "add" or "count" | |
| weekend | No | Weekend days as ISO weekday numbers (1=Monday ... 7=Sunday). Default [6, 7]. Example for Friday-Saturday weekends: [5, 6] | |
| end_date | No | YYYY-MM-DD (mode "count") | |
| holidays | No | Dates (YYYY-MM-DD) to treat as non-working days | |
| start_date | Yes | YYYY-MM-DD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description adds genuinely non-obvious behavioral detail beyond that: start_date is excluded from the add count, negative N goes backward, N=0 snaps to the next business day, count includes both ends, and weekends default to [6,7] via the weekend parameter. It does not describe the return shape/format for either mode, which is the remaining gap.
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 text is front-loaded with the mode definitions and then the shared configuration rules, and every sentence carries usable information. The opening 'Works with business (working) days' is mild throat-clearing and the density of clauses makes it slightly harder to scan, but there is no real padding.
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-mode date calculator with no output schema, the description covers the mode semantics, edge cases, weekend configuration and the holiday caveat that an agent needs to call it correctly. It omits what each mode returns (a date string vs. an integer count) and the behavior when end_date precedes start_date in count mode, minor but real 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%, so the baseline is 3 and the schema already carries the format and enum details. The description goes beyond it by clarifying the semantics the schema cannot express: holidays must be supplied because none are built in, days accepts negative values meaning backward travel, and start_date is not counted in add mode.
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 resource (business/working days) and enumerates both operations it supports, "add" and "count", with their exact semantics. The business-day framing (weekends, holidays) implicitly separates it from the plain calendar-day siblings date_add and date_diff, so an agent can route correctly 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?
Mode selection is spelled out unambiguously: use "add" for N business days from a start date, use "count" for a span between start_date and end_date. It also proactively warns that public holidays are not built in, which tells the agent when extra input is required. It stops short of naming a sibling alternative (e.g. date_add for plain calendar arithmetic), so no explicit exclusion is offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculateExact calculatorARead-onlyIdempotentInspect
Evaluates an arithmetic expression exactly, so you don't have to do mental math. Supports + - * / % ^ (or **), parentheses, constants pi/e/tau and functions: sqrt, cbrt, abs, round(x, digits), floor, ceil, trunc, sign, ln, log(x[, base]), log10, log2, exp, pow, sin, cos, tan, asin, acos, atan, atan2, min, max, hypot, factorial. Trig uses radians. Example: "(1250 * 1.08^5) - 1250".
| Name | Required | Description | Default |
|---|---|---|---|
| decimals | No | Optional: round the result to this many decimal places | |
| expression | Yes | The expression to evaluate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, not destructive, closed-world), so the bar is low. The description adds real behavioral value beyond them: it discloses exact (non-floating-drift) evaluation and that trig operates in radians, both of which materially affect results. It stops short of describing output formatting or error behavior.
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?
Front-loaded with the core purpose and the benefit, then the syntax reference, then a concrete example. The long function enumeration is dense but earns its place as it defines the accepted input, which is essential to calling correctly.
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, no-output-schema tool, the description covers input grammar, precision behavior, and angular units thoroughly. The only gap is that the return type/shape (numeric vs. formatted string) is left implicit.
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 decimals parameter is already documented. The description adds genuinely new semantics beyond the schema by enumerating the accepted grammar (operators, constants, full function list, radians convention) and giving a worked example, which the terse schema does not provide.
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 precise verb and resource: evaluating an arithmetic expression exactly. No sibling tool overlaps with general expression evaluation, so it is immediately distinguishable from convert_units, business_days, and the validators.
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?
Implied usage is clear (compute a numeric expression), but there is no statement of when to prefer this over siblings like convert_units or date_diff for arithmetic that overlaps those domains, and no prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_timezoneConvert time zonesARead-onlyIdempotentInspect
Converts a date/time from one time zone to another, correctly handling daylight saving time. If the input already includes an offset or 'Z', from_timezone is ignored.
| Name | Required | Description | Default |
|---|---|---|---|
| datetime | Yes | Date/time in ISO 8601 (e.g. "2026-03-08T14:30", "2026-03-08T14:30:00Z", "2026-03-08"), "YYYY-MM-DD HH:mm", a Unix timestamp in seconds or milliseconds, or "now". | |
| to_timezone | Yes | IANA time zone name, e.g. "America/New_York", "Europe/London", "Asia/Tokyo", or "UTC". Fixed offsets like "UTC+5:30" also work. | |
| from_timezone | No | IANA time zone name, e.g. "America/New_York", "Europe/London", "Asia/Tokyo", or "UTC". Fixed offsets like "UTC+5:30" also work. Defaults to UTC. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds real value beyond them by disclosing DST correctness and the rule that from_timezone is ignored when the input carries an offset or 'Z'. It does not describe the output format, which keeps it short of a 5.
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 filler, and the core action is front-loaded ahead of the important edge-case rule. 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?
For a simple read-only conversion tool with no output schema required, the description covers the main pitfall (DST, offset precedence) and the schema documents all inputs. It stops short of describing the returned value's shape, but nothing critical to correct invocation 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%, so the baseline is 3, but the description adds genuine semantics unavailable in the schema: the conditional interaction where from_timezone is silently ignored for offset-bearing inputs. That is exactly the parameter behavior an agent could get wrong.
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 (converts a date/time between time zones) with a clear scope. It is easily distinguished from siblings like current_time, date_add, and date_diff, which do different temporal operations.
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 purpose rather than stated; there is no explicit 'use this when...' or naming of an alternative such as current_time for the present moment. The DST and offset-ignore notes are behavioral rather than selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_unitsUnit converterARead-onlyIdempotentInspect
Converts a value between units of length, mass, volume (US and imperial), area, speed, time, digital data (KB vs KiB, bits vs bytes), energy, pressure and temperature. Accepts common abbreviations (km, lb, fl oz, mph, °F, GiB). US customary units are used for cup/pint/quart/gallon unless you say imperial.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Unit to convert to, e.g. "km", "kg", "celsius", "GiB" | |
| from | Yes | Unit to convert from, e.g. "mi", "pound", "°F", "GB" | |
| value | Yes | The number to convert |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/non-destructive, and the description adds real value beyond them: abbreviation tolerance, the KiB-vs-KB and bits-vs-bytes distinction, and the US-vs-imperial disambiguation rule. It does not say how incompatible or ambiguous units (e.g., mass to length) are handled, which is the one behavioral gap.
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 dense sentences, front-loaded with scope and followed by the two conventions an agent would otherwise get wrong (abbreviations, US default). No filler.
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 3-parameter tool with full schema coverage and no output schema, the description covers scope and the two realistic ambiguity traps. Missing only error/edge-case behavior for dimensionally incompatible conversions.
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 schema already gives example values for from/to, so the baseline is 3. The description's unit-family list and abbreviation examples add marginal orientation but no format or syntax rules 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?
States a specific verb (Converts) and resource (a value between units), then enumerates the supported unit families, which cleanly separates it from siblings like convert_timezone and calculate.
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?
Gives clear context for use: accepted abbreviations are listed and the default US-customary convention for cup/pint/quart/gallon is stated with an explicit override ("unless you say imperial"). No alternative tool exists for this job, so no exclusion clause is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
current_timeCurrent date and timeARead-onlyInspect
Returns the exact current date, time, weekday and UTC offset in any time zone. Use this whenever you need to know today's date or the current time instead of guessing — your training data does not know what day it is.
| Name | Required | Description | Default |
|---|---|---|---|
| timezone | No | IANA time zone name, e.g. "America/New_York", "Europe/London", "Asia/Tokyo", or "UTC". Fixed offsets like "UTC+5:30" also work. | UTC |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, covering the safety profile. The description adds valuable context by specifying exactly what is returned (date, time, weekday, UTC offset) and warning that training data is unaware of the current day, which goes beyond 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, zero waste. The return values are front-loaded, followed by a clear usage directive. 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, read-only tool with no output schema and full annotation coverage, the description provides everything needed: what it returns, when to use it, and why it matters. Nothing an agent needs to invoke it correctly 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 description coverage is 100%, so the schema fully documents the single timezone parameter with examples and default. The description says 'in any time zone' but adds no format or syntax details beyond what the schema already provides. Baseline 3 when schema does the heavy lifting.
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 (Returns) and resource (current date, time, weekday, UTC offset) with scope (any time zone). Clearly distinguishable from siblings like convert_timezone or date_add, which perform computations rather than fetching the current moment.
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 says when to use it: 'whenever you need to know today's date or the current time instead of guessing.' No alternatives are named, but the sibling tools are not substitutes for this purpose, so no exclusion is needed. Clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
date_addAdd or subtract timeARead-onlyIdempotentInspect
Adds or subtracts a duration (years, months, weeks, days, hours, minutes, seconds) to a date/time. Use negative numbers to subtract. Calendar-aware: adding 1 month to Jan 31 gives Feb 28/29, and adding days keeps the same local clock time across daylight-saving changes.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | days to add (negative to subtract) | |
| hours | No | hours to add (negative to subtract) | |
| weeks | No | weeks to add (negative to subtract) | |
| years | No | years to add (negative to subtract) | |
| months | No | months to add (negative to subtract) | |
| minutes | No | minutes to add (negative to subtract) | |
| seconds | No | seconds to add (negative to subtract) | |
| datetime | Yes | Date/time in ISO 8601 (e.g. "2026-03-08T14:30", "2026-03-08T14:30:00Z", "2026-03-08"), "YYYY-MM-DD HH:mm", a Unix timestamp in seconds or milliseconds, or "now". | |
| timezone | No | Time zone the arithmetic happens in. IANA time zone name, e.g. "America/New_York", "Europe/London", "Asia/Tokyo", or "UTC". Fixed offsets like "UTC+5:30" also work. Defaults to UTC. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the readOnly/idempotent/non-destructive profile, and the description goes well beyond them by disclosing calendar semantics that are not derivable from structured fields: month-end clamping (Jan 31 + 1 month = Feb 28/29) and DST-stable local clock time for day arithmetic.
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, zero filler, with the core behavior and the subtraction convention front-loaded before the edge-case semantics. 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?
Nine parameters with 100% schema coverage and no output schema, so the description needs only to convey behavior and conventions. It covers direction of arithmetic, units, and the non-obvious calendar/DST edge cases; safety is fully handled by annotations.
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, but the description adds real meaning by tying day arithmetic to timezone/DST behavior and enumerating the full unit set as a coherent group rather than isolated params. It does not add new format or default details 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?
States a specific verb pair (adds/subtracts) and resource (duration to a date/time), and the unit list in parentheses makes the scope concrete. An agent can distinguish it from date_diff 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?
Explicitly tells the agent to use negative numbers to subtract, which is genuine invocation guidance. It stops short of naming date_diff or stating when this tool is preferred over alternatives, so it is clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
date_diffTime between two datesARead-onlyIdempotentInspect
Calculates the exact time between two dates/times: a calendar breakdown (years, months, days, hours, minutes, seconds) plus totals in days, hours, minutes and seconds, and the number of calendar days. Negative if end is before start.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | Date/time in ISO 8601 (e.g. "2026-03-08T14:30", "2026-03-08T14:30:00Z", "2026-03-08"), "YYYY-MM-DD HH:mm", a Unix timestamp in seconds or milliseconds, or "now". | |
| start | Yes | Date/time in ISO 8601 (e.g. "2026-03-08T14:30", "2026-03-08T14:30:00Z", "2026-03-08"), "YYYY-MM-DD HH:mm", a Unix timestamp in seconds or milliseconds, or "now". | |
| timezone | No | Time zone for inputs without an offset. IANA time zone name, e.g. "America/New_York", "Europe/London", "Asia/Tokyo", or "UTC". Fixed offsets like "UTC+5:30" also work. Defaults to UTC. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds useful behavioral context beyond those annotations: the exact output structure (calendar breakdown plus totals) and the sign convention for reversed dates. With no output schema, this disclosure is valuable, though no auth/rate-limit details are needed for a pure calculator.
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 states the operation first and then details the output components. Every clause earns its place by specifying return formats without padding.
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 stateless date-difference calculator with no output schema, the description fully covers the return values an agent needs: calendar breakdown, totals, calendar days, and negative sign. Input formats and timezone handling are covered by the schema, and safety is covered by annotations. Nothing material 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 description coverage is 100%, so start, end, and timezone are fully documented in the schema. The description adds no parameter-specific meaning beyond what the schema provides; 'two dates/times' and the sign convention are not parameter semantics. Baseline 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?
States a specific verb and resource: 'Calculates the exact time between two dates/times'. The output breakdown (calendar, totals, calendar days) makes the tool's scope concrete, though it does not explicitly contrast with siblings like business_days or date_add, so sibling differentiation is implicit.
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?
Provides no when-to-use guidance or alternatives. It notes the negative result condition but does not say when to choose date_diff over business_days or date_add, leaving usage inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hash_textHash and encode textARead-onlyIdempotentInspect
Computes a cryptographic hash (SHA-1, SHA-256, SHA-384, SHA-512) of text, or encodes/decodes it as Base64, Base64URL, hex or URL-encoding. Text is treated as UTF-8.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| operation | 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 by structured data. The description adds a genuinely behavioral detail beyond that: text is treated as UTF-8, which affects hash/encoding results for non-ASCII input. It does not mention the 200000-character input cap or failure behavior on malformed decode input.
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 that front-loads the primary capability (hashing) and then the secondary one (encoding), with zero filler. Every clause carries information the agent needs.
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?
There is no output schema, so the description bears some responsibility for return-value semantics, yet it never says that hash operations return a hex digest, what the decode operations emit, or what happens on invalid input. For a two-parameter utility with strong annotations this is adequate but leaves a real gap around output form.
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 meaning, and it largely does: it groups and names the twelve operation values and explains the semantics of the text parameter (UTF-8 input). The schema's maxLength of 200000 is left unexplained and the enum values themselves live only in 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 states a specific verb+resource (computes cryptographic hash of text) and enumerates the exact algorithm families (SHA-1/256/384/512) plus the encode/decode operations (Base64, Base64URL, hex, URL). This is clearly distinguishable from siblings like text_stats or regex_test, and the stated capabilities map one-to-one onto the operation enum.
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 implicit: an agent can infer it should call this when it needs hashing or encoding, and no alternative tool in the sibling list overlaps meaningfully. However, there is no explicit when-to-use/when-not-to-use statement, no note on choosing among the twelve operations for a given intent, and no guidance on whether decode operations are the inverse of the encode ones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
json_repairFix broken JSONARead-onlyIdempotentInspect
Turns almost-JSON into valid JSON: removes markdown code fences, comments and trailing commas, adds missing quotes, commas and closing brackets, converts single quotes, Python True/False/None and truncated output. Returns the repaired JSON string and whether the input was already valid.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The broken JSON text | |
| pretty | No | Indent the output. Default false. |
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 covered. The description adds genuinely new context: the return payload ('the repaired JSON string and whether the input was already valid'), which matters because there is no output schema. It stops short of describing failure/irreparable-input behavior.
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 dense sentence, front-loaded with the core transformation and then the specific repairs, closing with the return contract. Every clause carries information; nothing is padding.
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 correctly compensates by naming the two returned values, and the repair catalog makes scope clear. It omits what happens on unrepairable input and does not mention the 500,000-character limit, minor gaps for a deterministic, low-risk 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 description coverage is 100% for both parameters ('The broken JSON text', 'Indent the output. Default false.'), so the schema fully documents them. The description adds no syntax, format, or size guidance for the inputs, so the 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?
Specific verb and resource ('Turns almost-JSON into valid JSON') followed by an enumerated list of the exact repairs performed, so the tool is unmistakably a repairer rather than a validator. It does not name the closest sibling (json_schema_validate) or explicitly contrast against it, which keeps it 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 phrase 'almost-JSON' implies the trigger condition (malformed/truncated JSON), but the description never states when to use this versus json_schema_validate or what to do with input that is already valid. Usage is implied rather than instructed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
json_schema_validateValidate JSON against a schemaARead-onlyIdempotentInspect
Checks a JSON value against a JSON Schema (drafts 4, 7, 2019-09 and 2020-12) and lists every violation with its location. Use it to confirm structured output or an API payload is correct before sending it. data and schema may be JSON values or JSON strings.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | The JSON value to check (any type), or a JSON string of it | |
| draft | No | Default 2020-12 | |
| schema | Yes | The JSON Schema (object), or a JSON string of it |
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 safety is covered. The description adds genuinely new behavior: the output shape ("lists every violation with its location") and the accepted input flexibility (values or JSON strings), which the annotations cannot express.
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 tight sentences, each doing distinct work: capability+scope, when to use, then a parameter caveat. Front-loaded with the capability statement and free of filler.
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 deterministic, read-only validator with only three well-documented parameters, the definition covers purpose, usage, scope and output shape. It leaves failure semantics (e.g. invalid input vs. invalid schema) unstated, and there is no output schema to fall back on, so it is complete but not exhaustive.
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 schema already documents all three parameters including the JSON-string fallback and the draft default. The description's restatement of drafts and JSON-string acceptance is largely redundant, so it earns only the baseline 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 gives a precise verb+resource ("Checks a JSON value against a JSON Schema") plus scope detail — supported drafts and the fact that it "lists every violation with its location." An agent can immediately tell this is a full schema validator rather than a format check, though it never names the nearest sibling (json_repair) to draw the contrast 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?
"Use it to confirm structured output or an API payload is correct before sending it" states a concrete when-to-use scenario. It gives no exclusions or named alternatives (e.g. json_repair for malformed input), so it stops short of full routing guidance.
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
Runs a JavaScript regular expression against text and returns every match with its position and capture groups, or the text after replacement. Use it to verify a regex actually works before relying on it.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| flags | No | Optional flags: i (ignore case), m (multiline), s (dotall), u (unicode), y (sticky). Global matching is always on. | |
| pattern | Yes | Regex pattern without slashes, e.g. "(\\d{3})-(\\d{4})" | |
| max_matches | No | Default 100 | |
| replace_with | No | Optional replacement string ($1, $<name> supported). If set, returns the replaced text too. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description's added value is the disclosure that this is JavaScript-flavored regex and what the return contains (match positions, capture groups, or post-replacement text). It does not mention behavior on an invalid pattern or truncation via max_matches, which is the main remaining gap.
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 with no filler; the core behavior and output shape come first and the usage cue follows. Every clause carries information an agent needs.
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 correctly compensates by describing the return shape (matches with positions and capture groups, or replaced text). It could be more complete by noting invalid-pattern errors and the max_matches cap, but it covers what an agent needs 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 80% (text is the only undocumented parameter), so the schema already carries the parameter burden. The description mentions capture groups and replacement output but adds no syntax or default details beyond what the schema provides, so the baseline 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?
States a specific verb (runs) and resource (JavaScript regular expression against text) and enumerates the outputs (every match with position and capture groups, or the replaced text). This clearly separates it from the validate_* siblings, which check a fixed format rather than executing a user-supplied pattern.
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?
"Use it to verify a regex actually works before relying on it" gives a concrete usage context, which is more than most utility tools offer. It stops short of naming alternatives or stating when-not to use it (e.g., versus validate_email for a known format), so it is clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_statsCount characters, words and linesARead-onlyIdempotentInspect
Counts exactly what language models are bad at counting: characters (as humans see them), words, lines, sentences, paragraphs, UTF-8 bytes, and occurrences of a letter or substring (e.g. how many "r" in "strawberry"). Use it to check length limits (tweets, SMS, meta descriptions, form fields) before submitting text.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to analyze | |
| count | No | Optional letter, word or substring to count occurrences of | |
| overlapping | No | For `count`: count overlapping matches ("aa" in "aaa" = 2). Default false. | |
| case_sensitive | No | For `count`. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description still adds real value by clarifying that character counting is grapheme-level ('as humans see them') rather than code units, and by framing the tool as compensating for LLM counting weakness. It does not mention the 200k input limit, which the schema does carry.
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, both earning their place: the first enumerates capabilities, the second gives the motivating use case. Front-loaded with the core verb and resource, no filler.
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 four-parameter read-only utility with full schema coverage and annotations, the definition is nearly complete. The one real gap is the absence of an output schema combined with no description of the return shape (e.g. a keyed object of counts), which the agent must discover by calling.
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 earns a bump by supplying a concrete motivating example for the `count` parameter ('how many "r" in "strawberry"'), which clarifies intent beyond the schema's terse 'Optional letter, word or substring to count occurrences of'. The boolean flags are left entirely to 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?
Names a specific verb (counts) and enumerates the exact resources measured: characters as humans see them, words, lines, sentences, paragraphs, UTF-8 bytes, and substring occurrences. No sibling in this utility set (hash_text, regex_test, validate_*) does this, so the tool is unambiguously distinguishable.
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?
Gives a clear trigger: check length limits for tweets, SMS, meta descriptions, form fields before submitting text. It states the 'when' concretely but offers no explicit exclusions or alternative tools, which is acceptable since no sibling overlaps in function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_emailValidate an email addressARead-onlyIdempotentInspect
Checks whether an email address is correctly formatted and returns a normalized version. Set check_dns=true to also confirm the domain exists and can receive mail (MX records). Does not send email and cannot confirm that a specific mailbox exists.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | |||
| check_dns | No | Also look up the domain's mail servers. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false. The description goes further by disclosing the return of a normalized value, the DNS/MX side effect of check_dns, and explicit non-capabilities (no email sent, no mailbox verification) — useful context an agent cannot infer from 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?
Three tight sentences: capability first, optional mode second, limitations third. Every sentence earns its place with no repetition of the title or schema.
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 correctly supplies the return behavior (normalized version) and the boundaries of the validation. For a two-parameter read-only tool, nothing an agent needs to call it correctly 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 50%: check_dns is documented in the schema as 'Also look up the domain's mail servers. Default false,' which the description enriches with MX wording, but the required email parameter has no description in either place (maxLength 512 and accepted format are never stated). The description partly compensates but leaves a gap for the required 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?
States a specific verb (checks/validates) and resource (an email address) plus the return behavior ('returns a normalized version'). The scope boundaries ('Does not send email and cannot confirm that a specific mailbox exists') cleanly separate it from the sibling validators validate_iban, validate_phone, and validate_url.
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?
Gives a clear conditional for the optional mode: 'Set check_dns=true to also confirm the domain exists and can receive mail (MX records).' It also states a meaningful limitation (cannot confirm a specific mailbox exists), but it does not explicitly say when to prefer this over sibling validation tools or when validation is unnecessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_ibanValidate an IBANARead-onlyIdempotentInspect
Validates an International Bank Account Number: country, length for that country, and the mod-97 check digits. Returns electronic and printed formats. A valid IBAN is correctly formed; this does not confirm the account exists.
| Name | Required | Description | Default |
|---|---|---|---|
| iban | 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 burden is low. The description adds real value beyond them by disclosing the scope limitation that validity is structural only, and by noting the two output formats returned.
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 with zero filler; the checks are front-loaded and the important caveat about what validity means is placed last as a scope note. 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?
With no output schema, the description usefully explains what is returned (electronic and printed formats) and what the result does not guarantee. The only gap is input-format expectations for the iban argument, which neither the schema nor the description covers.
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% for the single 'iban' parameter, so the description must compensate. It implies the parameter is an IBAN string but says nothing about accepted input format (spaces, hyphens, lowercase, country prefix), which is the main ambiguity a caller would face.
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 precise verb ('validates') and resource ('IBAN') and enumerates the exact checks performed: country, country-specific length, and mod-97 check digits. The resource is unambiguous against siblings like validate_email/validate_phone, and the closing clause pins down what 'valid' means.
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?
Gives clear context by defining the semantics of a positive result ('correctly formed; does not confirm the account exists'), which tells an agent when the tool's answer is and isn't sufficient. It names no alternative tools or explicit when-not conditions, but no sibling performs IBAN validation, so there is little routing ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_phoneValidate and format a phone numberARead-onlyIdempotentInspect
Validates a phone number using Google's libphonenumber rules and returns it in E.164 (+14155552671), international and national formats, plus the country and line type (mobile, fixed line, toll free...). For numbers without a +country code, pass default_country.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | ||
| default_country | No | Two-letter country code used when the number has no "+" prefix, e.g. "US", "GB", "DE" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and non-destructive, so safety is covered. The description adds real behavioral context the annotations don't: the validation ruleset used and the full set of derived values returned. It stops short of describing failure/error behavior for invalid numbers, which matters for a validator.
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 filler, with the core purpose and return values front-loaded and the conditional parameter guidance placed last where it belongs.
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 carries the return-value burden and does so thoroughly (three formats plus country and line type). The only missing piece is what an invalid number yields (error vs. a valid:false result), which an agent calling a validator would want to know.
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 only 50% (the phone parameter itself has no description), so the prose must compensate. It does: it explains when default_country is needed and implies the phone input may or may not carry a + prefix, resolving the ambiguity the schema leaves.
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 (validates) and resource (phone number), names the underlying rule set (Google's libphonenumber), and enumerates exactly what the tool produces (E.164, international, national, country, line type). This clearly separates it from sibling validators like validate_email or validate_iban.
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 gives an explicit conditional instruction: for numbers without a +country code, pass default_country. That is useful routing guidance for the main ambiguity in this tool. It doesn't say what happens on failure or when to prefer another tool, but no sibling realistically overlaps with phone validation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_urlValidate and normalize a URLARead-onlyIdempotentInspect
Checks that a URL is well-formed, normalizes it (lowercase host, punycode, default ports removed, spaces encoded) and splits it into parts including each query parameter. Flags common problems such as missing scheme, private/localhost addresses and credentials embedded in the URL. Does not fetch the URL.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| require_https | No | Treat http:// as invalid. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorldHint=false). The description adds real behavioral detail beyond that: the exact normalization rules (lowercase host, punycode, default port removal, space encoding) and the classes of problems flagged. It stops short of saying how invalid input is surfaced (exception vs. returned error list).
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 dense sentences, front-loaded with the core verb, with the parenthetical normalization list kept tight and the fetch exclusion placed last. No filler.
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 partially carries the return burden by listing normalization output and split parts, including query parameters. It is missing how validation failures are reported (valid flag vs. thrown error vs. problem list), which is the main residual gap for a validator.
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 50%: require_https is documented in the schema, but the required url parameter carries only a maxLength with no description. The description's mention of 'missing scheme' and credentials relates loosely to the semantics but adds no format/syntax guidance for the url argument beyond what the name implies. Baseline 3 fits when the schema does most of the lifting.
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 (checks/validates), the resource (URL), and enumerates the actual work performed: normalization steps, splitting into parts, and flagging problems. An agent can distinguish this from validate_email/validate_iban/validate_phone purely from the resource named.
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?
Provides a clear scope boundary with 'Does not fetch the URL,' which tells the agent this is offline validation and not a network retrieval tool. However, it never names an alternative tool or states when to prefer this over sibling validators beyond the obvious resource difference.
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.
16 tool updates
- First observed
business_days - First observed
calculate - First observed
convert_timezone - First observed
convert_units - First observed
current_time - First observed
date_add - First observed
date_diff - First observed
hash_text - First observed
json_repair - First observed
json_schema_validate - First observed
regex_test - First observed
text_stats - First observed
validate_email - First observed
validate_iban - First observed
validate_phone - First observed
validate_url
Related MCP Connectors
Timezone and business-day truth for agents: now, DST-safe convert, relative dates, holidays.
Time zones and world business days, VAT rates and maths, currency conversion, UK business days…
13 deterministic agent utilities: timezone, cron, RRULE, currency, regex, diff, hashing & more.
Calculate API and subscription costs, meeting time zones, recurring schedules and cron matches.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceTimezone and business-day truth for agents: now, DST-safe convert, relative dates, holidays.MIT
- AlicenseNot gradedqualityAmaintenanceProvides exact, deterministic tools for math, dates, units, validation, and more to AI agents, returning precise answers with explicit assumptions and warnings instead of model guesses.MIT
- AlicenseAqualityBmaintenanceProvides exact calendar calculations from 1971 to 2100, including OPM and Federal Reserve holiday observance, business-day addition and counting, and invoice due dates with weekend and holiday roll rules.5307 npmMIT
- AlicenseAqualityAmaintenanceEnables LLM agents to perform precise decimal-only calculations across tax, payroll, finance, statistics, engineering, and other domains, returning calculation traces and verifiable receipts. It supports batched and pipelined tool calls with policy-aware, date-sensitive computations.2868MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.