Skip to main content
Glama
bicibg

Apixies MCP Server

by bicibg

Apixies MCP Server

Connect 52+ developer utility APIs to Claude, Cursor, and any MCP-compatible AI tool.

Check SSL certificates, look up DNS records, validate emails, generate QR codes, convert HTML to PDF, and more. All through natural language.

Quick Start

Add this to your MCP client config:

{
  "mcpServers": {
    "apixies": {
      "command": "npx",
      "args": ["-y", "@apixies/mcp-server"],
      "env": {
        "APIXIES_API_KEY": "apx_your_key_here"
      }
    }
  }
}

Get a free API key at apixies.io/register. The server needs one. Without it every tool call returns a MISSING_API_KEY error.

Related MCP server: ToolPipe MCP Server

Setup by Client

Claude Desktop

One click: download apixies.mcpb and double-click it. Claude Desktop asks for your API key and you're done.

Or by hand:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "apixies": {
      "command": "npx",
      "args": ["-y", "@apixies/mcp-server"],
      "env": {
        "APIXIES_API_KEY": "apx_your_key_here"
      }
    }
  }
}

Restart Claude Desktop after saving.

Claude Code

Add to your project's .mcp.json or global config:

{
  "mcpServers": {
    "apixies": {
      "command": "npx",
      "args": ["-y", "@apixies/mcp-server"],
      "env": {
        "APIXIES_API_KEY": "apx_your_key_here"
      }
    }
  }
}

Cursor

Add to .cursor/mcp.json in your project root:

{
  "mcpServers": {
    "apixies": {
      "command": "npx",
      "args": ["-y", "@apixies/mcp-server"],
      "env": {
        "APIXIES_API_KEY": "apx_your_key_here"
      }
    }
  }
}

VS Code

Add to .vscode/mcp.json:

{
  "mcpServers": {
    "apixies": {
      "command": "npx",
      "args": ["-y", "@apixies/mcp-server"],
      "env": {
        "APIXIES_API_KEY": "apx_your_key_here"
      }
    }
  }
}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "apixies": {
      "command": "npx",
      "args": ["-y", "@apixies/mcp-server"],
      "env": {
        "APIXIES_API_KEY": "apx_your_key_here"
      }
    }
  }
}

Available Tools

Inspectors

Tool

Description

check_ssl

Check SSL/TLS certificate for a domain

check_headers

Inspect security headers and get a grade

inspect_email

Validate email format, MX records, disposable detection

parse_user_agent

Detect browser, OS, device type from UA string

geolocate_ip

Get country, city, ISP for an IP address

dns_lookup

Query DNS records (A, MX, TXT, CNAME, NS, etc.)

dns_propagation

Check if a DNS change has reached five public resolvers

trace_redirects

Follow redirect chain and see every hop

extract_meta_tags

Get OpenGraph, Twitter Card, and meta tags

check_link

Check if a URL is reachable with status and timing

parse_robots_txt

Parse robots.txt rules and sitemaps

fetch_favicon

Find favicon URLs for any website

validate_url

Validate URL format, reachability, and SSL

validate_email_auth

Check SPF, DKIM, and DMARC records

check_performance

Measure DNS, TCP, SSL, TTFB, and load times

whois_lookup

Look up domain registration and expiry data

decode_jwt

Decode JWT tokens (header, payload, claims)

analyze_text

Word count, reading time, keyword frequency

my_ip

Get the server's public IP address

http_status_lookup

Look up HTTP status code details and fixes

parse_cron

Parse cron expressions into human-readable descriptions

test_regex

Test regex patterns against text with match details

json_diff

Compare two JSON objects and return structured diff

Converters

Tool

Description

html_to_pdf

Convert HTML to PDF

markdown_to_html

Convert Markdown to HTML

markdown_to_pdf

Convert Markdown to PDF

format_json

Format, validate, and analyze JSON

json_to_csv

Convert JSON arrays to CSV

csv_to_json

Convert CSV data to JSON array of objects

html_to_markdown

Convert HTML content to Markdown

yaml_to_json

Convert YAML content to JSON

xml_to_json

Convert XML content to JSON

json_to_xml

Convert JSON objects to XML

base64_encode_decode

Encode or decode Base64 strings

format_phone

Format phone numbers (E.164, international)

validate_json_schema

Validate JSON against a schema

convert_color

Convert between HEX, RGB, HSL

convert_timestamp

Convert Unix timestamps to dates and back

encode_decode_url

URL-encode or decode strings

generate_hash

Generate MD5, SHA-256, SHA-512 hashes

Generators

Tool

Description

generate_qr

Generate QR codes (SVG)

generate_uuid

Generate UUID v4 or v7 identifiers

generate_password

Generate secure random passwords

generate_lorem

Generate Lorem Ipsum placeholder text

take_screenshot

Capture webpage screenshots (PNG/JPEG)

Example Conversations

SSL check:

You: Check if stripe.com has a valid SSL certificate

Claude uses check_ssl tool, then responds with issuer, expiry date, protocol version, and chain health.

DNS lookup:

You: What are the MX records for github.com?

Claude uses dns_lookup with type "MX" and returns the mail server records.

Multi-tool workflow:

You: Do a security audit on mysite.com. Check SSL, security headers, and email authentication.

Claude calls check_ssl, check_headers, and validate_email_auth in sequence, then gives you a combined report.

API Key

The server needs an API key. It's free: register at apixies.io/register, create a key in the dashboard, and you get 75 requests a day.

Set it with the APIXIES_API_KEY environment variable in your MCP client config. The Claude Desktop extension asks for it when you install.

Privacy Policy

The server runs on your machine and sends only the arguments of each tool call (a domain, a URL, some text) to the Apixies API at https://apixies.io, together with your API key. It doesn't read your files, your conversations or anything else on your computer, and it has no telemetry of its own.

Apixies logs API requests for up to 90 days to enforce quotas and debug problems. Payload fields such as text, HTML and email addresses are redacted from those logs. Nothing is sold or shared for advertising.

Full policy: apixies.io/privacy. Questions: hello@apixies.io.

Development

cd mcp-server
npm install
npm run build
npm run inspect  # Opens MCP Inspector to test tools

For local development with auto-reload:

npm run dev

To run against a local Apixies instance, set APIXIES_BASE_URL (for example http://localhost:8000). It defaults to https://apixies.io.

Troubleshooting

Tools don't appear in Claude Desktop

  • Make sure you restarted Claude Desktop after editing the config

  • Check the config file path is correct for your OS

  • Verify Node.js 18+ is installed: node --version

"APIXIES_API_KEY not set" warning

  • The server starts, but every tool call fails with MISSING_API_KEY

  • Add your API key to the env config and restart the client

Rate limit errors

  • Free tier: 75 requests/day with an API key, 20 without

  • Errors include a DAILY_QUOTA_EXCEEDED code

Connection timeout

  • Some tools (screenshot, performance check) may take a few seconds

  • If consistently timing out, check your network connection

License

MIT

Available Tools

50 tools
analyze_textA
Read-only

Analyze text content. Returns word count, character count, sentence count, paragraph count, reading time, speaking time, and top word frequency.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText content to analyze

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already covers the safety profile, so the description adds value by listing the computed metrics. However, it does not disclose edge-case behavior such as handling of empty input, very large text, or the exact format of 'top word frequency'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficiently structured sentence that leads with the action, then lists the returned metrics. There is no redundant phrasing or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter read-only tool without an output schema, the description conveys the core output set clearly. Minor omissions like units for reading/speaking time or the definition of 'top word frequency' are small gaps, not critical missing information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description for 'text' is 'Text content to analyze', which fully documents the single parameter. The tool description adds little beyond restating this purpose, but with 100% schema coverage the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies a specific verb ('analyze') and resource ('text content'), then enumerates the exact outputs. This distinguishes it from the sibling tools, none of which perform general text content analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the intended use clear: analyze text to obtain quantitative metrics. It does not explicitly state when not to use it or name alternatives, but given the sibling list contains no overlapping text-analysis tool, the usage context is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

base64_encode_decodeA
Read-only

Encode or decode a Base64 string. Supports standard and URL-safe Base64.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYesText to encode or Base64 string to decode
actionYes"encode" or "decode"

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds useful behavioral context by noting both standard and URL-safe Base64 are supported, but it does not address edge cases such as invalid input handling or output details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler. The core operation is front-loaded first, and the supporting detail about URL-safe Base64 follows naturally, making efficient use of every word.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 complete schema coverage and read-only annotations, the description is largely sufficient. The only minor gap is that it does not explicitly state the return value format, but the output is strongly implied by the encode/decode operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already well-documented. The description still adds value beyond the schema by explaining that both standard and URL-safe Base64 variants are accepted, which clarifies the allowed input format beyond the bare parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb-resource pair ('Encode or decode a Base64 string') and adds a distinguishing detail ('Supports standard and URL-safe Base64') that separates it from sibling tools like encode_decode_url. The scope is immediately clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool (whenever Base64 encoding/decoding is needed) and the URL-safe variant support gives additional context. However, it does not explicitly mention alternatives or state when not to use this tool versus alternatives like encode_decode_url.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_corsA
Read-only

Check if a URL has CORS headers configured. Sends a preflight OPTIONS request and reports allowed origins, methods, headers, and security issues. Useful for debugging frontend API integration problems.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to check for CORS headers (e.g., "https://api.github.com")
originNoOrigin to send in preflight request (default: "https://example.com")

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that it 'Sends a preflight OPTIONS request' and reports specific response aspects, adding value beyond the readOnlyHint annotation. It does not detail error handling or potential i.e., redirects, but for a read-only network probe this is acceptable given annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: purpose, mechanism, and use case. It is front-loaded with the primary action, and there is no redundancy or extraneous wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 full schema coverage and no output schema, the description provides adequate context: it explains what the request does and what results are reported. It does not mention edge cases like redirects or timeout, but overall the tool is sufficiently specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already defines both 'url' and 'origin' clearly. The description does not add parameter-specific semantics, but per calibration, a baseline of 3 is appropriate when the schema carries the full burden. No compensation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Check') and resource ('URL's CORS headers'), and details the action (sends preflight OPTIONS request) and output categories (allowed origins, methods, headers, security issues). It clearly distinguishes from siblings like check_headers and check_ssl by focusing specifically on CORS configuration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a clear use case: 'Useful for debugging frontend API integration problems.' This gives context on when to invoke the tool, though it does not explicitly mention alternatives or when not to use it. The context is strong enough to be more than merely implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_headersA
Read-only

