Public leaderboard

Public assessment

ofershap/mcp-server-devutils (mcp-server-devutils)

mcp-server-devutils · v0.1.0 · scanned

What changed in the harness

Selection accuracy 100→95, token cost up 21%, unconfirmed writes 100%→100%.

Category breakdown

Where the score comes from.

Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.

01Safety

30.0 / 30

30.0 out of 30
02Legibility

20.6 / 30

20.6 out of 30
03Economics

19.7 / 20

19.7 out of 20
04Discoverability

14.6 / 20

14.6 out of 20

Highest-impact fix

Estimated gain +1 point

Rewrite 17 underspecified tool descriptions

State each tool's behavior, explain every parameter, and declare return semantics, prioritizing tools exercised by failed selection tasks.

Description evidence

Defects and rewrites.

17 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.

Tool Defect types Suggested rewrite
base64_encode
name_restates_behavior no_return_description
Convert a plain-text string into its Base64-encoded representation, commonly used to safely transmit or store data over ASCII-only channels. Returns the Base64-encoded string for the given input.
base64_decode
name_restates_behavior no_return_description
Decode a Base64-encoded string back into its original plain-text form. Use when you need to recover the text that was Base64-encoded. Returns the decoded string for the given input.
uuid_generate
name_restates_behavior no_return_description
Generate one or more random version-4 (UUIDv4) identifiers, useful when you need unique keys without centralized coordination. Returns an array of random UUID v4 strings, one per count (default 1, up to 100).
ulid_generate
name_restates_behavior no_return_description
Generate a single ULID, a Universally Unique Lexicographically Sortable Identifier whose lexical order follows creation time, useful for chronologically sortable keys. Returns the generated ULID string.
hash
name_restates_behavior no_return_description
Compute a hash of a string using one of md5, sha1, sha256, sha384, or sha512 (default sha256). Use to create checksums or verify data integrity. Returns the hex-encoded digest for the chosen algorithm.
hash_all
name_restates_behavior no_return_description
Compute the hash of a string with every supported algorithm (md5, sha1, sha256, sha384, sha512) in a single call, useful for comparing digests across algorithms. Returns the digest produced by each supported algorithm for the input.
jwt_decode
name_restates_behavior no_return_description
Decode a JWT token without cryptographically verifying its signature, exposing the encoded header, payload, and expiry claim. Use to inspect the contents of a token locally. Returns the decoded header, payload, and expiry information for the token.
cron_explain
name_restates_behavior no_return_description
Return a plain-English explanation of what a 5-field cron expression (e.g. 0 9 * * 1-5) schedules, breaking down the minute, hour, day, month, and weekday on which it triggers. Use to verify or document a cron schedule.
cron_validate
name_restates_behavior no_return_description
Check whether a 5-field cron expression is syntactically valid. Use to confirm a schedule before deploying it. Returns a validation result indicating whether the expression is valid and, if not, why it is invalid.
cron_next
name_restates_behavior no_return_description
Compute the upcoming scheduled run times for a 5-field cron expression, returning count future occurrences (default 5, max 20). Use to preview or test when a cron job will fire.
timestamp_to_iso
name_restates_behavior no_return_description
Convert a Unix timestamp, given in either seconds or milliseconds, into its equivalent ISO 8601 date-time string. Use to turn raw epoch values into readable dates. Returns the formatted ISO 8601 string.
iso_to_timestamp
name_restates_behavior no_return_description
Convert an ISO 8601 date-time string into a Unix timestamp. Use to normalize human-readable dates into a numeric epoch value. Returns the Unix timestamp for the given date.
timestamp_now
no_return_description
Return the current system time represented in multiple formats (such as a Unix timestamp and ISO 8601), useful as a reference point for logs or time calculations. Returns the current time in those several formats.
json_format
name_restates_behavior no_return_description
Pretty-print a JSON string with configurable indentation (default 2 spaces, from 1 to 8) so it is easy to read. Use to beautify compact or minified JSON. Returns the reformatted, indented JSON string.
json_minify
no_return_description
Remove all insignificant whitespace from a JSON string to produce its most compact form. Use to shrink payloads before storage or transmission. Returns the minified JSON string.
json_validate
name_restates_behavior no_return_description
Check whether a string is valid JSON and identify the JSON type of its top-level value. Use to verify data before parsing. Returns a validation result indicating validity and, if valid, the detected type.
regex_test
no_return_description
Test whether a regular expression pattern matches the provided string, applying the given flags (default g). Use to verify regex behavior before relying on it. Returns the match result and which portions of the test string matched.

Selection evidence

Confusable tool pairs.

7 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.

Tool A Tool B Confidence Why they collide
timestamp_to_iso iso_to_timestamp high Both convert between Unix timestamps and ISO 8601 strings in opposite directions; a task like 'convert this timestamp' or 'convert this date' gives no direction clue, so an agent can easily pick the wrong member.
hash hash_all medium Both hash an input string using supported algorithms; a task like 'hash this string' or 'get a hash of X' is ambiguous unless the agent reads that hash_all runs every algorithm at once.
base64_encode base64_decode medium Classic encoding-direction pair; a task phrased such as 'convert this to base64' or 'base64 this string' can select the wrong direction when the names are scanned quickly.
cron_explain cron_next medium Both operate on a cron expression; a task like 'explain this cron' can plausibly be read as wanting the next run times rather than a plain-English description.
cron_explain cron_validate low Names mostly disambiguate, but a task like 'is this cron correct?' or 'check this cron expression' could plausibly summon explain instead of validate.
json_format json_minify medium Both reshape a JSON string; a generic task like 'make this JSON readable' or 'reformat this JSON' is ambiguous between pretty-printing and minifying.
uuid_generate ulid_generate medium Both generate a unique identifier; a task saying 'generate an id' does not specify UUID vs ULID, so the agent must rely on the descriptions to decide.

Compare the field

One score is useful.
The evidence makes it actionable.

Back to the leaderboard