@mate-tools/mcp-server
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@mate-tools/mcp-servergenerate a 12-character password with special characters"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@mate-tools/mcp-server
Model Context Protocol server for mate.tools. 35 utility tools for AI agents — text analysis, encoding, hashing, password generation, JSON/CSV/XML/sitemap parsing, regex, color, date, finance, URL metadata extraction, SEO meta-tag generation, text cleanup, CSPRNG random generators, hashtag tools, DNS lookup, SSL/TLS certificate inspection, JWT decoding and more. Wraps the public mate.tools JSON API so Claude Desktop, Claude Code, Cursor, Windsurf, and any other MCP-compatible client can call them directly.
Zero dependencies · Free · No API key · CORS open · Node 18+
Quick install
Add this to your Claude Desktop / Claude Code / Cursor / Windsurf config:
{
"mcpServers": {
"mate-tools": {
"command": "npx",
"args": ["-y", "@mate-tools/mcp-server"]
}
}
}Restart your client and all 35 tools appear in the picker. That's it.
Related MCP server: agent-utils-mcp
All 35 tools, by category
Text (8)
Tool | What it does |
| 16 text metrics: lines, words, sentences, paragraphs, characters, duplicates, line endings (LF/CRLF/CR), longest word, reading & speaking time. |
| Convert text into 9 case styles in one call: upper, lower, title, sentence, snake, kebab, camel, pascal, constant. |
| Convert any text to a URL-safe slug. Unicode-aware, configurable separator/length, optional transliteration of non-Latin characters. |
| Sort lines: asc/desc, case-sensitivity, dedupe, natural-sort (line2 before line10), locale-aware collation. |
| Generate placeholder text — paragraphs, sentences or words. |
| Match / replace / split text with a PCRE regex. Returns capture-group offsets. ReDoS-protected. |
| Diff two strings by line, word or character. Returns structured changes + unified diff string + Jaccard similarity. |
| Chained cleanup pipeline: trim, collapse_spaces, dedupe_lines, strip HTML/emoji/URLs/emails, normalize quotes/dashes, lower/uppercase. |
Encoding (4)
Tool | What it does |
| Base64-encode text. Standard or URL-safe alphabet (RFC 4648 §5). |
| Base64-decode. Auto-fixes missing padding; returns hex when not valid UTF-8. |
| Percent-encode a string. Component / form / path mode. |
| Decode percent-encoded URL strings. |
Crypto & auth (5)
Tool | What it does |
| MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA3-256, SHA3-512, CRC32 (or any subset of PHP's hash algorithms). |
| Generate cryptographically random passwords (CSPRNG). Configurable length, count, character classes, ambiguous-char exclusion. Reports entropy. |
| Score a password 0–4 (zxcvbn-style), entropy bits, offline-GPU crack-time estimate, concerns and suggestions. |
| Luhn check + brand detection (Visa, MC, Amex, Discover, JCB, Diners, UnionPay, Maestro, RuPay). PAN never logged. |
| Decode a JWT — header, payload, expiry status. Verify HS256/384/512 with a secret or RS256/384/512 with a PEM public key. Token never logged. |
Data & structure (13)
Tool | What it does |
| Validate, pretty-print, minify or analyse a JSON document. Returns structural summary (node counts, max depth, top keys). |
| Convert a JSON array of objects to CSV. Configurable delimiter, columns, optional flattening of nested objects ( |
| Validate XML well-formedness + optional XSD schema. Errors with line/column. XXE-safe. |
| Fetch + parse XML sitemaps. SSRF-protected (refuses private/loopback/link-local/cloud-metadata IPs). Optional recursive expansion of sub-sitemaps. |
| Descriptive statistics for a list of numbers: mean / median / mode / stddev / variance / percentiles / IQR / geometric / harmonic. |
| Convert integers between bases 2..36 + Roman numerals. Big-int safe via GMP. |
| Multi-mode financial calculations: loan, compound interest, simple interest, discount, tip, sales tax, ROI, percentage, markup. |
| Compute reduced aspect ratio (16:9, 4:3, 21:9, ...) from width × height, or scale a dimension to a target ratio. |
| Convert any color into hex / rgb / rgba / hsl / hsv / cmyk + closest named color + WCAG luminance and contrast (AA / AAA flags). |
| Fetch a URL and extract title / description / OpenGraph / Twitter Card / canonical / language / hreflang / JSON-LD / favicon / response headers / element counts. SSRF-protected, 2 MB cap. |
| Generate a full HTML head block (meta + OpenGraph + Twitter Card + JSON-LD) from title/description/url/image. Returns ready-to-paste HTML + SEO score 0-100 with concrete warnings. |
| Resolve DNS records (A, AAAA, MX, TXT, NS, CNAME, SOA, CAA, PTR, SRV) via the system resolver. Includes reverse PTR for A records. |
| Inspect a domain's TLS certificate: subject, issuer, validity, fingerprint, alt names, full chain, days remaining, negotiated protocol/cipher. SSRF-protected. |
Date & time (3)
Tool | What it does |
| Bidirectional epoch ↔ ISO 8601 ↔ RFC 3339 ↔ human. Auto-detects epoch resolution. Timezone-aware. Accepts natural language ( |
| Add/subtract a duration from a date, or compute the diff between two dates. Optional business-day count (Mon–Fri). |
| Calculate age in years/months/days from DOB. Returns next birthday, days until, Western zodiac sign, generation label. |
Generators & social (2)
Tool | What it does |
| CSPRNG-backed generator: number, string (alpha/alphanumeric/numeric/hex/base58/base64url), word, picker (with/without replacement), team balancer, dice ( |
| Hashtag operations on text: extract (with offsets), remove, generate (stop-word-filtered word frequency), format (camel/snake/lower/preserve). Unicode-aware. |
The catalog grows over time. npx -y always fetches the latest published version — your client just needs a restart to pick up new tools.
Install snippets for every major client
Claude Desktop
Open the Claude Desktop config:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Add the mcpServers entry from the Quick install above and restart.
Claude Code
claude mcp add mate-tools npx -- -y @mate-tools/mcp-serverCursor
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"mate-tools": {
"command": "npx",
"args": ["-y", "@mate-tools/mcp-server"]
}
}
}Windsurf and other MCP clients
The server speaks MCP over stdio with the standard JSON-RPC 2.0 framing. Any MCP-compatible client can launch it as a subprocess with the same configuration shape.
Manual install (no npx)
npm install -g @mate-tools/mcp-server
mate-tools-mcp # speaks JSON-RPC over stdio; plug into a clientHow to verify it's working
Once installed, ask your AI agent any of these to confirm the tools are wired:
"Use mate-tools to count the lines and reading time of this paragraph."
"Hash the string
secretwith SHA-256.""Generate 10 strong passwords, 20 chars, no ambiguous characters."
"Score this password:
correct horse battery staple.""Convert
#ff5733to all color spaces and tell me the WCAG contrast vs white.""What's the aspect ratio of 3840 × 2160?"
"Diff these two paragraphs for me."
"What's the monthly payment on a $300k loan at 6.5% APR over 30 years?"
"How old is someone born on 1990-04-15? What's their zodiac sign?"
"Extract all URLs from
https://example.com/sitemap.xmlrecursively.""Fetch the metadata and OpenGraph tags from
https://example.comfor me.""Generate SEO meta tags for an article titled
…and score the result.""Roll 4d6 drop lowest, six times, for me."
"Suggest hashtags for this caption."
"Look up the MX and TXT records for example.com."
"Is the SSL certificate on github.com valid? When does it expire?"
"Decode this JWT and tell me if it's expired."
The agent will pick the right tool automatically.
How it works
The server is a single ~600-line zero-dependency Node script. Every tool call:
Receives a JSON-RPC
tools/callrequest from the MCP client.Forwards the arguments to the public mate.tools API at
https://mate.tools/api/v1/{tool}.php.Returns a human-readable summary plus the full JSON response back to the client.
Nothing runs locally besides the JSON-RPC plumbing. Computation runs on mate.tools' servers behind Cloudflare. Every endpoint is rate-limited at 60 req/min and 600 req/hour per IP.
Configuration
Override the API endpoint (e.g. for testing against a staging deployment):
MATE_TOOLS_API_BASE=https://staging.mate.tools/api/v1 npx -y @mate-tools/mcp-serverPrivacy
Each tool call:
✅ Sends only the arguments you provide to the MCP tool.
✅ Hits HTTPS in transit.
✅ Is processed in memory and not logged with content.
❌ Does not collect telemetry.
❌ Does not require an account, API key or sign-in.
The mate.tools server logs only request method, hashed-IP (rotating daily salt), endpoint name and duration — never request content.
credit_card_validate and password_strength are explicitly engineered so the sensitive input never leaves request-handler memory. Only the validation outcome and metrics are returned.
sitemap_extract, url_metadata, and ssl_check refuse to fetch / connect to any host whose name resolves to a private (RFC 1918), loopback, link-local, or cloud-metadata IP. For HTTP-based tools, each redirect destination is re-validated, so SSRF tricks via 302 don't work. url_metadata additionally caps the response body at 2 MB. ssl_check uses a 5-second connect timeout.
jwt_decode never logs the token. Decoding runs entirely in request-handler memory; only the algorithm name, signature verification outcome, and request duration are written to the per-day access log. Use it confidently with production tokens.
regex_test enforces a hard PCRE backtrack ceiling (100,000 steps) per request — catastrophic regex patterns return a clean 422 rather than hanging the server.
random_gen is backed by PHP's random_int / random_bytes (CSPRNG) — never the Mersenne Twister. UUIDs are RFC 4122 v4 with proper version/variant bits, or v7 with millisecond-precision timestamp.
Source and documentation
Source code (single file): https://mate.tools/api/mcp/server.js
Install guide with screenshots: https://mate.tools/api/mcp
JSON API reference: https://mate.tools/api
OpenAPI 3.1 spec: https://mate.tools/api/openapi.json
llms.txt: https://mate.tools/llms.txt
Issues / feedback
Open an issue at the mate.tools contact form — please mention "@mate-tools/mcp-server" in the subject line. New tools land roughly every 1–2 weeks; if there's a specific utility you want exposed, just ask.
License
MIT — free for personal and commercial use. See LICENSE.
Available Tools
35 toolsage_calcA
Compute age in years/months/days from a date of birth. Returns next birthday, days until, Western zodiac sign, generation (Gen Z / Millennial / Gen X / Boomer / Silent / Greatest / Gen Alpha), birth weekday, and leap-year info.
| Name | Required | Description | Default |
|---|---|---|---|
| timezone | No | UTC | |
| reference | No | Date to compute age against. Default: now. | |
| date_of_birth | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does disclose return values (next birthday, days until, zodiac, generation, weekday, leap-year info), which is useful, but it does not explain how timezone or reference date affect results, nor does it specify edge cases (e.g., invalid dates, leap year handling specifics) or output format.
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 sentence that efficiently conveys the core purpose and enumerates the calculated outputs. Every piece of information adds value, with no filler or redundancy. The structure is front-loaded with the primary function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no annotations, and no output schema, the description should compensate by explaining parameter formats, timezone handling, and return structure. It does not. Key details like date format, timezone effect, and reference date behavior are missing, leaving critical gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, with only 'reference' having a description. The description does not explain the meaning or format of 'date_of_birth' or 'timezone', nor does it clarify default values beyond the schema's default for timezone. The description mentions 'date of birth' but not how the parameter should be structured, leaving agents to guess the date format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Compute' and the resource 'age in years/months/days from a date of birth', which distinguishes it from sibling tools like date_math or timestamp. It also lists specific outputs (zodiac, generation, etc.), making the tool's purpose 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?
The description implies usage for age calculation from a birth date but does not explicitly state when to use this over alternatives like date_math, nor does it provide any exclusions or conditions. There is no mention of compatibility with other tools, leaving the usage guidance implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aspect_ratioA
Compute the reduced aspect ratio (16:9, 4:3, 21:9, ...) from a width and height; OR scale a given width OR height to a target ratio.
| Name | Required | Description | Default |
|---|---|---|---|
| ratio | No | e.g. "16:9", "4:3", "1.85:1". | |
| width | No | ||
| height | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description partially discloses behavior by explaining the two modes of operation, but it does not mention output format, error handling, or what happens if conflicting parameters (e.g., both width and height and ratio) are provided. It gives some useful context but leaves key behavioral traits unspecified.
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 concise sentence that efficiently communicates both operations with examples. It is front-loaded with the action verb 'Compute' and contains no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and sparse parameter descriptions, so the description must clarify input patterns and return values. It fails to specify what the tool returns (e.g., a reduced ratio string or a scaled number), and does not explain how the three parameters interact, leaving ambiguity for an agent to invoke it reliably.
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 descriptions cover only 'ratio' (33%), so the description adds meaning by clarifying that width and height are dimensions for computation or scaling, and giving examples of ratio formats. However, it does not specify input combinations or constraints (e.g., are width and height both required for compute mode?), leaving gaps in parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes reduced aspect ratios from width and height or scales a dimension to a target ratio, using specific verbs 'compute' and 'scale'. It distinguishes itself from sibling utility tools by focusing on aspect ratio operations, which no other sibling addresses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description presents two distinct use cases separated by 'OR': computing a ratio from width/height, and scaling a width/height to a given ratio. This provides clear context for when to use the tool, though it does not explicitly reference alternatives since no sibling tool performs similar functions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
base64_decodeA
Base64-decode a string. Accepts both standard and URL-safe Base64; missing padding is auto-fixed. Returns text when valid UTF-8, otherwise hex.
| Name | Required | Description | Default |
|---|---|---|---|
| encoded | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description takes full responsibility for disclosing behavior. It reveals that both Base64 variants are accepted, missing padding is auto-fixed, and the output is either text (when valid UTF-8) or hex. This covers the key behavioral traits, though it does not mention error handling for malformed 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?
The description is two concise sentences. The first states the operation, and the second covers input acceptance and return behavior. Every word adds value, with no redundancy or 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 simple single-parameter utility with no output schema, the description fully specifies the input requirements and output format. It provides enough detail for an agent to select and invoke the tool correctly without further context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has only a required string parameter 'encoded' with no description, making schema coverage 0%. The tool description compensates by explaining that this string is the Base64-encoded text and details accepted variants and padding behavior, adding significant semantic meaning beyond the type definition.
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 specifies the action 'Base64-decode' on 'a string', clearly stating the tool's function. It also mentions acceptance of standard and URL-safe Base64, which helps distinguish it from sibling tools like base64_encode or url_decode.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on acceptable input variants ('standard and URL-safe') and auto-fix of padding, which guides when to use the tool. It does not explicitly name alternatives or exclusions, but the purpose is clear enough that usage is obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
base64_encodeA
Base64-encode a string. Optional URL-safe variant (RFC 4648 §5: -/_ instead of +//, no padding).
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| url_safe | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It discloses the URL-safe variant's character substitutions and lack of padding, which adds behavioral detail beyond the basic 'encode' meaning. It does not discuss encoding of non-ASCII text or error handling, but those are less critical for a simple utility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the main purpose, and includes only relevant detail about the variant. Every word adds value, achieving high conciseness with a clear structure.
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 utility with no output schema, the description covers the core operation and the optional behavior. It could mention whether the output is standard base64 with padding, but that is implicitly understood from the term 'Base64-encode.'
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no property descriptions (0% coverage), so the description must clarify parameters. It explicitly explains the url_safe parameter ('URL-safe variant (RFC 4648 §5: -/_ instead of +/, no padding)'). The text parameter is evident from the tool name and the phrase 'encode a string,' making the parameters clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Base64-encode a string,' which clearly identifies the action and resource. It also distinguishes from siblings like base64_decode by specifying the encode direction, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context about the optional URL-safe variant and when it might be used, but it does not explicitly mention when not to use this tool or alternative tools such as base64_decode. This is clear context without exclusions, so it earns a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
case_convertA
Convert text into multiple case styles in one call: upper, lower, title, sentence, snake, kebab, camel, pascal, constant. Pass cases to limit the response.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| cases | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool converts text into multiple case styles and that the response can be limited, but it does not describe the return format, what happens with invalid case names, or edge cases like empty strings or Unicode handling.
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 sentence that front-loads the purpose, enumerates the case styles, and provides a usage hint. Every word earns its place with no redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool, the description covers the main functionality and optional parameter usage. However, since there is no output schema and no annotations, the lack of information about the return value structure (e.g., a map of case style to converted text) or behavioral edge cases leaves noticeable 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?
With 0% schema description coverage, the description compensates well by explicitly identifying the `text` parameter (as the input text) and the `cases` parameter (as an optional limiter), additionally listing the valid values. This goes beyond the bare schema and gives practical meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb and resource: 'Convert text into multiple case styles in one call.' It lists the exact case styles, immediately distinguishing it from sibling text utilities like slugify or text_cleanup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about when to use the tool (when you need multiple case conversions in one call) and hints at usage with 'Pass `cases` to limit the response,' but it does not explicitly mention when not to use it or suggest alternative tools for specific needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
color_convertA
Convert any color (hex, rgb, rgba, hsl, hsla, named) into all standard color spaces. Returns hex, rgb, rgba, hsl, hsv, cmyk, closest CSS named color, WCAG luminance and contrast ratios vs. white and black (with AA/AAA flags).
| Name | Required | Description | Default |
|---|---|---|---|
| color | Yes | #ff5733, rgb(255,87,51), hsl(...), tomato, ... |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the complete set of conversion outputs (hex, rgb, hsl, hsv, cmyk, named color, WCAG contrast) which goes beyond the schema. It does not mention error handling for invalid input, but this is a minor gap for a pure conversion utility.
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, well-structured sentence that starts with the core action and then lists all return values. No redundant words or filler, every part contributes useful 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?
Given there is no output schema, the description enumerates all return categories, which is essential. It lacks details on error behavior or response structure, but for a simple color converter with one input, the description is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single 'color' parameter with examples of accepted formats, achieving 100% coverage. The main description restates these formats but adds no significant new meaning beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts colors between formats, naming the specific input types and output spaces. The verb 'Convert' and resource 'any color' are precise, and the tool is distinct from all sibling utilities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for color conversion and lists all supported conversions, giving clear context for when to use it. It does not explicitly mention when not to use it, but no alternative color tool exists among siblings, so the context is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
count_linesA
Count lines, words, sentences, paragraphs and characters in a chunk of text. Returns sixteen text metrics including duplicate-line detection, longest word, reading and speaking time estimates, and the dominant line-ending style (LF, CRLF or CR).
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | UTF-8 text. Max 1 MB. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool returns sixteen specific metrics, including behavioral details like line-ending style detection and reading time estimates. This gives insight into the tool's output behavior, which is largely sufficient for a non-destructive, pure calculation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, packed with specific detail and no filler. It front-loads the core purpose and then lists notable metrics, making it concise and informative.
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 one-parameter tool, the description fully covers its functionality and return values. It enumerates the types of metrics returned, which is especially important given there is no output schema. The description is complete for an agent to understand the tool's capabilities without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with a clear description of the 'text' parameter (UTF-8, max 1 MB). The tool description does not add additional parameter semantics but reaffirms the purpose. Baseline of 3 is appropriate given the schema's completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb (Count) and clearly identifies the resource (a chunk of text) and the scope (lines, words, sentences, paragraphs, characters). It distinguishes itself from sibling tools by detailing the sixteen metrics returned, including unique features like duplicate-line detection and line-ending style, making it 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?
The description implies usage for text analysis and counting but does not explicitly state when to use this tool versus alternative text utilities like stats or text_diff. It provides clear context about what it does, but lacks explicit when-to-use or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
credit_card_validateA
Validate a card number using the Luhn algorithm and detect the brand (Visa, MasterCard, Amex, Discover, JCB, Diners, UnionPay, Maestro, RuPay). The card number is never logged — only its length, IIN prefix, last 4, masked form, and Luhn outcome leave the server.
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | Card number (spaces and dashes OK). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It adds valuable context about privacy (card number never logged, only derived data leaves server) and explains the core validation logic. However, it does not describe error handling or return format, so it is not 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?
The description is two sentences long, front-loaded with the main action, and includes a second sentence for essential privacy context. Every sentence earns its place with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter, but there is no output schema. The description mentions 'Luhn outcome' and brand detection but does not describe the return structure or possible values. It provides adequate context for a simple utility, but a return format hint would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the parameter description 'Card number (spaces and dashes OK).' The tool description adds the purpose but not additional meaning about the parameter itself. With high schema coverage, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool validates card numbers using the Luhn algorithm and detects brand, naming specific brands. This is a specific verb+resource and distinguishes it from all sibling tools, none of which perform this function.
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 context is implied by the tool's purpose, but the description does not explicitly state when to use it or mention alternatives. There are no exclusions or when-not-to-use guidance, so it falls to the 'implied usage' level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
date_mathA
Date arithmetic. Two modes: provide start + add (e.g. "+90 days", "-2 weeks") to compute the resulting date, OR provide start + end to compute the diff. Diff mode optionally counts business days only.
| Name | Required | Description | Default |
|---|---|---|---|
| add | No | Relative duration like "+90 days", "-2 weeks", "next friday". | |
| end | No | Optional end date — when present, returns a diff instead. | |
| start | Yes | ISO 8601 / human-readable date. | |
| business_days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It does disclose the two modes and the business-day option, which adds context beyond the schema. However, it does not mention return format, timezone handling, or behavior when both add and end are supplied, leaving gaps for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused statement that starts with 'Date arithmetic' and immediately outlines the two modes. It uses clear formatting with inline code and examples without redundancy, earning 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 has no output schema, so the description should cover return values and edge cases. It explains the input combinations well but not the output format (e.g., date string vs. number of days) or error handling. Given the absence of annotations and output schema, this is a moderate 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 75% (three of four parameters have descriptions), so the description must compensate for the gap. It does by explaining the relationship between start, add, and end, and clarifying the role of business_days in diff mode. The examples supplement the schema's parameter descriptions, adding meaningful usage context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Date arithmetic' and enumerates two distinct modes with concrete examples, making the tool's purpose unambiguous. It also differentiates from sibling tools by specifying its unique capabilities (adding durations and computing diffs, with business-day option). While it doesn't name alternatives, the scope is precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly describes when to use each mode: provide start+add to compute a resulting date, or start+end to compute the diff. It also notes that diff mode optionally counts business days only. However, it doesn't reference sibling tools like age_calc or explicitly state exclusions, so it falls short of a perfect 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_lookupA
Resolve DNS records for a domain via the system resolver. Default lookup covers A, AAAA, MX, TXT, NS, CNAME, SOA, CAA. Also resolves reverse PTR records for A results. Use this to debug mail config (MX), domain ownership signals (TXT), name-server delegation (NS), CAA policy, and IP resolution. No SSRF risk — DNS only, no outbound connections.
| Name | Required | Description | Default |
|---|---|---|---|
| types | No | ||
| domain | Yes | Hostname (not URL). e.g. example.com |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that it uses the system resolver, default lookup coverage, reverse PTR for A results, and explicitly notes 'No SSRF risk — DNS only, no outbound connections.' This significantly clarifies behavior and safety, though it omits response format or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core purpose, followed by default behavior, use cases, and safety. No wasted words; every sentence contributes necessary 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 tool with no annotations and no output schema, it covers purpose, defaults, reverse PTR behavior, use cases, and safety. It could be more complete by mentioning return format or failure semantics, but the core selection and invocation needs are met.
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% (domain is described, types is not). The description adds some context by listing default record types and implying the types parameter can override them, but it doesn't explicitly explain the parameter's role or format. The domain parameter's schema description already covers hostname-not-URL guidance, so the description adds marginal value beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool resolves DNS records for a domain, with a specific verb and resource. It enumerates default record types (A, AAAA, MX, TXT, NS, CNAME, SOA, CAA) and adds the reverse PTR behavior, making it highly distinct from sibling tools like ssl_check or url_metadata.
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 explicit use cases: 'debug mail config (MX), domain ownership signals (TXT), name-server delegation (NS), CAA policy, and IP resolution.' This gives clear context for when to use the tool. No exclusions or alternative tool mentions, but given the uniqueness of DNS lookup among siblings, this is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
finance_calcB
Multi-mode financial calculations. mode selects: loan (principal+rate+term [+extra]), compound_interest (principal+rate+years [+contribution]), simple_interest, discount, tip, sales_tax, roi (gain+cost), percentage (sub_mode: of / is_what_percent / change / increase), markup (cost + percent).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It lists input parameters for each mode but does not disclose what the output is (e.g., monthly payment, future value, ROI as percentage), how edge cases are handled, or any side effects. While a calculator is inherently read-only, the description does not confirm return format or error behavior, leaving significant ambiguity.
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 dense sentence that front-loads the main purpose and then efficiently enumerates modes and their parameters. It contains minimal wasted words. The 'percentage (sub_mode: ...)' part is a bit cryptic but still concise. Overall, it is appropriately sized for the information density, though readability could be improved with clearer formatting.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 modes) and the minimal schema (only 'mode' defined) with no output schema, the description is insufficient for correct use. For example, 'simple_interest' lists no parameters at all, and other modes omit required details like what value is produced. An agent would struggle to use modes like 'discount' or 'tip' without additional context. The description provides an overview but not the full operational detail needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only defines 'mode' with an enum, and has 0% parameter description coverage, so the description is essential. It does add meaning by listing the parameter names needed per mode (e.g., 'principal+rate+term'), but it lacks units, types, or formats (e.g., rate as decimal vs percent, term in months/years). This partial compensation gaps the full semantics needed for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is for multi-mode financial calculations, listing nine distinct modes with their parameter requirements. This distinguishes it from sibling tools, which are all text/utility tools. However, it lacks an explicit verb like 'calculate', relying on the noun 'calculations', so it's slightly less direct than ideal.
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 tool name and description imply it is for financial calculations, which is clear given the sibling list has no other finance tools. The mode list provides internal guidance on when to use each mode (e.g., use 'loan' for loan calculations), but there is no explicit statement of when to use this tool versus alternatives or any exclusions. The usage context is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hashB
Compute one or more cryptographic hashes of a text input. Defaults to MD5, SHA-1, SHA-256, SHA-384, SHA-512, CRC32, SHA3-256, SHA3-512.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| algorithms | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It discloses default algorithms but fails to specify output format (e.g., hex, object) or how the 'algorithms' parameter interacts with defaults. It also inaccurately classifies CRC32 as cryptographic, which may mislead.
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 sentence that front-loads the action and lists defaults without filler. Every word contributes to understanding the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has only two parameters and no output schema, yet the description omits return value format and algorithm parameter semantics. This leaves important gaps for an agent to correctly invoke and interpret 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%, but the description partially compensates by listing default algorithm names, giving meaning to the 'algorithms' parameter. However, it does not clarify input encoding or behavior for invalid algorithm names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes cryptographic hashes of text input, using a specific verb and resource. It lists default algorithms and is distinct from sibling tools, none of which perform hashing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by stating its function but provides no explicit when-to-use guidance or exclusions relative to alternatives. No alternative tools are mentioned, so context is limited.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hashtag_toolsA
Hashtag operations on text. mode=extract (pull #hashtags out of text with offsets), remove (strip them out + tidy whitespace), generate (suggest #hashtags from text content via stop-word-filtered word frequency), format (normalize an array of hashtag strings to camel/snake/lower/preserve style). Unicode-aware (#日本語 works).
| Name | Required | Description | Default |
|---|---|---|---|
| max | No | For generate. | |
| mode | Yes | ||
| text | No | For extract / remove / generate. | |
| style | No | For format. | |
| hashtags | No | For format. | |
| min_length | No | For generate. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and succeeds admirably. It discloses mode-specific details: extract returns offsets, remove tidies whitespace, generate uses stop-word-filtered frequency, and format supports four styles. The Unicode-awareness note (#日本語 works) is an important edge-case disclosure that exceeds typical behavior descriptions.
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. The mode list is front-loaded and each mode is described with compact but sufficient detail. The final Unicode note is a single sentence that adds critical capability information. 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?
Given the tool's complexity (4 modes, 6 params, no output schema), the description covers all modes and key behavioral nuances. It lacks explicit return shapes (e.g., exact structure of offsets, whether generate returns an array), but these are partly inferable from phrasing ('with offsets', 'suggest #hashtags', 'normalize an array'). It is slightly incomplete without output schema, hence not a 5.
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 descriptions already cover parameter-to-mode relationships (e.g., 'For generate', 'For format'), so the baseline is 3. The description adds value by explaining the mode enum itself and providing algorithmic detail (stop-word-filtered word frequency) and Unicode behavior, which gives deeper semantic meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Hashtag operations on text' and enumerates four distinct modes (extract, remove, generate, format) with specific verbs and outcomes. This distinguishes it from all sibling tools, which are general text utilities, and makes the tool's purpose immediately obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when each mode is appropriate by defining what it does, but it does not explicitly name alternatives or state when not to use it. Since no sibling tool overlaps with hashtag-specific operations, the lack of explicit exclusions is acceptable. The mode enumeration implicitly guides usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
json_formatA
Validate, pretty-print, minify or analyse a JSON document. Returns a structural summary (node counts, max depth, top distinct keys).
| Name | Required | Description | Default |
|---|---|---|---|
| json | Yes | ||
| mode | No | pretty | |
| indent | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It adds useful information by stating that the tool 'returns a structural summary (node counts, max depth, top distinct keys),' but it is ambiguous whether this summary is returned for all modes or only for 'analyze.' It also does not disclose error handling, exact output format for pretty/minify, or whether the operation is read-only. These gaps warrant a score of 3, reflecting partial but insufficient behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the key verbs, and contains no filler or redundant information. The first sentence states the operations, and the second sentence adds the return value context. Every word earns its place, earning a perfect score for conciseness and structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This tool has 3 parameters, no output schema, and no annotations, so the description alone must provide sufficient context for correct invocation. It fails to explain what each mode returns (e.g., does pretty return formatted JSON only?), how `indent` affects output, or how validation errors are signaled. For a tool of this complexity, the description is incomplete, meriting a score of 2.
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 by explaining parameters. It implicitly lists the `mode` values ('pretty-print, minify, validate, analyze') but does not describe the `indent` parameter or the expected format of the `json` string. The description adds minimal meaning beyond the schema, and the missing parameters leave the agent guessing. A score of 2 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs and resource: 'Validate, pretty-print, minify or analyse a JSON document.' It distinguishes from sibling tools like json_to_csv by focusing on formatting and structural analysis rather than conversion. The mention of returning a structural summary further clarifies the intent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly communicates when to use the tool—whenever a JSON document needs validation, formatting, or analysis. It provides clear context but does not explicitly mention when not to use it or name alternatives such as json_to_csv. Since the use case is obvious from the verbs, this is 'clear context, no exclusions,' aligning with a score of 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
json_to_csvA
Convert a JSON array of objects to CSV. Configurable delimiter, columns, optional flattening of nested objects with dot-keys (e.g. meta.city). Max 50,000 rows per request.
| Name | Required | Description | Default |
|---|---|---|---|
| json | Yes | ||
| columns | No | ||
| flatten | No | ||
| newline | No | ||
| delimiter | No | , | |
| include_headers | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses a significant constraint (max 50,000 rows) and explains optional flattening behavior with dot-key examples. It does not detail error handling or output format, but the key behavioral traits are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the core action, the second concisely covers key options and a limit. There is no redundant phrasing or filler. 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 has six parameters, no output schema, and no annotations. The description covers the main function, a limit, and three options, but misses output format (e.g., returns a CSV string), error handling, and the behavior of include_headers/newline. For a conversion tool with moderate complexity, this leaves some gaps that could affect correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It explicitly mentions delimiter, columns, and flatten, which maps to three of the six parameters. However, it omits newline and include_headers, and does not elaborate on how columns interact with the JSON keys. The dot-key example for flatten adds value, but the coverage is partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the core function: 'Convert a JSON array of objects to CSV.' This is a specific verb+resource pair that distinguishes it from sibling tools like json_format or base64_encode. It also mentions configurable options, reinforcing the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: when you have a JSON array and need CSV output. It provides clear context but does not explicitly state alternatives or when not to use the tool. Given the sibling set, this is sufficient for most cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jwt_decodeA
Decode a JSON Web Token (JWT) and analyse its claims. Always returns header, payload, signature info, and expiry status (active/expired/not_yet_valid) computed from exp/nbf/iat. When secret is provided, verifies HS256/HS384/HS512 via HMAC. When public_key is provided in PEM format, verifies RS256/RS384/RS512 via openssl_verify. ES* and EdDSA are decoded but not verified. The token is never logged.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Full JWT (three base64url segments joined with dots). "Bearer " prefix is stripped automatically. | |
| secret | No | Shared secret for HS256/384/512 verification. Optional. | |
| public_key | No | PEM-format RSA public key for RS256/384/512 verification. Optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden and excels: it discloses algorithm-specific verification, the automatic Bearer prefix stripping, always-returned expiry status, the fact that ES*/EdDSA are decoded but not verified, and that the token is never logged. This is comprehensive behavioral disclosure.
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 primary purpose, then precisely covering verification modes and a key operational detail (no logging). Every clause earns its place; no fluff.
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?
Despite having no output schema, the description fully explains return values and behavioral nuances. It covers all aspects an agent needs: what is returned, when verification happens, algorithm limitations, and security posture. Complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds no significant new semantic detail beyond what's in the schema, meriting the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it decodes and analyzes JWTs, a specific verb+resource. It elaborates on the return structure (header, payload, signature info, expiry status) and verification capabilities, fully distinguishing it from sibling utility tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear guidance on when to use secret vs. public_key and which algorithms are verified vs. only decoded. Implicitly differentiates from other tools by specifying JWT-specific functionality, though it doesn't explicitly mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lorem_ipsumA
Generate placeholder text — N paragraphs, sentences or words of lorem ipsum. Suitable for mocks, fixtures and test data.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | paragraphs | |
| count | No | ||
| start_with_lorem | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It states the tool generates placeholder text, which is non-destructive by nature, but it does not explicitly confirm read-only behavior or describe the output format (e.g., single string vs. array). The added context about suitability for mocks/fixtures is helpful but does not fully cover behavioral nuances.
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 exceptionally concise and front-loaded. 'Generate placeholder text' immediately states the action, followed by the key options and a use-case clause. No filler words or redundant details; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but with no output schema and no annotations, the description must fully equip the agent. It covers purpose and main parameters, but omits the behavior of `start_with_lorem` and doesn't clarify the return structure (string, list, etc.). This leaves some ambiguity for correct invocation, so completeness is average.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It explains `kind` and `count` via 'N paragraphs, sentences or words', but `start_with_lorem` is not mentioned at all. The description adds meaning for two of three parameters, leaving a notable gap for the boolean flag, which can affect the output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool generates placeholder text, and specifies the units (paragraphs, sentences, words) matching the `kind` parameter. It explicitly mentions 'lorem ipsum', distinguishing it from generic random generators like `random_gen`. The verb 'Generate' and resource 'placeholder text' are specific and 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?
The description provides clear context for when to use the tool: 'Suitable for mocks, fixtures and test data.' This implies the intended scenarios but does not explicitly mention when not to use it or offer alternative tools. Since it gives concrete use cases without exclusions, it earns a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_tags_generateA
Generate a complete HTML head block — standard , OpenGraph, Twitter Card and Schema.org JSON-LD — from a small set of inputs (title, description, url, image, author, keywords, type). Returns ready-to-paste HTML plus an SEO score 0-100 with concrete warnings (title length, description length, missing OG image, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| type | No | website | |
| image | No | ||
| title | Yes | ||
| author | No | ||
| locale | No | en_US | |
| keywords | No | ||
| site_name | No | ||
| description | Yes | ||
| twitter_card | No | summary_large_image | |
| twitter_site | No | @handle |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full behavioral burden. It discloses the output (HTML plus SEO score 0-100), includes concrete warnings (title length, description length, missing OG image), and lists input categories. The non-destructive nature is implicit but sufficient for a generation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The description front-loads the action and output, then adds the SEO score feature. Every clause adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 11 parameters and no output schema, the description covers the core purpose, primary inputs, return format, and warning/score behavior. It could elaborate on optional parameter handling or edge cases, but overall it is sufficiently complete for an agent to select and call the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 9%, so the description must compensate. It names the primary parameters (title, description, url, image, author, keywords, type) but omits four (locale, site_name, twitter_card, twitter_site). The named parameters are self-explanatory, yet the incomplete listing leaves gaps.
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 ('Generate') and resource ('complete HTML head block'), naming the exact output components (standard meta, OpenGraph, Twitter Card, JSON-LD). It clearly distinguishes itself from sibling utilities, which are generic text/format tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use it (generating SEO meta tags with an HTML head block and SEO score). It does not explicitly name alternatives or exclusions, but the purpose is unambiguous given the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
number_baseA
Convert integers between any base 2..36 plus Roman numerals. Big-int safe when GMP is available. Use from_base="roman" to parse a Roman numeral input, or include "roman" in to_bases to convert to Roman.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| to_bases | No | Bases to convert to. Each is an integer 2..36 or "roman". | |
| from_base | No | Integer 2..36 or "roman". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the big-int safety caveat ('Big-int safe when GMP is available') and Roman numeral parsing behavior. However, it does not mention error cases, input format limits, or return value shape, so transparency is partial.
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 compact sentences with no redundancy. The first sentence states the core function, the second adds key usage details. Highly efficient.
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 conversion tool, the description covers purpose, usage, and a caveat. It lacks explicit output format or error handling details, but the tool is simple enough that this is not a critical gap. Overall, it is adequately complete.
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 covers 67% of parameters (to_bases and from_base have descriptions). The description adds meaning by explaining how to use the 'roman' value in these parameters, and clarifies the value parameter represents an integer string. This goes beyond the raw 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 clearly states the tool converts integers between any base 2..36 and Roman numerals. This is a specific verb+resource and distinguishes it from sibling converters like base64_encode or url_encode.
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 explicit instructions for Roman numeral handling ('Use from_base="roman"...' and 'include "roman" in to_bases'), which clarifies how to use the tool. No alternative tools are mentioned, but the unique scope makes usage clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
passwordA
Generate cryptographically random passwords using a CSPRNG. Configurable length, count, character classes and ambiguous-character exclusion.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| digits | No | ||
| length | No | ||
| symbols | No | ||
| lowercase | No | ||
| uppercase | No | ||
| exclude_ambiguous | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the use of a CSPRNG and mentions configurable character classes and ambiguous-character exclusion. However, with no annotations, it does not fully carry the burden of behavioral disclosure; it omits return format and edge-case behavior, such as what happens if all character classes are disabled.
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 sentence, front-loaded with the core action. Every word contributes meaning, and there is no redundancy or 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?
Given the lack of an output schema and annotations, the description should explain the return value. It does not state whether the tool returns a single string or an array when count > 1, which is essential for an agent to consume the result 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?
The description summarizes the parameters well, mentioning length, count, character classes, and ambiguous-character exclusion. While the schema has 0% description coverage, the description adds meaning by grouping booleans into 'character classes' but does not detail each parameter individually.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it generates cryptographically random passwords, using a specific verb and resource. It implicitly distinguishes itself from sibling tools like password_strength (which analyzes strength) and random_gen (generic random generation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool—whenever a secure random password is needed—but does not explicitly mention alternatives or exclusions. It lacks an explicit statement like 'for password strength checking, use password_strength.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
password_strengthA
Score a password (0-4 zxcvbn-style), compute entropy bits, identify common-password fingerprints and keyboard sequences, and estimate offline-GPU crack time. Password is never logged.
| Name | Required | Description | Default |
|---|---|---|---|
| password | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It explicitly states 'Password is never logged,' a crucial privacy behavior, and enumerates the analytical outputs (crack time, entropy, etc.), giving insight into what happens to the input. This goes beyond a generic 'checks password strength' statement, though it doesn't discuss potential network calls or error behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the core purpose, and lists concrete outputs efficiently. The privacy note is a single short sentence, earning 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 a simple single-input utility. The description names several output aspects (score, entropy, fingerprints, crack time) but omits the exact return format (e.g., JSON structure), which could matter to an agent. However, given the lack of an output schema, the description provides enough for correct invocation: pass a password, get scoring metrics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides only the parameter name and type (string, required), with no description (0% coverage). The tool description doesn't add any details about the parameter itself—no constraints, formats, or examples; it only references the password generically. The privacy note is a behavioral trait, not a parameter semantic.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Score a password' which is a specific verb and resource. It further specifies the output dimensions (0-4 zxcvbn-style, entropy bits, common-password fingerprints, keyboard sequences, crack time), making it distinct from the sibling 'password' tool which likely generates passwords. This is a clear, non-tautological purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for evaluating password strength, but it does not explicitly state when to use this tool over alternatives, nor does it mention any exclusions. The context is inferable from the name and sibling list, but there's no direct guidance on when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
random_genA
Cryptographically random generator backed by random_int / random_bytes. mode=number (min/max), string (length + charset: alpha/alphanumeric/numeric/lower/upper/hex/hex_upper/base58/base64url), word (English word list), picker (pick N from a list, with/without replacement), team (balanced round-robin team allocation), dice (NdM notation), coin, country (ISO list), uuid (v4 or v7).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does disclose cryptographic security, specific mode behaviors (e.g., 'balanced round-robin', 'with/without replacement', 'NdM notation'), and the backing implementation. However, it omits return formats, parameter inclusivity, error handling, and other behavioral details that would be useful for an agent. It provides some transparency but not comprehensive.
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, information-dense sentence that front-loads the main purpose and organizes the many modes with clear parenthetical specifications. Every clause adds value, no fluff or redundancy. This is exceptionally concise for the breadth of functionality covered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (nine modes) and minimal structured data (one required param, no output schema, no annotations), the description is the primary documentation. It covers all modes and hints at their parameters, which is fairly complete for an initial selection. However, it lacks explicit details on parameter requirements, defaults, and output formats, so an agent may need to infer some invocation details. It is more complete than the schema alone 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?
The schema only defines mode with an enum, and additionalProperties is true, meaning secondary parameters are undocumented. The description compensates by adding meaning to each mode value (e.g., number uses min/max, string uses length and charset, picker uses list and replacement). This goes well beyond the schema and provides useful parameter semantics, though not exhaustive details like types or defaults.
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 the tool as a cryptographically random generator with a specific list of modes, distinguishing it from the many non-random sibling utilities. The phrase 'backed by random_int / random_bytes' adds precision about its source. This meets the 'specific verb+resource' criterion and differentiates from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (whenever random generation is needed) by enumerating many use cases (number, string, picker, team, dice, coin, country, uuid). However, it does not explicitly state when not to use alternatives or compare with sibling tools like password or other generators. Usage context is implied but not directly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regex_testA
Match, replace or split text with a PCRE regular expression. Returns offsets and capture groups. ReDoS-protected: catastrophic patterns return an error rather than hanging.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| flags | No | any of i, m, s, u, x | |
| pattern | Yes | ||
| operation | No | match_all | |
| replacement | No | ||
| split_limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool returns offsets and capture groups, and notably explains ReDoS protection, which is a valuable behavioral trait. This goes beyond a minimal description, though it doesn't cover every edge case.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the primary purpose and including safety/behavioral notes. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core functionality and return type, but lacks details on auxiliary parameters (e.g., replacement, split_limit) and does not provide examples. Given the tool's complexity (6 parameters, no output schema), it is minimally complete but not thorough.
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 17%, so the description must compensate. It mentions the main operations (match, replace, split) and the regex flavor (PCRE), but does not explain the `replacement` or `split_limit` parameters, nor does it clarify flag behavior beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Match, replace or split text with a PCRE regular expression', specifying the exact operations and resource. This differentiates it from sibling text tools like text_cleanup or case_convert, which do not focus on regex 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?
The usage context is clear: use this tool when you need to perform regex match, replace, or split operations. However, it does not explicitly mention alternative tools or when not to use it, so it misses a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sitemap_extractA
Fetch and parse an XML sitemap or sitemap index from a public HTTPS URL (or paste raw XML). SSRF-protected: refuses private/loopback/link-local/cloud-metadata addresses, re-validates redirects. Optional recursive expansion of sub-sitemaps. Returns lastmod, changefreq, priority when present.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| xml | No | Paste raw XML instead of fetching by URL. | |
| max_urls | No | ||
| recursive | No | ||
| include_metadata | No | ||
| max_sub_sitemaps | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and discloses important behavioral traits: SSRF protection (refuses private/loopback/link-local/cloud-metadata addresses, re-validates redirects), optional recursion, and return of lastmod/changefreq/priority. It stops short of describing error handling or output format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, dense with critical information, and front-loaded with the main purpose. Every clause earns its place, covering functionality, safety, options, and return values without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description gives a good overview of behavior, constraints, and return fields, which is sufficient for a moderately complex tool. It lacks an explicit description of the return structure, but the expected output (parsed sitemap entries with optional metadata) is inferable. Overall, it is complete enough for an agent to select and invoke 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 only 17%, but the description adds meaning to multiple parameters: 'url' (public HTTPS), 'xml' (paste raw XML), 'recursive' (expansion of sub-sitemaps), and 'include_metadata' (returns lastmod, changefreq, priority). It does not explicitly explain max_urls or max_sub_sitemaps, but their names and schema constraints are self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('fetch and parse') and clearly identifies the resource ('XML sitemap or sitemap index'). It also distinguishes itself from sibling tools, which are all text/format utilities, by focusing on web fetching and parsing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: fetch from a public HTTPS URL or paste raw XML, with optional recursive expansion. It does not explicitly name alternatives or exclusions, but given the unrelated sibling set, the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
slugifyA
Convert any text to a URL-safe slug. Unicode-aware: by default transliterates non-Latin characters to ASCII (set transliterate=false to keep them). Configurable separator and length.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| lowercase | No | ||
| separator | No | - | |
| max_length | No | ||
| transliterate | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and discloses important behavior: Unicode-aware transliteration to ASCII by default, with an opt-out via `transliterate=false`. It also mentions configurable separator and length. However, it does not mention lowercase defaulting or what happens when max_length is exceeded.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the core purpose and packs useful behavior into the second sentence without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple string utility with an input schema and no output schema, the description covers the main behavior and edge-relevant Unicode handling. Missing details such as lowercase default and truncation semantics are small gaps that keep it from being fully complete.
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 adds meaning for `transliterate` (keep non-Latin if false) and mentions configurable separator/length, but it does not explain `lowercase` or clearly define `max_length` truncation behavior. The schema provides defaults but no descriptions, so the description only partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a specific verb and resource: 'Convert any text to a URL-safe slug.' This clearly distinguishes slugify from sibling tools like text_cleanup or url_encode by naming the output format. Additional details about Unicode transliteration and configurable separator/length reinforce the tool's unique purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates the tool's intended use—generating URL-safe slugs from arbitrary text—and contextualizes the transliteration behavior. It does not explicitly list when not to use it or alternative tools, but for a single-purpose utility this is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sort_linesA
Sort lines of text. Supports asc/desc, case-insensitive, locale-aware collation, natural-sort (line2 before line10), dedupe, line-trim and empty-line drop.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| order | No | asc | |
| dedupe | No | ||
| locale | No | ||
| natural | No | ||
| drop_empty | No | ||
| trim_lines | No | ||
| case_sensitive | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the transparency burden. It discloses several behavioral traits: case-insensitivity, locale-aware collation, natural sorting, deduplication, line trimming, and empty-line removal. It also clarifies the ordering modes. It does not mention return format or error handling, but for a pure sort operation these are less critical, so the description provides reasonable transparency.
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 sentence, front-loaded with the core action. Each feature is listed compactly without redundancy. It is appropriately sized for the tool's complexity and every clause adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (8 parameters) and the absence of an output schema, the description covers the key behavior and options. It does not explain the exact return value, but for a sort tool the result is obvious (the sorted text). The sibling context shows this is a text utility, and the description sufficiently distinguishes it. A small deduction for not addressing edge cases like empty input or default behavior, but the defaults are in the schema.
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 illuminate the parameters. It does so effectively: 'asc/desc' maps to order, 'case-insensitive' to case_sensitive, 'locale-aware' to locale, 'natural-sort' to natural, 'dedupe' to dedupe, 'line-trim' to trim_lines, and 'empty-line drop' to drop_empty. It does not explicitly describe the 'text' parameter, but that is self-evident. Overall, it adds meaning beyond the bare 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 opens with a specific verb and resource: 'Sort lines of text.' This clearly states what the tool does and differentiates it from siblings like count_lines or case_convert. The feature list (asc/desc, natural-sort, dedupe, etc.) further clarifies its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for sorting text lines and enumerates supported options, giving clear context for when to use it. It does not explicitly name alternatives or exclusions, but the sibling tools are sufficiently distinct that no confusion arises. The guidance is implicit rather than stated, warranting a slight deduction from 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ssl_checkA
Connect to {domain}:{port} over TLS and return the leaf certificate + full chain: subject, issuer, validity dates, days remaining, fingerprint (SHA-256), subject alternative names, signature algorithm, negotiated protocol and cipher. Useful for verifying a domain has HTTPS, the cert is not expired, and the chain is properly configured. SSRF-protected: refuses private/loopback/link-local/cloud-metadata IPs. 5s connect timeout.
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | ||
| domain | Yes | Hostname only (no scheme/path). e.g. example.com |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses SSRF protection (refusing private/loopback/link-local/cloud-metadata IPs) and a 5s connect timeout, which are key behavioral traits for a network tool. It also describes the output fields, though it doesn't specify failure 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?
The description is concise: three sentences covering action, return fields, use case, and safety/timeout. It is front-loaded with the main purpose and contains 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 tool with no output schema, the description enumerates all return fields. It includes security and timeout context, which is important for network operations. It doesn't mention error handling, but the provided info is sufficient for basic use.
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% (only domain has a description, port has constraints but no description). The description uses {domain}:{port} placeholders but doesn't elaborate on port defaults or validation. It adds little beyond the schema, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action ('Connect to {domain}:{port} over TLS') and the resource (SSL/TLS certificate), listing detailed return fields. It distinguishes this from sibling tools like dns_lookup or url_metadata by focusing on certificate inspection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use it ('verifying a domain has HTTPS, the cert is not expired, and the chain is properly configured'), giving clear context. It does not mention alternatives or when-not scenarios, but the use cases are specific enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
statsA
Descriptive statistics for a list of numbers: count, sum, mean, median, mode, min/max/range, variance, stddev (population AND sample), MAD, quartiles, IQR, percentiles (1-99), geometric mean, harmonic mean.
| Name | Required | Description | Default |
|---|---|---|---|
| numbers | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It specifies the output statistics, including a note on population vs. sample stddev, which is useful. However, it does not disclose behavior for edge cases (e.g., empty list, non-numeric input, multiple modes) or define terms like MAD. This is a moderate disclosure, not comprehensive.
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 sentence that immediately states the core purpose and then lists all supported statistics. It is dense but every word adds value, with no repetition or filler. The front-loaded purpose ensures quick comprehension.
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 (one param, no output schema, no annotations). The description lists the full set of return statistics, giving a clear idea of the output. However, it does miss edge-case behavior or usage nuances (e.g., how mode is determined, string parsing details). For a pure calculator, this is nearly complete, but not fully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has only one parameter 'numbers', and the description does not add any meaning beyond saying it's a list of numbers. The schema itself includes a small description for the string variant ('Comma- or whitespace-separated numbers'), but the context signal indicates 0% schema description coverage overall. The tool description fails to compensate by explaining acceptable formats, types, or examples, leaving an agent to rely solely on 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 clearly states the tool's function with a specific verb ('Descriptive statistics') and resource ('a list of numbers'), followed by an exhaustive list of outputs (count, sum, mean, median, etc.). This unambiguously distinguishes it from sibling tools like count_lines or base64_encode, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose is clear, implying when to use the tool (whenever numeric statistical summaries are needed), but there is no explicit guidance on when not to use it or mention of alternative tools. No exclusions or alternative references are provided, so the usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_cleanupA
Apply chained text cleanup operations in sequence. Operations: trim, collapse_spaces, normalize_whitespace, remove_line_breaks, normalize_line_breaks, dedupe_lines, reverse_lines, strip_html, strip_emoji, strip_urls, strip_emails, normalize_quotes (curly → straight), normalize_dashes (em/en → hyphen), lowercase, uppercase. Returns cleaned text plus per-operation chars/lines removed.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| operations | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behavioral traits: operations are chained in sequence (order matters), and it specifies the return value (cleaned text plus per-operation stats). It also explains normalization behaviors (e.g., curly → straight quotes). This goes beyond a basic functional statement, though it does not cover edge cases or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main purpose. The operation list is compact and the return behavior is included. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description covers the essential usage (operations, sequence, return format). It does not mention error behavior, but the schema's enum prevents invalid inputs. The tool is a straightforward transformation, so this level of detail is sufficient for an agent to invoke 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 0%, so the description must compensate. It lists and explains the operations (e.g., normalize_quotes maps curly to straight) and clarifies the chaining semantics, adding value beyond the raw schema enums. The 'text' parameter is only referenced by name, but its purpose is evident from the tool's purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Apply') and resource ('text cleanup operations') and clearly defines the scope via the enumerated operation list. It distinguishes itself from sibling text tools like case_convert or sort_lines by emphasizing chained, sequential execution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for multi-step text cleaning tasks ('Apply chained text cleanup operations in sequence') but does not explicitly state when to prefer this over alternatives like slugify or text_diff, nor does it mention exclusions or prerequisites. The context is clear but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
text_diffA
Diff two strings by line, word or character. Returns structured changes (+/-/=), git-style unified diff, and a Jaccard similarity score. Use line mode for code/config; word mode for prose; char mode for short strings.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | ||
| b | Yes | ||
| mode | No | line | |
| context | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the output types and the three modes, but it does not explicitly state that the operation is non-mutating or side-effect free, nor does it address edge cases like empty strings or performance. Still, the nature of a diff tool implies read-only behavior, so the score is moderate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, with the first sentence stating the core function and outputs, and the second giving mode guidance. Every sentence adds value, and there is no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 4 parameters and no output schema. The description lists the three return formats but does not detail the exact structure of the changes or the context parameter. Given the tool's simplicity, this is nearly sufficient, but it could mention that 'context' controls the number of surrounding lines in the unified diff.
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 adds meaning to 'mode' with usage examples, but does not explain 'a', 'b', or 'context' beyond what the schema shows. The parameter names and defaults (e.g., context: 3) are somewhat self-explanatory, but the description could be more explicit about the 'context' parameter behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool diffs two strings by line, word, or character, and specifies the output formats (structured changes, unified diff, Jaccard score). This distinguishes it from sibling tools like count_lines or case_convert, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit mode-selection guidance ('line mode for code/config; word mode for prose; char mode for short strings'), helping the agent choose correctly. It does not mention alternatives or exclusions, but the context is clear enough for a focused utility.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
timestampA
Convert any moment in time between formats. Bidirectional Unix epoch ↔ ISO 8601 ↔ RFC 3339 ↔ human-readable. Auto-detects epoch resolution. Accepts strtotime-style natural language ("next monday", "+2 weeks"). Optional timezone for local components.
| Name | Required | Description | Default |
|---|---|---|---|
| input | No | Date/time string or Unix epoch as a string. Omit for current time. | |
| timezone | No | IANA timezone name e.g. 'Europe/Madrid' | UTC |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the transparency burden. It discloses auto-detection of epoch resolution, acceptance of strtotime-style natural language, and timezone handling. It does not explicitly state the return format, but the core conversion behavior is well articulated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three focused sentences, front-loaded with the primary purpose ('Convert any moment in time between formats') and each sentence adds distinct, valuable information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two optional parameters and no output schema, the description covers the main scope, input flexibility, and timezone handling. It does not specify the exact output format, but given the tool's nature and the schema's clarity on input, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% parameter descriptions (input, timezone). The tool description adds meaningful semantics beyond the schema by explaining acceptable input forms (natural language, epoch), auto-detection of resolution, and the role of timezone for local components.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Convert any moment in time between formats') and lists the formats (Unix epoch, ISO 8601, RFC 3339, human-readable). It clearly distinguishes the tool from siblings like date_math or age_calc by emphasizing bidirectional format conversion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys suitable use cases: converting any date/time string or epoch between formats, supporting natural language input, and optional timezone handling. It provides clear context but does not explicitly contrast with alternative tools or mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
url_decodeA
Decode a percent-encoded URL string. mode=component (rawurldecode, default) or form (interprets + as space).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | component | |
| encoded | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavior. It explains that mode=component maps to rawurldecode and mode=form interprets '+' as space, which are meaningful behavioral nuances. It does not discuss error handling or output format, but for a simple decoding tool this is adequate context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, no filler. The mode explanation is compact and directly tied to parameter 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?
For a simple two-parameter tool with no output schema, the description is sufficient: it states the purpose, identifies the required input, and details the optional mode. Minor omissions (e.g., error behavior) are not critical for this utility tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning. It adds clarity to the mode parameter by defining the enum values and their effects. It also clarifies 'encoded' via 'percent-encoded URL string', though the schema property name was already self-explanatory.
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 begins with 'Decode a percent-encoded URL string', clearly stating the verb and resource. It also distinguishes between two decoding modes (component/form) and naturally separates itself from sibling tools like url_encode and base64_decode.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly implies when to use the tool (when a percent-encoded URL string needs decoding) and explains mode options, but it does not explicitly mention alternatives or exclusions. Lacks explicit guidance on when to choose this over url_encode or base64_decode.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
url_encodeA
Percent-encode a string for URL use. mode=component (RFC 3986 strict, default), form (application/x-www-form-urlencoded), or path (keeps slashes intact).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | component | |
| text | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses meaningful behavior: strict RFC 3986 in component mode, form-urlencoding, and path mode keeping slashes intact. This adds detail beyond the schema's enum values, though it does not discuss edge cases like idempotency or double-encoding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action, and compacts the three modes into an efficient list. Every word earns its place, with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (2 parameters, no output schema, no annotations), the description is complete. It covers purpose, all parameter meanings, and mode-specific behavior, which is sufficient for an agent to select and use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by thoroughly explaining the 'mode' parameter, including meanings and default. The 'text' parameter is implied as 'a string', which is trivial. The default for mode is also mentioned, adding semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Percent-encode') and resource ('a string for URL use'), which clearly defines the tool's function. It distinguishes from siblings like base64_encode and url_decode by focusing on URL encoding and enumerating three modes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (for URL encoding) and explains mode-specific contexts, but it does not explicitly reference alternatives or state when not to use the tool. Sibling tools exist, but no exclusions or comparisons are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
url_metadataA
Fetch a public HTTPS URL and extract structured page metadata: title, description, keywords, canonical, language, charset, full OpenGraph dictionary, Twitter Card, favicon (absolute URL), hreflang map, JSON-LD blocks, response headers and counts (h1/h2/images/links/scripts). SSRF-protected: refuses private/loopback/link-local/cloud-metadata addresses and re-validates every redirect. 2 MB body cap.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | http:// or https:// URL to fetch. | |
| timeout | No | ||
| user_agent | No | Override the User-Agent header. | |
| follow_redirects | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses critical safety behaviors: SSRF protection against private/loopback/link-local/cloud-metadata, redirect re-validation, and a 2MB body cap. It also enumerates the full set of return fields, giving the agent a clear picture of the response shape. It does not mention error handling or rate limits, but the core behavioral traits are covered.
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, information-dense sentence plus a second sentence on safety. No filler or repetition; every phrase adds a behavioral or output detail.
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 enumerates the exact metadata fields returned, making the tool's output predictable without an output schema. It also covers safety, redirect handling, and size limits. Given four parameters and no output schema, this is ample context.
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 covers half of parameters with descriptions (url, user_agent); description adds constraints beyond schema by specifying 'public HTTPS URL' and 'SSRF-protected' for url, and 're-validates every redirect' for follow_redirects. However, timeout is entirely undocumented in both schema and description, leaving its meaning to the parameter type/constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Fetch') and a concrete resource ('public HTTPS URL'), followed by an extensive list of extracted metadata. This unambiguously differentiates it from sibling utilities like dns_lookup or sitemap_extract.
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?
While no explicit alternatives or exclusions are named, the tool's scope is clear: it is for URL metadata extraction. The SSRF constraints and 2MB cap implicitly define when not to use it (non-public/internal URLs, very large pages), though no sibling comparison is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xml_validateA
Validate XML well-formedness; with optional XSD schema. Reports errors with line/column. Network and DTD fetches are disabled (no XXE risk).
| Name | Required | Description | Default |
|---|---|---|---|
| xml | Yes | ||
| schema | No | Optional XSD source. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that network/DTD fetches are disabled (security behavior) and that errors are reported with line/column (error reporting behavior). It does not detail the exact success return format, but adds meaningful context beyond the 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?
The description is two sentences, front-loaded with the purpose, followed by a concise security note. Every word earns its place, with no unnecessary repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has only two simple parameters and no annotations or output schema. The description covers purpose, optional schema, error reporting, and security. Missing details like the success return value are minor and inferable, making this sufficiently complete for its simplicity.
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 exactly 50% (one of two params described). The description adds context about the optional XSD schema, reinforcing the schema parameter's description, but does not elaborate on the 'xml' parameter beyond what the tool name implies. It provides moderate added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool validates XML well-formedness with optional XSD schema, using a specific verb and resource. It is the only XML validation tool among siblings, so it is inherently distinguished.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies use for XML validation and mentions optional schema validation, providing clear context. It does not explicitly name alternatives, but no sibling tool competes for the same purpose, so no exclusions are needed.
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. Dates show when Glama detected each change.
35 tool updates
v1.5.0- First observed
age_calc - First observed
aspect_ratio - First observed
base64_decode - First observed
base64_encode - First observed
case_convert - First observed
color_convert - First observed
count_lines - First observed
credit_card_validate - First observed
date_math - First observed
dns_lookup - First observed
finance_calc - First observed
hash - First observed
hashtag_tools - First observed
json_format - First observed
json_to_csv - First observed
jwt_decode - First observed
lorem_ipsum - First observed
meta_tags_generate - First observed
number_base - First observed
password - First observed
password_strength - First observed
random_gen - First observed
regex_test - First observed
sitemap_extract - First observed
slugify - First observed
sort_lines - First observed
ssl_check - First observed
stats - First observed
text_cleanup - First observed
text_diff - First observed
timestamp - First observed
url_decode - First observed
url_encode - First observed
url_metadata - First observed
xml_validate
TDQS
Each tool targets a distinct operation, but `text_cleanup` and `case_convert` both handle case changes (lowercase/uppercase), and `sitemap_extract` vs `url_metadata` both involve fetching URLs, so a careful reading is needed to pick the right tool. Overall, no severe overlaps.
Tool names are all lowercase with underscores, but the pattern is inconsistent: many are noun_verb (`base64_encode`, `url_decode`, `regex_test`), some are single nouns (`hash`, `password`, `stats`), some use abbreviations (`age_calc`, `finance_calc`, `random_gen`), and a few don't follow verb_noun (`lorem_ipsum`, `json_to_csv`, `hashtag_tools`). This mixed style is still readable but not uniform.
With 35 tools, the server is overloaded for a single MCP server. Although the scope is a general utility toolkit, the number exceeds what an agent can efficiently navigate, and many tools could be split into focused servers. This borders on being too many and earns a score of 2.
The toolkit covers a wide range of common utilities: encoding, text processing, date/time, math, finance, web metadata, validation, and security. Minor gaps exist (e.g., no image processing, no file system operations), but for a general-purpose utility server, the surface is quite complete and leaves no major dead ends for typical use cases.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Remote MCP server: 10 developer utilities (base64, JWT, DNS, UUID, URL, JSON, UA, IP lookup).
238+ dev tools via MCP: JSON, QR, PDF, DNS, hash, UUID, code review, JWT, SSL, WHOIS, and more
49 developer tools via MCP: DNS, WHOIS, IP lookup, JWT, hashing, QR, and more.
Utility tools for AI agents: hashing, text stats, validation, DNS, currency, GEO audits.
Related MCP Servers
- FlicenseAqualityDmaintenanceA lightweight MCP server providing utility tools for math, text processing, data conversion, and URL fetching. It supports both STDIO and SSE communication modes for seamless integration with Claude Desktop and remote AI agents.51-
- FlicenseNot gradedqualityDmaintenanceSwiss-army-knife utility MCP server for AI agents. 18 tools for JSON validation/formatting, base64 encode/decode, hash generation, UUID generation, URL parsing, regex testing, markdown↔HTML conversion, text stats, slug generation, datetime conversion, cron parsing, text diffing, CSV↔JSON conversion, and JWT decoding. Zero API Key required5-
- AlicenseNot gradedqualityDmaintenanceMulti-tool MCP server for AI agents with 29 tools across web scraping, SEO analysis, screenshot and PDF generation, domain intelligence, content extraction, multi-chain EVM blockchain queries, and security toolkit. Free tier available with no auth required.221MIT
- FlicenseNot gradedqualityBmaintenanceA free, zero-dependency Model Context Protocol (MCP) server for AI agents providing Web3/crypto toolkit (balances, ENS, token info, tx decode, Chainlink price feed, payment verification) plus encoding, hashing, and data transformation utilities.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/matetools/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server