Check security headers for a URL. Returns present and missing headers (HSTS, CSP, X-Frame-Options, etc.) with a security grade.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull URL to check (e.g., "https://github.com")

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the description does not need to repeat those. It adds useful behavioral detail about the output (present/missing headers, security grade), which helps the agent anticipate results. It does not mention network behavior or rate limits, but that is not essential given the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, information-dense sentence with no wasted words. The purpose is front-loaded, and the return details are given in the second clause. It is appropriately concise for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only tool with no output schema, the description fully explains what the tool does and what it returns. The annotations cover safety, and the schema covers the parameter. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers the single parameter (url) with a clear description and example. The tool description does not add any extra meaning beyond the schema, so the baseline of 3 is appropriate. There is no need to compensate for missing schema coverage since coverage is 100%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Check') and resource ('security headers for a URL'), and explicitly mentions what is returned (present/missing headers, security grade). This clearly distinguishes it from sibling tools like check_ssl, check_cors, and check_mixed_content, which target different aspects of web security.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on what the tool does, so an agent can infer when to use it. However, it does not explicitly mention alternatives or state conditions when this tool is NOT appropriate (e.g., for SSL checks or CORS issues). Since it clearly scopes to security headers, this is adequate 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.

check_mixed_contentA
Read-only

Scan an HTTPS page for mixed content (HTTP resources on HTTPS pages). Finds insecure images, scripts, stylesheets, and iframes that cause browser warnings. Reports severity (active vs passive) and line numbers.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesHTTPS URL to scan (e.g., "https://example.com")

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, covering the safety profile. The description adds valuable behavioral detail: it reports severity (active vs passive) and line numbers, which goes beyond the annotations. No contradictions, and the description complements the structured metadata.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no fluff. The primary action and resource are front-loaded, followed by useful detail on resource types and output. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only tool with no output schema, the description fully covers what it does, what it detects, and what it reports. There are no missing behavioral or usage details an agent would need to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully describes the single url parameter with a clear description ('HTTPS URL to scan'). The description's first sentence echoes this but adds no new meaning. With 100% schema coverage, a baseline of 3 is appropriate—no extra parameter context is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Scan'), a specific resource ('HTTPS page for mixed content'), and enumerates the exact resource types (images, scripts, stylesheets, iframes). It clearly distinguishes from siblings like check_ssl or check_headers by focusing on mixed content, and even mentions the output (severity and line numbers).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case (detecting browser warnings from mixed content) but does not explicitly state when to use it over alternatives like check_ssl or check_headers. No exclusions or alternative tool references are given, leaving the selection decision to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_performanceA
Read-only

Measure website performance. Returns DNS lookup time, TCP connect time, SSL handshake time, TTFB, content download time, and total load time.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to analyze (e.g., "https://stripe.com")

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the agent knows this is non-destructive. The description adds value by specifying the exact output metrics returned, which is especially helpful given there is no output schema. It does not mention potential timeouts or network dependency, but the read-only behavior is adequately covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that states the core action first and then lists the return metrics efficiently. Every phrase earns its place with no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only tool with no output schema, the description is complete: it identifies the URL input, explains what the tool measures, and enumerates the returned timing values. The annotations cover side-effect safety, so no further behavioral disclaimers are essential.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with the url parameter already described as 'URL to analyze.' The description reinforces that the URL is a website to measure performance for, but does not add meaningful new parameter-level detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb, 'Measure website performance,' and enumerates concrete metrics (DNS lookup, TCP connect, SSL handshake, TTFB, content download, total load time). This clearly distinguishes it from sibling tools like check_ssl or check_headers, which focus on different aspects of a website.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to choose this tool over alternatives, nor does it mention exclusions or prerequisites. While the purpose is clear, there is no explicit routing to sibling tools such as trace_redirects or check_headers.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_sslA
Read-only

Check the SSL/TLS certificate of a domain. Returns issuer, validity dates, expiry countdown, protocol version, cipher suite, and certificate chain details.

ParametersJSON Schema
NameRequiredDescriptionDefault
portNoPort number (default: 443)
domainYesDomain name to check (e.g., "stripe.com")

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds meaningful transparency by specifying what is returned, which is especially valuable because no output schema exists. It does not disclose potential network behavior or failure modes, but the read-only annotation reduces that burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence that states the action, target, and visible outputs with no filler. Every phrase adds useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple: one required domain parameter and an optional port. The description covers the main return values and the annotation covers the read-only nature. It could mention behavior on unreachable domains or TLS errors, but that is a minor gap for a straightforward diagnostic tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both `domain` and `port` are already documented. The description adds no extra parameter-level detail, which is acceptable given the schema carries the full burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description has a specific verb ('Check'), a clear resource ('SSL/TLS certificate of a domain'), and enumerates the key outputs returned (issuer, validity dates, expiry countdown, protocol version, cipher suite, certificate chain). This clearly sets it apart from sibling tools like dns_lookup, whois_lookup, and check_headers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use case is implied: if you need certificate details for a domain, this is the tool. However, it does not explicitly state when to use this over alternatives, nor does it mention any exclusions or complementary tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

convert_colorA
Read-only

Convert a color between HEX, RGB, and HSL formats. Input any format and get all three representations back.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorYesColor value in HEX (#FF5733), RGB (rgb(255,87,51)), or HSL (hsl(11,100%,60%))
formatNoPreferred output format: "hex", "rgb", or "hsl". Returns all formats regardless.

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, covering the safety profile. The description adds no new behavioral traits beyond what the schema already states: the color parameter describes accepted formats, and the format parameter already says 'Returns all formats regardless.' It does not disclose edge cases, error behavior, or output structure, adding minimal value beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 15 words that front-loads the verb and resource. Every phrase earns its place, and there is no filler or redundant explanation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple transformation tool, the description covers the essential invocation details: input any supported color format and receive all three representations. It does not specify the exact output structure, but no output schema exists, and an agent can call the tool correctly with the given information. Missing only a precise return-shape description, which is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents both parameters. The description merely echoes the supported formats and the return-all-formats behavior, which are already present in the parameter descriptions. It adds no extra parameter meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the verb 'convert', the resource 'color', and the specific formats involved (HEX, RGB, HSL). It distinguishes itself from all sibling tools, none of which handle color conversion, making 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use whenever a color needs conversion between HEX, RGB, or HSL. It does not explicitly state exclusions or alternatives, but the sibling set contains no competing color tool, so the intended usage context is clear. An explicit 'use when...' would make it fully explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

convert_timestampA
Read-only

Convert between Unix timestamps and human-readable dates. Returns ISO 8601, RFC 2822, human-readable, and Unix formats with timezone support.

ParametersJSON Schema
NameRequiredDescriptionDefault
timezoneNoIANA timezone (e.g., "America/New_York", "Europe/London"). Default: "UTC"
timestampYesUnix timestamp (e.g., "1700000000") or date string (e.g., "2023-11-14")

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the return formats (ISO 8601, RFC 2822, human-readable, Unix) and timezone support, which adds behavioral context beyond the readOnlyHint annotation. It does not contradict the annotation and adequately describes the operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence with no fluff. It front-loads the main purpose and lists output formats efficiently, earning its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description explains what the tool returns, including multiple formats and timezone handling. It covers the essential information an agent needs to invoke it correctly, though it omits edge-case behavior like invalid input handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: both parameters (timestamp, timezone) have descriptions. The tool description adds no extra parameter semantics beyond restating 'timezone support', so a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Convert' and the resource 'Unix timestamps and human-readable dates', and specifies the output formats. No sibling tool performs timestamp conversion, so it is inherently distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies its use case (converting between time representations) and no alternative tool exists among siblings. It lacks explicit when-not-to-use guidance, but the purpose is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

csv_to_jsonA
Read-only

Convert CSV data to a JSON array of objects. Supports custom delimiters, header detection, and quoted fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
csvYesCSV content as a string
delimiterNoColumn delimiter: comma, semicolon, tab, or pipe (default: comma)
has_headersNoFirst row contains column headers (default: true)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=true and openWorldHint=false, which cover the safety and determinism profile. The description adds useful capabilities (custom delimiters, header detection, quoted fields), but does not disclose error behavior, encoding assumptions, or edge-case handling. With annotations present, this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence that states the core action, output format, and distinctive capabilities. Every phrase adds value, and there is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a simple conversion utility with only one required parameter and a readable input schema. The description plus schema covers the essential operation. It doesn't explain return values or error handling, but given the obvious output type and read-only annotation, nothing critical is missing for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 mentions custom delimiters and header detection, which map to delimiter and has_headers, but adds no meaning beyond what the schema descriptions provide. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Convert') and resource ('CSV data') with an explicit output ('JSON array of objects'). It also names key capabilities (delimiters, header detection, quoted fields) that clearly distinguish this tool from inverse or formatting siblings like json_to_csv and format_json.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage context is implied: use it when you need to transform CSV into JSON. However, there is no explicit statement about when not to use it or which sibling alternative (e.g., json_to_csv) handles the reverse operation. No exclusions or alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

decode_jwtA
Read-only

Decode a JWT token without verification. Returns the header, payload with all claims, signature, and expiry information.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesJWT token string (e.g., "eyJhbGciOiJIUzI1NiIs...")

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as read-only, and the description adds a key behavioral caveat: it decodes without verification, which is significant for security-sensitive decisions. It also discloses what information is returned, extending beyond the annotation's simple read-only hint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that opens with the core action and scope, then lists the returned components. Every part adds value with no repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one parameter and no output schema, the description adequately covers the essential behavior and return values. It could briefly note behavior on malformed tokens, but the current wording is sufficient for an agent to select and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the only parameter, token, is already described as a JWT token string with an example. The description reinforces that the input is a JWT and explains the output, but it does not add new meaning to the token parameter itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb-resource pair, 'Decode a JWT token', and immediately clarifies the important scope 'without verification'. It also names the decoded components (header, payload, signature, expiry), making the tool's purpose unmistakable even without sibling JWT tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'without verification' provides clear contextual guidance: this tool is for decoding only, not for validating tokens. It implies that agents needing signature verification should look elsewhere, though it does not name an alternative tool explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_lookupA
Read-only

Query DNS records for a domain. Returns A, AAAA, MX, TXT, CNAME, NS, SOA, SRV, CAA, PTR records. Optionally filter by record type.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoRecord type filter: A, AAAA, MX, TXT, CNAME, NS, SOA, SRV, CAA, PTR. Omit for all.
domainYesDomain name to query (e.g., "github.com")

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint, and the description adds behavioral specifics by stating that all listed record types are returned unless the user filters with 'type.' This tells the agent what to expect from the call, and does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The two-sentence description is front-loaded with the primary action and wastes no words. Every sentence carries distinct information: the first covers the operation and return set, the second covers the optional filter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 2-parameter, read-only lookup tool with no output schema, the description covers the core behavior and output scope. It does not mention failure modes or behavior on invalid 'type' values, but these are minor for an agent deciding how to invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: both 'domain' and 'type' are documented in the schema, including the allowed record types. The description's phrase 'Optionally filter by record type' merely echoes the schema, so it adds no new semantic information; baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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, 'Query DNS records for a domain,' and enumerates the record types returned (A, AAAA, MX, TXT, CNAME, NS, SOA, SRV, CAA, PTR). This clearly conveys the tool's function, though it does not explicitly contrast with sibling tools like dns_propagation, so it earns a 4 rather than a 5 for differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to choose dns_lookup over related siblings such as whois_lookup or dns_propagation. The only usage note is 'Optionally filter by record type,' which addresses parameter selection, not tool selection, so the dimension remains unaddressed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dns_propagationA
Read-only

Check whether a DNS change has propagated: asks Google, Cloudflare, Quad9, OpenDNS and AdGuard the same question at once and reports which resolvers agree, with TTLs. Different answers can also mean load balancing, not only an unfinished change.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoRecord type (default: A)
domainYesDomain name to check (e.g., "github.com")
resolversNoResolvers to ask, at least two. Omit for all five.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, covering the safety profile. The description adds valuable behavioral context: the concrete method (five named public resolvers asked simultaneously), the reported output concept (which resolvers agree, with TTLs), and a non-obvious interpretation caveat about load balancing. It doesn't mention edge cases like resolver failures, but it goes well beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler: the first states the action, scope, and output; the second adds an important interpretive caveat. Every sentence earns its place and the core purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only tool with full schema coverage, annotations covering safety, and no output schema, the description communicates the core purpose, method, and output concept. Missing details like exact output shape or default record type are minor because parameters are documented in the schema; slightly more detail about the return format would make it complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all three parameters, so the baseline is 3. The description maps the resolver enum values to full provider names and conveys the simultaneous-query semantics, but it does not add syntax, constraints, or meaning for domain/type beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it checks whether a DNS change has propagated by querying multiple resolvers simultaneously and reporting agreement with TTLs. It names the exact resolvers and adds a load-balancing caveat, making it clearly distinguishable from the sibling dns_lookup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use case is implied ('Check whether a DNS change has propagated'), and the multi-resolver comparison suggests when it is appropriate, but the description does not explicitly route between this tool and dns_lookup or state when not to use it. There is no when-not guidance or named alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

encode_decode_urlA
Read-only

URL-encode or decode a string. RFC 3986 compliant encoding for URLs and query strings.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYesText to encode or URL-encoded string to decode
actionYes"encode" or "decode"

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, and the description is consistent, adding the RFC 3986 compliance detail and the scope for URLs and query strings. This provides useful context beyond the annotations, though it doesn't discuss edge cases or error behavior, which is acceptable for a pure utility.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-structured sentence with zero filler. The purpose is front-loaded, and the RFC compliance detail adds value without bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter, read-only utility, the description covers purpose and compliance sufficiently. No output schema is present, but the tool's output (encoded/decoded string) is self-evident, so nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with clear descriptions for both `input` and `action`. The description adds no parameter-specific detail beyond what the schema already provides, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (encode/decode), the resource (URL strings), and notes RFC 3986 compliance, clearly distinguishing it from sibling tools like base64_encode_decode and decode_jwt. An agent immediately understands the tool's scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for URL encoding/decoding but does not explicitly contrast with alternative encoding tools (e.g., base64_encode_decode, decode_jwt). No when-not-to-use guidance is provided, leaving selection to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

extract_meta_tagsA
Read-only

Extract meta tags from a URL. Returns OpenGraph tags, Twitter Card tags, standard meta tags, title, and description.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to extract meta tags from (e.g., "https://stripe.com")

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds that it returns specific tag categories, but it does not disclose that the tool makes a network request to the URL, how it handles redirects, or what happens on fetch failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The entire description is one focused sentence that front-loads the action and gives a clear list of outputs. Every word earns its place, and there is no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only tool, the description is nearly complete. It lists the return categories even without an output schema, so an agent understands what to expect. It could mention that meta tags may be absent, but that is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, 'url', is already fully documented in the schema with a concrete example. The description adds no parameter-specific semantics beyond the schema's coverage, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Extract meta tags from a URL.' It then lists the exact returned categories, making the tool's purpose unmistakable and clearly distinguishing it from sibling tools like fetch_favicon or parse_robots_txt.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through 'Extract meta tags from a URL,' and the entry is intuitive among the sibling tools. However, it does not explicitly state when to use this tool instead of alternatives, nor does it mention what to do when a URL lacks meta tags.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fetch_faviconA
Read-only

Find favicon URLs for a website. Returns all discovered icons with their URLs, types, and sizes.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name (e.g., "stripe.com"). Without https://

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds value beyond the annotations by detailing the return structure: 'all discovered icons with their URLs, types, and sizes.' It also uses the qualifier 'discovered,' which hints that the tool scans the website and may not find all icons. However, it does not mention error handling or rate limits, though the readOnlyHint and openWorldHint annotations already cover the general behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with two sentences that front-load the purpose and then provide key details about the output. There is no redundant or extraneous information, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description provides sufficient context: it states what the tool returns and the nature of the output. It does not mention error cases, but the schema covers parameter validation, and the annotations cover the read-only and open-world aspects. The description is adequate for an agent to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully describes the 'domain' parameter, including its format ('Without https://') and an example. The description does not add any additional information about the parameter, so it adds no value beyond the schema. Given 100% schema coverage, this is acceptable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: finding favicon URLs for a website. It specifies the output: 'all discovered icons with their URLs, types, and sizes,' which distinguishes it from other web tools that might return different data. No sibling tool mentions favicons, so it's uniquely identifiable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when the agent needs favicon URLs but does not explicitly compare with alternatives or state when not to use it. There is no mention of sibling tools or conditions that would favor another tool, such as extract_meta_tags or take_screenshot. This leaves some ambiguity, but the purpose is clear enough for an agent to infer its use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

format_jsonA
Read-only

Format, validate, and analyze JSON. Returns formatted output, minified version, and stats (key count, depth, size, type counts).

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYesJSON string to format
indentNoIndent spaces (default: 2, range: 0-8)
minifyNoReturn minified JSON (default: false)
sort_keysNoSort object keys alphabetically (default: false)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and openWorldHint=false, so the operation is safe and read-only. The description adds value by disclosing that it returns formatted output, a minified version, and stats, which goes beyond the annotations. It does not explicitly mention error handling for invalid JSON, but the 'validate' verb implies validation behavior, and the read-only annotation covers safety.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the core purpose ('Format, validate, and analyze JSON') and immediately lists the return values. It is concise with zero wasted words, and every phrase contributes to understanding the tool's functionality. Excellent structure for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with four straightforward parameters and no output schema, the description is largely complete. It explains what the tool does and what it returns, covering the key use cases. Minor gaps include explicit behavior on invalid JSON or how indent interacts with minify, but these are inferable from the schema and the stated purpose. Overall, sufficient for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all four parameters (input, indent, minify, sort_keys) well-documented in the schema. The description does not add meaningful detail beyond what the schema provides; it only hints at the output via 'formatted output' and 'minified version.' Since the schema fully covers parameter semantics, a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Format, validate, and analyze JSON.' It specifies the resource (JSON) and the three actions, and it distinguishes itself from sibling conversion tools (e.g., json_to_csv, json_to_xml) by focusing on formatting/validation/analysis rather than transformation. The mention of returning stats (key count, depth, size, type counts) 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage contexts: when you need to format, validate, or analyze JSON. It does not explicitly exclude conversion tools, but the purpose is clear enough for an agent to infer when to use it. It lacks explicit exclusions or named alternatives, but given the sibling set, the intent is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

format_phoneA
Read-only

Parse and format a phone number into E.164, national, and international formats. Validates the number and identifies the country.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYesPhone number (e.g., "+1 (212) 555-1234")
country_codeNoISO 3166-1 alpha-2 country code (e.g., "US", "GB", "DE"). Default: "US"

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already declares this is a non-destructive operation. The description adds that it validates and identifies the country, but it does not disclose error handling behavior (e.g., what happens with invalid numbers) or any rate limits or special constraints. The description aligns with annotations but adds limited behavioral context beyond them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the primary action and outputs. There is no redundant information, and every phrase contributes to understanding the tool's capability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description conveys the expected outputs (formats and country) but does not detail the return structure or error responses. Given the tool's moderate complexity and the read-only annotation, this is reasonably complete, though a mention of error handling would push it to 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% coverage of both parameters with clear descriptions and a default for country_code. The description does not add additional parameter semantics beyond what the schema already provides, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Parse and format' and the resource 'phone number', and specifies the output formats (E.164, national, international). It also adds validation and country identification, making the tool's purpose unambiguous and distinct from all sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly defines when to use the tool (when you need to format or validate a phone number) and there is no sibling that performs similar functionality. However, it does not explicitly state when not to use it or provide alternative tool references, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_hashA
Read-only

Generate a cryptographic hash of the input text. Supports MD5, SHA-1, SHA-256, SHA-384, SHA-512, CRC32, and Whirlpool.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYesText to hash
algorithmNoHash algorithm: md5, sha1, sha256, sha384, sha512, crc32, whirlpool (default: sha256)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations include readOnlyHint=true, and the description correctly implies a read-only operation (generating a hash has no side effects). The description adds value by listing supported algorithms, which is not fully in the schema (though the schema also lists them). It doesn't disclose details like output encoding (hex vs base64) or performance, but given the annotations cover safety, this is adequate. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that front-loads the core purpose and then lists supported algorithms. It is concise with zero wasted words. It doesn't elaborate on usage or examples, but for a simple tool, this is well-structured. Slightly more could be added about output format, but not necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a pure hash generation tool with no output schema, the description covers the essential purpose and algorithms. The schema handles parameter details. It lacks information about return format (e.g., hex string) and edge cases (e.g., empty input), but these are minor and not critical for correct invocation. Overall, sufficient for an agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, meaning both 'input' and 'algorithm' are described in the schema. The description mentions 'input text' and 'cryptographic hash', which adds context to the 'input' parameter, but the 'algorithm' parameter is already fully listed in the schema. The description adds no new format or behavior beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: generating a cryptographic hash of input text, and enumerates the supported algorithms. It distinguishes itself from siblings like generate_uuid, generate_password, and generate_lorem, though it doesn't explicitly name them. The verb 'generate' and resource 'cryptographic hash' 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool (when a hash of text is needed) but does not explicitly contrast with alternatives or mention when not to use it. Given the sibling list, the niche is clear—hashing is distinct from UUID/password/lorem generation. It lacks explicit guidance on algorithm choice (e.g., prefer SHA-256 for security), but the schema provides algorithm options.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_loremA
Read-only

Generate Lorem Ipsum placeholder text. Choose between words, sentences, or paragraphs with a configurable count.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoOutput type: "words", "sentences", or "paragraphs" (default: "paragraphs")
countNoNumber of units to generate (default: 3, max: 100)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=truehare, so the safety profile is clear. The description adds no behavioral context beyond what the schema already provides—such as whether output is random, cached, or deterministic. There is no contradiction, but no extra transparency credit is earned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, tightly worded sentence with the core action front-loaded. Every phrase contributes meaning, and there is no redundant filler or unnecessary qualification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no required parameters)Skip enhances completeness. The description, combined with the fully covered schema and readOnlyHint, is nearly sufficient. A minor gap is that it does not explicitly state the return type, though 'placeholder text' makes a string output obvious.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameters 'type' and 'count' are already fully documented. The description merely restates the valid values ('words', 'sentences', 'paragraphs') and the existence of a count, adding no new semantic detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Generate Lorem Ipsum placeholder text.' It also enumerates the output types (words, sentences, paragraphs), making it clearly distinct from sibling generators like generate_hash, generate_password, and generate_uuid, even without explicitly naming them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to choose this tool versus alternatives, and it does not mention exclusions, prerequisites, or context where a different tool would be better. The intended use case must be inferred entirely from the name and the phrase 'placeholder text.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_passwordA
Read-only

Generate cryptographically secure random passwords. Configurable length, character sets, and exclusions.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of passwords to generate (default: 1, max: 20)
lengthNoPassword length (default: 16, range: 8-128)
excludeNoCharacters to exclude (e.g., "0O1lI" for ambiguous characters)
numbersNoInclude numbers 0-9 (default: true)
symbolsNoInclude symbols !@#$... (default: true)
lowercaseNoInclude lowercase letters a-z (default: true)
uppercaseNoInclude uppercase letters A-Z (default: true)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The 'cryptographically secure' phrasing adds a meaningful behavioral guarantee beyond the annotations. The readOnlyHint and openWorldHint annotations already cover safety and statefulness, so the description does not need to repeat those. It could add more detail about randomness source or output format, but nothing here contradicts the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one concise sentence with no filler. It front-loads the core purpose and then briefly summarizes configuration options, earning a top score for efficiency and structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich parameter schema, the description provides enough context for correct invocation. The only notable gap is the output shape: it does not state whether a single password or an array is returned, especially since 'count' can exceed 1. This is a minor omission for a password-generation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already well documented. The description's mention of 'length, character sets, and exclusions' paraphrases the schema but adds no new semantic detail. A baseline of 3 is appropriate because the schema carries the parameter-documentation burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Generate cryptographically secure random passwords.' It clearly distinguishes this from sibling generate_* tools such as generate_hash, generate_uuid, and generate_lorem by naming passwords as the output. The mention of configurability adds useful scope without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is strongly implied by the description: use this when a random password is needed. However, it gives no explicit guidance about when not to use it or which alternative tools to prefer, even though many sibling generation tools exist. This makes usage guidance adequate but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_qrA
Read-only

Generate a QR code image from text or a URL. Returns SVG with customizable size, colors, and margin.

ParametersJSON Schema
NameRequiredDescriptionDefault
bgNoBackground color as hex (default: "#ffffff")
sizeNoSize in pixels (default: 200, range: 50-1000)
textYesText or URL to encode in the QR code
colorNoForeground color as hex (default: "#1a1a2e")
formatNoOutput format: "svg" (the only format)
marginNoMargin/quiet zone size (default: 1, range: 0-10)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already signals that the tool performs no state-changing side effects, which matches the non-destructive nature of generating an image. The description adds the return format (SVG) and mentions customization options, which are useful behavioral details. However, it does not disclose potential edge cases, error conditions, or limits beyond what annotations cover, so a 3 reflects that it adds some value but not rich behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence that front-loads the core purpose and then lists key features. There is zero redundant wording; every clause contributes to an agent's understanding. This is an exemplar of conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple utility with only one required parameter and a rich input schema, the description is sufficient: it states the input type, the output format, and key customizations. It does not cover error handling or edge cases, but given the tool's simplicity and the presence of detailed parameter descriptions, the information provided is enough for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, meaning every parameter (text, size, color, bg, margin, format) is already documented in the schema. The description's mention of 'customizable size, colors, and margin' loosely maps to the parameters but adds no new semantics. Per the rubric, with full schema coverage, a baseline of 3 is correct; the description adds marginal value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Generate') and a concrete resource ('QR code image'), and clarifies the input ('text or a URL') and output ('Returns SVG'). It is distinct from all sibling tools, none of which produce QR codes, so an agent can identify its purpose without confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage clearly: whenever a QR code is needed from text or a URL. It does not explicitly name alternatives or exclusions, but since no sibling tool performs QR generation, the context is unambiguous. A 4 is appropriate because the purpose alone defines when to use it, even though explicit when/not-when guidance is absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_uuidA
Read-only

Generate UUID identifiers. Supports v4 (random) and v7 (time-sorted). Bulk generation up to 50 at once.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of UUIDs to generate (default: 1, max: 50)
versionNoUUID version: "v4" (random, default) or "v7" (time-sorted)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as read-only, so the safety profile is covered. The description adds useful behavioral details beyond annotations: version semantics (v4 random, v7 time-sorted) and an explicit bulk limit of 50. It does not describe the output shape, but the core behavior is transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The core purpose is front-loaded, followed by version support and the bulk limit. Every sentence carries useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, has no required parameters, full schema coverage, and readOnly annotations. The description covers versions and count limits. The only notable gap is the unspecified return shape for bulk generation (single string vs array), but the tool is still understandable enough to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already documented. The description adds extra meaning by explaining that v4 is 'random' and v7 is 'time-sorted,' and by confirming bulk generation up to 50. This goes beyond the schema defaults and helps an agent pick the right parameter values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb and resource: 'Generate UUID identifiers.' It also differentiates itself by specifying supported versions (v4 and v7) and bulk generation, which distinguishes it from sibling generation tools like generate_hash or generate_password.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by saying it generates UUID identifiers and notes when to choose v4 vs v7, but it does not explicitly mention when to prefer this tool over alternatives or when not to use it. There is no exclusion or comparison with sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geolocate_ipA
Read-only

Get geolocation data for an IP address. Returns country, city, region, coordinates, timezone, ISP, and organization.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYesIPv4 or IPv6 address (e.g., "8.8.8.8")

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description does not need to repeat that this is a safe read operation. The description adds value by specifying the exact fields returned, which is essential since there is no output schema. It does not mention potential errors or rate limits, but for a simple lookup tool, the description plus annotation is adequate. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the action and resource. It lists the return fields concisely without extraneous words. Every part earns its place, and it is appropriately sized for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, high schema coverage, readOnlyHint annotation), the description is nearly complete. It covers the purpose and the return fields. It lacks explicit mention of limitations (e.g., accuracy, private IP handling), but these are not critical for basic usage. The presence of an output schema is not required, but the description compensates by enumerating the returned data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the single parameter 'ip' already described as 'IPv4 or IPv6 address (e.g., "8.8.8.8")'. The description adds no additional semantics about the parameter beyond what the schema provides, so the baseline 3 is appropriate. There is no need for the description to repeat schema information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get') and a specific resource ('geolocation data for an IP address'). It lists the returned fields (country, city, region, coordinates, timezone, ISP, organization), making it clear what the tool does and distinguishing it from sibling tools like whois_lookup or dns_lookup, which serve different purposes. The purpose is unambiguous and fully aligned with the tool name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives or mention any exclusions. While the purpose implies usage for IP location, there is no explicit routing guidance (e.g., 'use for geolocation, not for registration data'). With a large sibling list, some guidance would help, but the tool's niche is distinct enough that a lack of explicit exclusions is not a serious flaw.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

html_to_markdownA
Read-only

Convert HTML content to clean Markdown. Supports GitHub Flavored Markdown with tables and strikethrough. Useful for scraping web content for LLM processing.

ParametersJSON Schema
NameRequiredDescriptionDefault
gfmNoUse GitHub Flavored Markdown (default: true)
htmlYesHTML content to convert
strip_tagsNoComma-separated tags to strip (e.g., "script,style,nav")

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, and the description adds useful behavioral context beyond that: output is 'clean Markdown' with GitHub Flavored Markdown support for tables and strikethrough. As a pure HTML-to-Markdown transformation, no destructive side effects are implied or hidden. Nothing in the description contradicts the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no waste: the core action is front-loaded, followed by a capability note and a practical use case. Every sentence adds value and there is no repetition of the title or schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, stateless conversion tool, the description covers the essential information: input type, output format, GFM support, and a common use case. It does not spell out the exact return representation, but given the low complexity and lack of an output schema, this is a minor gap rather than a blocking omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: all three parameters (html, gfm, strip_tags) already have descriptive text in the schema. The description adds no additional parameter-level semantics, just a general GFM mention. This matches the baseline where the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 HTML content to clean Markdown.' It clearly differentiates the tool from reverse sibling markdown_to_html and from html_to_pdf by naming the exact transformation and output format, with GFM capabilities (tables, strikethrough) further anchoring its identity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a concrete, stated use case: 'Useful for scraping web content for LLM processing.' This is clear guidance on when to use the tool. It does not explicitly contrast with siblings or state when not to use it, so it stops short of full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

html_to_pdfA
Read-only

Convert HTML content to a PDF document. Send HTML markup and receive a PDF. Useful for generating invoices, reports, and documents.

ParametersJSON Schema
NameRequiredDescriptionDefault
htmlYesHTML content to convert to PDF

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so no side-effect warning is needed. The description adds the basic input/output behavior ('Send HTML markup and receive a PDF') but does not disclose potential limitations such as CSS support, file-size limits, or binary response handling. It is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core purpose, followed by relevant use cases. The middle sentence 'Send HTML markup and receive a PDF' is slightly redundant with the first sentence, but the overall structure wastes little space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter conversion tool with read-only annotations and no output schema, the description conveys enough to get started: what goes in, what comes out, and common examples. It does not describe the exact binary/output format or rendering behavior, but that is a minor gap for such a straightforward tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers the only parameter (html) with a description, and the tool description does not add meaning beyond that. Since schema coverage is 100%, the baseline of 3 is appropriate; there is no additional semantic guidance such as supported HTML subset or escaping requirements.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Convert HTML content to a PDF document') with both input and output, so an agent knows what the tool does. It does not distinguish itself from sibling tools like markdown_to_pdf or html_to_markdown, but the verb-resource pairing is unambiguous enough for a 4.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Useful for generating invoices, reports, and documents' gives general use cases, but there are no explicit when-to-use/when-not-to-use instructions or references to alternatives. This is implied usage guidance, not clear routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

http_status_lookupA
Read-only

Look up an HTTP status code. Returns the name, description, common causes, how to fix, and RFC reference. Covers all standard codes plus Cloudflare codes.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesHTTP status code (e.g., 404, 429, 502)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and openWorldHint=false, and the description adds what the tool returns (name, description, common causes, fix, RFC reference) and its coverage (standard + Cloudflare codes). It does not mention error handling, but for a read-only lookup this is a minor gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no redundant words. The action is front-loaded, and the return contents and scope are stated efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read-only lookup, the description adequately explains what the tool returns and its coverage. It lacks details on invalid-code handling, but this is minor given the tool's simplicity and the absence of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%: the only parameter, code, has a clear type and description with examples (404, 429, 502). The tool description adds the 'HTTP status code' context but no additional semantic detail, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Look up') and resource ('HTTP status code'), and enumerates the returned content (name, description, common causes, how to fix, RFC reference). This clearly differentiates it from all sibling tools, none of which perform HTTP status lookups.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The purpose is so evident that when to use the tool is implied: whenever someone needs details on an HTTP status code. No alternatives are mentioned because no sibling tool competes, so the lack of an explicit 'when not to use' is acceptable given the context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_emailA
Read-only

Inspect an email address. Checks format validity, MX records, domain resolution, disposable domain detection, and role-based address detection.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesEmail address to inspect (e.g., "hello@example.com")

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already communicates this is a non-destructive operation, so the description's burden is reduced. The description adds the specific checks performed, which is useful, but it does not disclose what the returned result looks like, whether failures are partial, or that network lookups like MX and domain resolution may be non-deterministic. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences. The first sentence names the action and resource, and the second immediately lists the specific checks. There is no filler, and the most important identifying information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter read-only tool, the description covers the essential behavior well. The only minor gap is the absence of any statement about return format, but since no output schema exists, a short note about the returned findings would strengthen it. Still, the listed checks make the general result sufficiently predictable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the single 'email' parameter is already clearly documented with an example. The description does not add new parameter-level detail, but given full schema coverage, the baseline of 3 is appropriate; no compensation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Inspect') and resource ('email address'), then enumerates the concrete checks performed: format validity, MX records, domain resolution, disposable domain detection, and role-based detection. This makes the tool's purpose unambiguous and differentiates it from sibling tools like validate_email_auth, which has a narrower scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use this tool: whenever an email address needs a multi-faceted inspection covering syntax, domain infrastructure, disposability, and role accounts. It does not explicitly name alternatives or exclusions, but the listed check categories provide enough guidance for an agent to select it over related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

json_diffA
Read-only

Compare two JSON objects and return a structured diff. Shows additions, deletions, and changes with JSONPath locations. Useful for comparing API responses, config files, or database records.

ParametersJSON Schema
NameRequiredDescriptionDefault
modifiedYesModified JSON (after)
originalYesOriginal JSON (before)
ignore_orderNoIgnore array element ordering (default: false)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it readOnly; the description adds that the output is a structured diff with JSONPath locations, going beyond the schema. It doesn't detail order handling or exact response schema, but for a read-only compare utility this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: purpose in the first, output detail in the second, use cases in the third. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, read-only comparison tool with full schema parameter coverage, the description covers what it does, what the output looks like, and typical use cases. No output schema exists, but the description's 'structured diff with JSONPath locations' provides enough for an agent to understand the return.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 original/modified/ignore_order. The description adds no new parameter details beyond restating that two JSON objects are compared, so it meets the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Compare'), resource ('two JSON objects'), and output ('structured diff' with additions/deletions/changes and JSONPath locations). Clearly distinguishes from sibling JSON tools like format_json or validate_json_schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear use cases ('comparing API responses, config files, or database records'), establishing when this tool is appropriate. Does not explicitly name alternative tools or exclusion conditions, so slightly below the best examples.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

json_to_csvA
Read-only

Convert a JSON array of objects to CSV format. Handles nested objects and custom delimiters.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesJSON array of objects (e.g., '[{"name": "Alice", "age": 30}]')
delimiterNoCSV delimiter: "," (default), ";", "\t", or "|"

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=true, so the agent knows this is a safe, non-mutating operation. The description adds 'Handles nested objects' but is vague about how they are flattened. No mention of output format or error behavior, but given annotations cover safety, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise sentence with the primary action front-loaded. No redundant words, and every clause adds value (conversion, nesting capability, delimiter option).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple conversion tool with 100% schema coverage and readOnly annotation, the description is adequate but lacks an explicit statement of the return format (e.g., CSV string) and how nested objects are serialized. These are minor gaps for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers both parameters fully (100% coverage). The description mentions 'custom delimiters' which aligns with the delimiter param, but doesn't add detail on nested-object handling relative to the data parameter. Baseline 3 is correct since schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Convert') and resource ('JSON array of objects to CSV format'), and adds distinguishing capabilities ('Handles nested objects and custom delimiters'). Clearly differentiated from sibling csv_to_json and other converters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. It doesn't mention when not to use it, or provide context for selection among the many conversion tools in the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

json_to_xmlA
Read-only

Convert a JSON object to well-formed XML. Supports custom root element, attribute conversion, and XML declaration toggle.

ParametersJSON Schema
NameRequiredDescriptionDefault
jsonYesJSON content to convert (must be an object)
prettyNoPretty-print XML output (default: true)
root_elementNoRoot element name (default: "root")
xml_declarationNoInclude XML declaration header (default: true)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, so the agent knows this is a safe read/transform operation. The description adds behavioral context by mentioning 'well-formed XML', 'custom root element', 'attribute conversion', and 'XML declaration toggle', which go beyond the schema. However, it does not disclose edge-case behaviors such as how JSON arrays are handled, how attribute conversion is triggered (e.g., keys prefixed with '@'), or what happens with invalid JSON. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose and then lists key features. It earns its place with no filler. It could be slightly more structured (e.g., separating the core conversion from the options), but it is appropriately sized for a tool with four parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only conversion tool with 100% schema coverage and no output schema, the description is mostly adequate. However, it omits important conversion details that an agent might need to predict output: how JSON arrays are converted, how attribute conversion is indicated, and whether the output is a string or a file. The sibling list includes xml_to_json, so a brief note on when to choose this over that would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 four parameters. The description adds high-level context (custom root element, attribute conversion, XML declaration toggle) that maps to root_element, xml_declaration, and possibly json structure, but it does not add syntax-level detail beyond the schema. Baseline 3 is appropriate because the schema carries the parameter documentation burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Convert'), a clear resource ('JSON object'), and the target format ('well-formed XML'). It also names three configurable features (custom root element, attribute conversion, XML declaration toggle), which distinguishes it from sibling tools like json_to_csv, yaml_to_json, and xml_to_json. The title 'Convert JSON to XML' reinforces the purpose without being a tautology.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context (converting JSON to XML) but does not explicitly state when to use this tool versus alternatives like json_to_csv, yaml_to_json, or xml_to_json. It does not mention exclusions or prerequisites (e.g., input must be a JSON object, not an array). The sibling list provides context, but the description itself offers no explicit routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

json_to_yamlA
Read-only

Convert a JSON object to YAML format. Useful for generating Kubernetes configs, Docker Compose files, and CI/CD pipeline definitions from JSON data.

ParametersJSON Schema
NameRequiredDescriptionDefault
jsonYesJSON content to convert
indentNoIndentation spaces: 2, 4, or 8 (default: 2)
inline_levelNoDepth for inline notation (default: 10, higher = more expanded)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, covering the safety profile. The description discloses the core conversion behavior but adds little beyond those annotations; it does not describe error handling or output details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences deliver the core purpose and practical use cases with no filler. The main intent is front-loaded and every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple conversion tool with documented parameters and read-only annotations, the description is sufficiently complete. The lack of an output schema is mitigated by the obvious 'YAML format' result, though a note about return behavior would make it fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema fully documents 'json', 'indent', and 'inline_level'. The description adds no parameter-specific semantics beyond what the schema already provides, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Convert a JSON object to YAML format.' This clearly distinguishes it from sibling tools like yaml_to_json or json_to_csv without ambiguity. The name and description align perfectly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit use cases: generating Kubernetes configs, Docker Compose files, and CI/CD pipeline definitions. It implies when to use the tool, though it does not explicitly name alternatives or state 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.

markdown_to_htmlA
Read-only

Convert Markdown text to HTML. Supports GFM (GitHub Flavored Markdown) including tables, code blocks, and task lists.

ParametersJSON Schema
NameRequiredDescriptionDefault
markdownYesMarkdown text to convert
allow_htmlNoKeep raw HTML from the input (default: false, HTML is escaped). Unsafe link schemes are always dropped.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds useful behavioral context by specifying GFM support including tables, code blocks, and task lists, but does not disclose details like HTML escaping behavior, which are only present in the schema parameter description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler. The core action comes first, and the supported feature set is stated compactly in the second sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity conversion tool, the description plus schema and annotations are nearly sufficient. The only minor gap is that it does not explicitly state the return type as an HTML string, though this is strongly implied by the phrase 'Convert Markdown text to HTML.'

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 both markdown and allow_html. The description adds no additional parameter-level meaning, but none is needed given the complete schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Convert Markdown text to HTML.' The output direction is unambiguous, and naming HTML clearly distinguishes it from sibling converters like html_to_markdown and markdown_to_pdf.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use the tool: whenever Markdown must be converted to HTML. It does not explicitly name alternatives or provide exclusion criteria, but the context is clear enough for an agent to select it among the converter siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

markdown_to_pdfA
Read-only

Convert Markdown content to a downloadable PDF document. Supports GFM tables, code blocks, and custom page sizes. Returns a URL to the generated PDF.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoDocument title for PDF metadata
marginNoPage margin (default: "20mm")
markdownYesMarkdown content to convert
page_sizeNoPage size: A4, Letter, Legal (default: A4)
orientationNoOrientation: portrait, landscape (default: portrait)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already provide readOnlyHint=true, so the safety profile is covered. The description adds useful behavioral context by stating the result is a URL to a downloadable PDF, and mentions supported Markdown features. It does not disclose limitations such as file size, async behavior, or URL expiry, but nothing contradicts the read-only hint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loads the core purpose, and contains no filler or redundant restatement. Every sentence contributes useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple conversion tool with fully documented parameters and a URL return value described, this is mostly complete. The only gap is the absence of practical caveats like file-size limits, processing time, or how long the returned URL remains valid, which could matter to an agent invoking the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 five parameters. The description adds context around GFM tables, code blocks, and custom page sizes, which helps clarify intended usage, but it does not meaningfully expand on individual parameter semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Convert') and names both input and output resources: Markdown content to a downloadable PDF document. It also distinguishes itself from closely related siblings like html_to_pdf and markdown_to_html by clearly stating the conversion direction and output format.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case clearly: use this tool when you have Markdown and need a PDF. However, it does not explicitly compare with alternatives like html_to_pdf or markdown_to_html, nor does it state when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

my_ipA
Read-only

Get the public IP address of the MCP server. Returns the IP, version (IPv4/IPv6), and whether it's a private address.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations include readOnlyHint=true, which aligns with description. The description adds depth by specifying exactly what is returned (IP, version, privacy flag), which is useful behavior context beyond the generic read-only hint. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, dense sentence that immediately states the purpose, and the return fields are listed in a follow-up sentence. No fluff; every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the zero parameters and straightforward nature, the description is nearly complete. It explains what is returned, which is sufficient for an agent to call it. Could mention that it requires no input, but that is implied by the empty schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, and schema coverage is 100% (trivial). The description adds value by explaining what the output will contain, which is the main semantic content. Baseline of 3 is suitable since there are no parameters to explain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: retrieving the public IP address of the MCP server, and specifically lists the return fields (IP, version, private flag). It is distinct from sibling tools like whois_lookup or geolocate_ip, which have different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (call to get server's public IP) and differentiates from geolocation or whois by focusing on the server's own IP. However, it does not explicitly state when not to use it or mention alternatives, but the context is clear enough without exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

parse_cronA
Read-only

Parse a cron expression into a human-readable description and calculate next run times. Supports standard 5-field cron and special strings like @daily, @hourly.

ParametersJSON Schema
NameRequiredDescriptionDefault
num_nextNoNumber of next run times to return (default: 5, max: 20)
timezoneNoTimezone for calculations (default: UTC, e.g., "Europe/Zurich")
expressionYesCron expression (e.g., "*/5 * * * *", "0 9 * * MON-FRI")

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint, and the description adds behavioral context beyond that: it produces a human-readable description and next run times, and supports both standard cron fields and special strings. It does not discuss error behavior, but the read-only nature is already covered by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single focused sentence, front-loaded with the core action and resource. Every phrase adds useful information, with no filler or redundant restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description adequately communicates what the tool returns: a human-readable description and next run times. Combined with the self-documenting parameters for timezone and count, this is sufficient for an agent to call the tool correctly, though a bit more detail about output format would make it fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and each parameter already has a clear description with examples. The tool description adds no extra parameter semantics beyond mentioning special strings, which the schema also implies. The baseline of 3 applies because the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Parse'), a specific resource ('a cron expression'), and the expected outputs ('human-readable description' and 'next run times'). It clearly distinguishes the tool from unrelated siblings like parse_user_agent and decode_jwt.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the intended use clear: parse cron expressions and calculate future runs. It also scopes input to standard 5-field cron and special strings. It does not mention alternatives, but no direct alternative exists among the siblings, so the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

parse_robots_txtA
Read-only

Fetch and parse a domain's robots.txt file. Returns user-agent rules, allowed/disallowed paths, crawl delays, and sitemap URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name (e.g., "github.com"). Without https://

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=true and openWorldHint=true, covering safety and external access. The description adds that it fetches the file and returns specific fields, but does not disclose failure modes (e.g., missing robots.txt) or rate limiting. Some additional value over annotations, but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, dense sentence that front-loads the action and resource, then lists the outputs. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema, the description covers the essential return values. It does not mention edge cases like missing robots.txt or response format, but given the tool's simplicity and annotations, it is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully describes the domain parameter, including format and example. The description adds no new meaning beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb ('Fetch and parse') and resource ('domain's robots.txt file'), and explicitly lists the extracted content (user-agent rules, paths, crawl delays, sitemaps). This distinguishes it from sibling tools like parse_sitemap or check_links.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what the tool does but gives no explicit guidance on when to use it versus alternatives (e.g., parse_sitemap). The context is clear enough to infer, but it lacks an explicit 'use this when...' statement or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

parse_sitemapA
Read-only

Fetch and parse a sitemap.xml file. Returns all URLs with lastmod, changefreq, and priority metadata. Can follow sitemap index files. Useful for SEO audits and content discovery.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL of the sitemap (e.g., "https://example.com/sitemap.xml")
limitNoMax URLs to return (default: 100, max: 1000)
follow_indexNoFollow and parse child sitemaps in a sitemap index (default: false)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, covering safety and external access. The description adds specific behavior: following sitemap index files and returning metadata. It does not contradict annotations and provides useful context beyond the structured data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the action and outcome. No unnecessary words, each sentence earns its place. It is efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains what it returns and mentions following index files, but it does not specify the response structure (e.g., JSON array/object) and has the misleading 'all URLs' claim. Given no output schema, more detail on format and limit behavior would help. Adequate but with gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. However, the description says 'Returns all URLs' which contradicts the limit parameter that caps results. This misleadingly misrepresents the effect of limit, actually detracting from parameter understanding. The description adds negative value here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 resource ('sitemap.xml'), states what it returns (URLs with metadata), and mentions ability to follow index files. It clearly distinguishes from sibling tools like parse_robots_txt by focusing on sitemap handling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a use case ('Useful for SEO audits and content discovery') which gives context, but it does not explicitly contrast with alternatives or state when not to use it. The guidance is implied rather than explicit, leaving room for ambiguity about selection vs. other parsing tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

parse_user_agentA
Read-only

Parse a User-Agent string. Detects browser name and version, operating system, device type, and whether it's a bot or crawler.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_agentYesUser-Agent string to parse

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as read-only, and the description adds the detected categories, effectively serving as an output contract in the absence of an output schema. It does not disclose edge-case behavior for malformed or empty User-Agent strings, but it provides solid context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The action and the detected fields are front-loaded, and every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read-only tool, the description clearly covers what it does and the main data it extracts. The only gap is the lack of explicit return-format details, but given the simple input and no output schema, the description is largely sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole parameter, user_agent, is already fully documented by the schema (100% coverage). The description mirrors that with 'User-Agent string' and adds no format, examples, or edge-case details, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Parse'), a precise resource ('a User-Agent string'), and the exact information extracted: browser name/version, OS, device type, and bot/crawler status. No sibling tool overlaps with this function, so it is unambiguously identifiable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the natural use case—when you have a User-Agent string and want structured details—but it does not explicitly state when to prefer this tool over alternatives or mention any exclusions. The context is inferable rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

take_screenshotA
Read-only

Capture a screenshot of any webpage as PNG or JPEG. Configurable viewport size, full-page mode, and image quality.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to screenshot (e.g., "https://github.com")
widthNoViewport width in pixels (default: 1280, range: 320-3840)
formatNoImage format: "png" (default) or "jpeg"
heightNoViewport height in pixels (default: 800, range: 200-2160). Ignored if full_page is true.
qualityNoJPEG quality (default: 80, range: 1-100). Only applies to JPEG format.
full_pageNoCapture the entire scrollable page (default: false)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the read-only nature is known. The description adds that the tool supports configurable viewport size, full-page mode, and image quality, which are behavioral options. However, it does not disclose potential failure modes (e.g., inaccessible pages), loading behavior, or any rate limits. Given the annotations cover the safety profile, a score of 3 reflects the modest extra value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, tight sentence that leads with the primary action and format, then lists the key configurable aspects. There is zero redundancy or filler, and all content is relevant to an agent deciding whether to invoke the tool. It is appropriately front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 6 parameters and no output schema, so the description should ideally indicate what the tool returns (e.g., an image) and any operational caveats (e.g., waits for page load, size limits). While the purpose clearly implies an image output, it is not explicitly stated, and no limitations or error scenarios are mentioned. For a fairly simple tool this is acceptable but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with every parameter (url, width, format, height, quality, full_page) already having descriptive text. The description's mention of 'Configurable viewport size, full-page mode, and image quality' merely restates what the schema already documents, adding no new semantic insight. Baseline of 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Capture') and a clear resource ('a screenshot of any webpage'), and mentions the output formats (PNG/JPEG). This is distinct from all sibling tools, none of which perform screenshot capture, so it fully differentiates the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool (whenever a webpage screenshot is needed) but provides no explicit guidance on alternatives or exclusions. It does not mention that tools like html_to_pdf might serve a related but distinct purpose, nor does it state any limitations on usage. Usage context is clear but not explicitly contrasted with alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

test_regexA
Read-only

Test a regular expression pattern against text. Returns all matches, captured groups, named groups, and match positions. Useful for validating patterns before deploying them.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to test the pattern against
flagsNoRegex flags: i (case-insensitive), m (multiline), s (dotall), u (unicode)
globalNoFind all matches, not just the first (default: true)
patternYesRegex pattern without delimiters (e.g., "^[a-z]+$", "(\w+)@(\w+)\.(\w+)")

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint=true and openWorldHint=false, safety is already covered by annotations. The description adds meaningful behavioral detail about the return content—matches, captured groups, named groups, and match positions—which helps set expectations beyond the structured metadata.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundant phrasing, and the core functionality is stated first followed by a practical use case. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only regex testing tool, the description covers what the tool does, what it returns, and when to use it. The schema handles parameter details, and no output schema is needed because the description summarizes the return format sufficiently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 four parameters and their roles. The description does not add parameter-specific meaning beyond the schema, but it does clarify what the results represent, which is consistent with the baseline for full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: "Test a regular expression pattern against text," and then enumerates the output (matches, captured groups, named groups, positions). This makes the tool's function unambiguous and clearly distinct from the sibling validation and analysis tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase "Useful for validating patterns before deploying them" gives a clear intended use case. It does not name alternative tools or explicitly state when not to use it, but the context is sufficient for an agent to decide when this tool applies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

trace_redirectsA
Read-only

Follow a URL's redirect chain. Shows every hop with HTTP status code, final destination URL, and total number of redirects.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to trace (e.g., "http://github.com")

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is known. The description adds valuable behavioral detail by specifying the output format (hops with status codes, final URL, total count), which goes beyond the annotations. It does not mention error handling or edge cases, but the core behavior is well disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. The primary action and output details are front-loaded, making it immediately scannable for an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with one parameter and no output schema, the description fully covers what the tool does and what it returns. The output details are explicit, and the annotations cover safety. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%: the only parameter 'url' has a description with an example. The description itself adds no additional parameter meaning beyond what the schema already provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action (follow/trace) and resource (redirect chain), and specifies what it shows (every hop, status code, final URL, total redirects). This distinguishes it from siblings like validate_url or check_link which focus on validation or link health rather than tracing the chain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for tracing redirects but does not explicitly mention when to use it over alternatives like validate_url or check_link. There is no exclusion guidance, so an agent must infer the appropriate context from the tool name and sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_email_authA
Read-only

Validate email authentication records (SPF, DKIM, DMARC) for a domain. Checks if each record exists, is valid, and returns the raw records.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name (e.g., "google.com"). Without https://

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only and open-world behavior. The description adds meaningful operational detail: it checks existence, validates each record, and returns raw records. This gives agents a clear model of what the tool does beyond the annotations, though it does not discuss edge cases like missing DNS records or partial failures.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The main action, record types checked, and return behavior are all stated compactly and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter, read-only tool with no output schema, the description covers the essential behavior: what records are checked, what outcome is determined, and what is returned. It is slightly sparse on output details and error behavior, but not to a degree that would prevent correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of the single parameter with an informative description including format guidance and an example. The tool description itself adds no parameter semantics beyond the schema, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Validate') and a specific resource ('email authentication records (SPF, DKIM, DMARC) for a domain'). It clearly distinguishes this from sibling tools like dns_lookup by focusing on authentication record validity and raw record retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it: whenever SPF, DKIM, or DMARC records need validation for a domain. However, it does not explicitly mention alternatives or state when not to use it, leaving usage guidance to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_json_schemaA
Read-only

Validate JSON data against a JSON Schema definition (Draft-07+). Returns whether the data is valid and detailed error messages if not.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesJSON data to validate
schemaYesJSON Schema to validate against

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint=true already covering the safety profile, the description adds useful behavioral information by specifying that the tool returns a validity result and detailed error messages. It does not contradict annotations, and since there is no output schema, this return-value disclosure is valuable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single focused sentence with no filler. The core action, data types, schema version, and result behavior are all conveyed economically and in logical order.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 fully documented parameters, the description gives sufficient context: what is validated, against what, and what the caller can expect back. It does not detail malformed-input behavior, but that is a minor gap given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already documented as 'JSON data to validate' and 'JSON Schema to validate against'. The description adds no deeper semantic detail beyond what the schema provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a specific verb ('Validate') and clearly names both the resource and the mechanism: JSON data against a JSON Schema definition. The Draft-07+ qualifier adds precision, and the description distinguishes this from generic URL/email validators even without naming a sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description establishes an obvious use case: checking whether JSON data conforms to a schema. However, it does not explain when to prefer this over sibling validators such as validate_structured_data, nor does it mention any exclusions or limitations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_structured_dataA
Read-only

Fetch a web page and extract all structured data (JSON-LD, Microdata, RDFa). Validates against common Schema.org types and reports missing properties. Useful for SEO audits.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL of the page to check (e.g., "https://example.com")

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral detail beyond the readOnlyHint and openWorldHint annotations: it fetches a web page, extracts three structured-data formats, validates against Schema.org types, and reports missing properties. It does not cover all edge cases, but the annotations already cover the read-only nature, so this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The action and core behavior are front-loaded, and the SEO-audit use case is a useful closing context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a single required parameter, no output schema, and read-only/open-world annotations, the description covers the tool's purpose, input, and high-level output behavior ('reports missing properties'). It could specify the exact return shape, but it is sufficiently complete for basic invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the single 'url' parameter is already fully documented in the input schema. The description does not add parameter-specific meaning, but it does not need to; baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Fetch a web page and extract all structured data') and adds concrete detail about validation against Schema.org types and missing-property reporting. This clearly distinguishes it from siblings like extract_meta_tags or validate_url.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Useful for SEO audits' gives a clear context for when to use the tool. It does not explicitly name alternatives or exclusion cases, but the use case is sufficient for an agent to select it among the listed siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_urlB
Read-only

Validate a URL's format and reachability. Checks syntax, whether it resolves, SSL status, response code, and response time.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to validate (e.g., "https://cloudflare.com")

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the read-only nature is covered. The description adds useful detail about the specific checks (syntax, resolution, SSL status, response code, response time), which implies live network requests. However, it does not explicitly state that the tool performs outbound HTTP calls or that it could be slow or fail due to network issues. This is additional context that would help the agent set expectations, but it is not critical given the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary purpose ('Validate a URL's format and reachability') followed by a concise list of checks. There is zero fluff, and every word contributes to the meaning. It is an exemplary model of concise, structured tool description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only tool with no output schema, the description is mostly complete. It explains what the tool does and the checks performed. The main missing element is the return format or a note that it makes live network requests, which could affect runtime expectations. However, given the tool's simplicity and the annotations covering safety, the description is adequate. It is slightly above the minimum because it provides a clear list of what is validated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for the single parameter 'url,' including an example. The description does not add any information about the parameter beyond what the schema already provides. Per the rubric, with high schema coverage the baseline is 3, and the description does not go beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Validate') and resource ('a URL'), and clearly defines the scope as 'format and reachability,' then enumerates the checks performed (syntax, resolution, SSL status, response code, response time). This is a clear, specific purpose. However, it does not explicitly differentiate from sibling tools like check_ssl or check_performance, which could cause ambiguity about when to choose this tool over a more specialized one.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. The description does not mention any exclusions, alternatives, or prerequisites. While the purpose implies a general URL validation use case, the lack of any explicit 'use this when...' or 'for SSL-specific checks, use check_ssl' leaves the agent without routing context. Given the many related siblings (check_ssl, check_performance, trace_redirects), this is a significant gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whois_lookupA
Read-only

Look up WHOIS registration data for a domain. Returns registrar, creation date, expiration date, name servers, and contact info.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name (e.g., "github.com"). Without https://

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the agent knows this is a safe, read-only operation. The description adds the specific data fields returned but does not disclose any additional behavioral traits such as rate limits, latency, or data freshness. With annotations covering the safety profile, the description provides modest added context, warranting a score of 3.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that states the action, the resource, and the key return fields without any filler. Every word contributes to understanding, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with annotations covering safety and schema covering the parameter, the description is complete. It lists the primary return fields, and since there is no output schema, this suffices for an agent to understand what to expect. No critical information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of the single parameter (domain) with a description that clarifies the expected format (e.g., 'github.com' without 'https://'). The tool description does not add extra semantic detail beyond what the schema already provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 ('Look up') and resource ('WHOIS registration data for a domain'), and enumerates the expected return fields (registrar, dates, name servers, contact info). It is distinct from sibling tools like dns_lookup or check_ssl, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or typical use cases. An agent must infer from the name alone, which may be insufficient for selecting between related lookup tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

xml_to_jsonA
Read-only

Convert XML content to a JSON object. Handles attributes, namespaces, CDATA sections, and nested elements. Useful for parsing RSS feeds, SOAP responses, and legacy XML data.

ParametersJSON Schema
NameRequiredDescriptionDefault
xmlYesXML content to convert
prettyNoPretty-print JSON output (default: true)
preserve_attributesNoInclude XML attributes prefixed with @ (default: true)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint=true, the safety profile is already declared. The description adds useful behavioral details like handling of attributes, namespaces, CDATA, and nested elements, but it does not disclose edge-case behaviors such as handling of duplicate keys, type coercion, or potential data loss. This is acceptable but not richly transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, followed by key capabilities and use cases. Every sentence earns its place with no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a straightforward conversion tool with full schema coverage and readOnly annotation, the description covers purpose, capabilities, and use cases sufficiently. It does not describe the output structure or error conditions, but no output schema exists and the tool is simple enough that an agent can invoke it correctly based on this description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 parameters. The description adds only a general mention of attributes being handled, which aligns with preserve_attributes, but it does not meaningfully extend the schema's parameter documentation. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: 'Convert XML content to a JSON object.' It also lists concrete capabilities (attributes, namespaces, CDATA, nested elements) and typical use cases, making it easy to distinguish from sibling tools like json_to_xml or csv_to_json.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool ('parsing RSS feeds, SOAP responses, and legacy XML data'), but it does not explicitly mention when not to use it or name alternatives. The context is sufficient to guide selection among the format conversion siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

yaml_to_jsonA
Read-only

Convert YAML content to JSON. Supports multi-document YAML, anchors, aliases, and Kubernetes config files.

ParametersJSON Schema
NameRequiredDescriptionDefault
yamlYesYAML content to convert
prettyNoPretty-print JSON output (default: true)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true and openWorldHint=false. The description adds valuable behavioral context by stating support for multi-document YAML, anchors, aliases, and Kubernetes config files, which informs the agent of the tool's capabilities beyond a simple conversion. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, with the primary purpose front-loaded. It is concise, avoids fluff, and every phrase (multi-document, anchors, aliases, Kubernetes) adds value. There is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple conversion tool with 2 parameters, no output schema, and readOnlyHint, the description is largely complete. It covers the input capabilities and implies a JSON output. It could mention the output format (e.g., JSON string) or error handling, but given the simplicity and the schema's coverage, it is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (yaml and pretty) are already documented in the schema. The description does not add additional parameter-specific details beyond the YAML capabilities, which are not tied to a specific parameter. Baseline of 3 is appropriate given the schema covers everything.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the exact operation ('Convert YAML content to JSON') and differentiates itself from sibling tools by listing specific capabilities (multi-document YAML, anchors, aliases, Kubernetes config files). This is a specific verb+resource with clear scope, and it clearly distinguishes from json_to_yaml or other converters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives. While the name is self-explanatory, there is no mention of 'use this for YAML to JSON; for the reverse use json_to_yaml' or any exclusion criteria. The only usage hint is the mention of Kubernetes configs, which is a context but not a routing guideline.

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.

  1. 50 tool updatesv1.4.2
    • First observedanalyze_text
    • First observedbase64_encode_decode
    • First observedcheck_cors
    • First observedcheck_headers
    • First observedcheck_link
    • First observedcheck_mixed_content
    • First observedcheck_performance
    • First observedcheck_ssl
    • First observedconvert_color
    • First observedconvert_timestamp
    • First observedcsv_to_json
    • First observeddecode_jwt
    • First observeddns_lookup
    • First observeddns_propagation
    • First observedencode_decode_url
    • First observedextract_meta_tags
    • First observedfetch_favicon
    • First observedformat_json
    • First observedformat_phone
    • First observedgenerate_hash
    • First observedgenerate_lorem
    • First observedgenerate_password
    • First observedgenerate_qr
    • First observedgenerate_uuid
    • First observedgeolocate_ip
    • First observedhtml_to_markdown
    • First observedhtml_to_pdf
    • First observedhttp_status_lookup
    • First observedinspect_email
    • First observedjson_diff
    • First observedjson_to_csv
    • First observedjson_to_xml
    • First observedjson_to_yaml
    • First observedmarkdown_to_html
    • First observedmarkdown_to_pdf
    • First observedmy_ip
    • First observedparse_cron
    • First observedparse_robots_txt
    • First observedparse_sitemap
    • First observedparse_user_agent
    • First observedtake_screenshot
    • First observedtest_regex
    • First observedtrace_redirects
    • First observedvalidate_email_auth
    • First observedvalidate_json_schema
    • First observedvalidate_structured_data
    • First observedvalidate_url
    • First observedwhois_lookup
    • First observedxml_to_json
    • First observedyaml_to_json

TDQS

A3.8/5.0

Scored across 50 tools

Disambiguation4/5

Most tools have clearly distinct purposes, but a few pairs like check_link vs validate_url and dns_lookup vs dns_propagation have overlapping responsibilities. Descriptions are detailed enough to guide selection, but the overlap introduces some ambiguity.

Naming Consistency5/5

Tool names follow a highly consistent verb_noun or noun_to_noun pattern (e.g., check_ssl, parse_cron, json_to_csv, generate_qr). The only minor outlier is my_ip, but it is a conventional phrase and does not disrupt the overall pattern.

Tool Count2/5

At 50 tools, the server is far beyond the 25+ threshold that typically feels excessive. While each tool is individually useful, the sheer volume makes it harder for agents to navigate and select appropriately, even for a general-purpose utility server.

Completeness5/5

The tool surface is remarkably comprehensive for a general developer/utility toolkit, covering web checks, DNS, SSL, conversions, text analysis, generation, validation, and data format transformations. No obvious dead ends or missing core utilities are apparent within the stated purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive toolkit of 23 developer utilities that enables AI assistants to perform tasks like encoding, cryptography, and data generation locally without requiring API keys. It streamlines workflows by providing tools for JWT decoding, UUID generation, regex testing, and JSON formatting directly within the chat interface.
    33 npm
    MIT
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides a suite of 35 developer utility APIs including code formatting, data conversion, and infrastructure generation. It enables AI agents to perform tasks like JSON validation, Dockerfile creation, and network lookups directly through natural language.
    -
  • A
    license
    A
    quality
    A
    maintenance
    23 developer & data API tools for AI agents - IP/DNS/WHOIS/SSL lookups, web scraping & screenshots, text AI (summarize, translate, sentiment, grammar, redact), and dev utilities (hash, UUID, QR, JWT, cron, IBAN/VAT/email validation, breach check).
    23
    102 PyPI
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides 17 developer utility tools for AI agents, including free tools like JSON formatting, base64 encoding, UUID generation, and pro tools for regex, JWT, cron, and more.
    17
    9 npm
    1
    MIT