Skip to main content
Glama

kiprio MCP Server

PyPI Downloads Python License MCP Compatible Stars Glama

27 production API tools for Claude Code, Claude Desktop, Cursor, Cline, Continue, and any MCP client — email/phone validation, geocoding, timezone conversion, DNS/WHOIS, SSL inspection, web scraping, NLP, and developer utilities.

No third-party API keys required. Free tier included. Powered by kiprio.com.


Quick install

No install needed — run it straight from PyPI with uv:

uvx kiprio-mcp

Or install with pip:

pip install kiprio-mcp

Claude Code — add to your project in one step:

claude mcp add kiprio -- uvx kiprio-mcp
# or, if installed via pip:
claude mcp add kiprio -- kiprio-mcp

Or add to ~/.claude.json / Claude Desktop / Cursor / Windsurf / Zed:

{
  "mcpServers": {
    "kiprio": {
      "command": "uvx",
      "args": ["kiprio-mcp"],
      "env": {"KIPRIO_API_KEY": "your_key_here"}
    }
  }
}

(If you installed via pip instead, use "command": "kiprio-mcp" with no args.)

Cline (VS Code) — open Cline → MCP Servers → Add Server → paste:

{
  "mcpServers": {
    "kiprio": {
      "command": "uvx",
      "args": ["kiprio-mcp"],
      "env": {"KIPRIO_API_KEY": "your_key_here"}
    }
  }
}

Continue.dev — add to ~/.continue/config.json under mcpServers:

{
  "mcpServers": [
    {
      "name": "kiprio",
      "command": "uvx",
      "args": ["kiprio-mcp"],
      "env": {"KIPRIO_API_KEY": "your_key_here"}
    }
  ]
}

Get your free API key (takes 30 seconds)

The anonymous tier is rate-limited to 50–100 requests/day per tool — fine for one-off queries, but it runs out fast in any automated workflow.

A free registered key gives you 100 req/day per tool at zero cost:

👉 kiprio.com/signup — no credit card, no trial period.


Related MCP server: contrastapi

What you can do

Once connected, ask Claude naturally:

"Is noreply@company.io a real deliverable address?"validate_email checks syntax, MX records, and disposable domain lists

"What tech stack is stripe.com running?"tech_stack returns CMS, CDN, analytics, and payment providers

"Take a screenshot of this landing page and flag any broken layout."screenshot_url returns a base64 PNG Claude can analyse directly

"Redact all PII from this support transcript before I send it to Zendesk."redact_text replaces emails, phones, names, and card numbers with [REDACTED_TYPE]

"Check the SSL certificate on api.example.com — is it expiring soon?"ssl_check returns expiry date, issuer, and grade


Building an automated agent?

kiprio tools are designed for pipelines and hooks, not just one-shot queries. Common patterns:

Email validation before accepting signups:

User submits email
→ Claude: validate_email("user@example.com")
→ If disposable/invalid → reject early, before DB write

Domain monitoring hook (Claude Code slash command):

# Add to CLAUDE.md as a custom slash command
/check-ssl  →  ssl_check on all domains in config/domains.txt

Lead enrichment agent:

CSV of company domains
→ Claude loops: tech_stack() + whois_lookup() + ip_lookup() per row
→ Output: enriched CSV with stack, registrar, country, hosting provider

Content moderation pipeline:

User-submitted text
→ sentiment_analysis() to flag negative
→ redact_text() to strip PII before logging

These patterns work within the free key tier (100 req/day per tool). Pro tier (1,000/day) handles larger batches.


Tools

Email & Validation

Tool

What it does

validate_email

Syntax + MX record check + disposable domain detection

validate_phone

International phone number validation, E.164 format + country info

validate_vat

EU VAT number validation via VIES, returns company name

validate_iban

IBAN validation + bank details

check_password_breach

k-anonymity breach check — only a 5-char SHA1 prefix is sent

Location & Time

Tool

What it does

geocode_address

Convert address or place name → lat/lon + structured address components

get_timezone

City → IANA timezone, UTC offset, current local time, DST details

convert_timezone

Convert a datetime between any two IANA timezones (no key required)

Network & DNS

Tool

What it does

dns_lookup

Query A, AAAA, MX, TXT, NS, CNAME, SOA records

whois_lookup

Domain registrar, creation/expiry dates, nameservers

ssl_check

Certificate validity, expiry, issuer, SANs

ip_lookup

Geolocation + VPN/Tor/datacenter detection with threat score

Web & Content

Tool

What it does

readability

Extract main article text and metadata from any URL

tech_stack

Detect CMS, framework, CDN, analytics, payments

parse_og_tags

Open Graph, Twitter Card, and meta tags from a URL

screenshot_url

Full-page or viewport screenshot → base64 PNG

html_to_pdf

Convert HTML to PDF → base64 bytes

Text Processing

Tool

What it does

sentiment_analysis

positive/negative/neutral label + compound score (−1 to 1)

check_grammar

Rewrite for grammar/spelling + diff of edits; styles: concise, formal, friendly, UK-en, US-en

translate_text

Translate between languages with auto source detection

summarize_text

Extract key points (configurable sentence count)

redact_text

Replace PII with [REDACTED_TYPE] placeholders

Developer Utilities

Tool

What it does

generate_qr

QR code → base64 PNG or SVG; custom colours and size

generate_hash

Hash string with sha256, sha512, sha1, md5, sha3_256, or blake2b

generate_uuid

Generate UUID v1, v4, or v7

parse_cron

Parse a cron expression → next 5 run times + human description

decode_jwt

Decode JWT header + payload + expiry status (no verification)


Rate limits

Tier

Limit

Cost

Anonymous (no key)

50–100 req/day/tool

$0

Free key

100 req/day/tool

$0sign up

Pro

1,000 req/day/tool

$9/mo

Business

10,000 req/day/tool

$39/mo

Free key vs anonymous: Same tools, 3× the headroom, still $0. Just needs an email address.

Get your free key at kiprio.com/signup →

When to upgrade to Pro

  • Batch processing — validating 500 emails, enriching a CSV, running a link audit

  • Scheduled agents — Claude Code hooks that fire on every commit or cron job

  • Team workspaces — multiple developers sharing one config

  • Production scripts — slash commands that run on every file save or PR

Upgrade to Pro at kiprio.com →


Claude Code setup

claude mcp add kiprio -- uvx kiprio-mcp
claude mcp list   # should show kiprio

Or with a pip install:

pip install kiprio-mcp
claude mcp add kiprio -- kiprio-mcp

With API key in your project .env:

echo "KIPRIO_API_KEY=your_key" >> .env

Then reference in your MCP config:

{
  "mcpServers": {
    "kiprio": {
      "command": "uvx",
      "args": ["kiprio-mcp"],
      "env": {"KIPRIO_API_KEY": "${KIPRIO_API_KEY}"}
    }
  }
}

Troubleshooting

kiprio-mcp: command not found / spawn kiprio-mcp ENOENT — the bare kiprio-mcp command only exists after a pip install. Either switch your config to "command": "uvx", "args": ["kiprio-mcp"] (no install needed), or point at the full path from your virtualenv:

"command": "/path/to/venv/bin/kiprio-mcp"

429 Rate limit exceeded — free anonymous tier hit. Register at kiprio.com/signup for 100 req/day free, or upgrade to Pro for 1,000/day.

401/403 errors — API key invalid. Leave KIPRIO_API_KEY empty to use the anonymous tier (30 req/day).


Source

github.com/ForeverTools/kiprio-mcp — MIT licence.

Maintained by ForeverTools. APIs powered by kiprio.com.

Available Tools

23 tools
check_grammarA

Check and rewrite text for grammar, spelling, punctuation, and style.

Runs the text through a language model tuned for editing. Returns the
corrected text and an itemised list of changes with explanations.
Supports multiple style modes for different audiences and registers.

Free tier: up to 500 characters. Pro tier: up to 10,000 characters.

Args:
    text: Text to check and rewrite.
    style: Rewrite target style — one of:
        'concise' (default): Remove filler words, tighten sentences.
        'formal': Business or academic register.
        'friendly': Warm, conversational tone.
        'UK-en': British English spelling and idioms.
        'US-en': American English spelling and idioms.

Returns:
    corrected: Rewritten text applying all suggested changes.
    edits: List of individual changes, each with:
        original: The original phrase.
        replacement: The corrected phrase.
        explanation: Why this change was made.
    chars_in: Character count of the input.
    chars_out: Character count of the corrected output.
ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
styleNoconcise

TDQS

A4.3/5.0
Behavior4/5

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

No annotations provided, so the description must fully disclose behavior. It explains it uses a language model, returns corrected text and edits, supports style modes, and has character limits per tier. However, it does not mention rate limits, authentication needs, or potential side effects beyond what is described.

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 well-structured with separate sections for input, output, and tiers. It is front-loaded with the main purpose. However, it is slightly verbose with repetition (e.g., 'Check and rewrite' appears twice). Still, it is clear and organized.

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?

Given the absence of an output schema, the description fully details the return structure ('corrected', 'edits', 'chars_in', 'chars_out') and explains the edits list composition. It also covers character limits for free and pro tiers, providing a complete picture of tool behavior.

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

Parameters5/5

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

Schema coverage is 0%, so the description fully explains both parameters: 'text' as the input text, and 'style' with a list of options and defaults. It adds significant meaning beyond the schema's minimal type definitions.

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 checks and rewrites text for grammar, spelling, punctuation, and style. It also describes the output (corrected text and edit list). It is distinct from sibling tools which are validation, lookup, and other text processing tools like translate or summarize.

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 and its style options, but does not provide guidance on when to use this tool versus alternate sibling tools (e.g., translate_text, summarize_text, redact_text). No explicit when-to-use or when-not-to-use criteria.

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

check_password_breachA

Check if a password has appeared in known data breaches.

Uses the k-anonymity method: only the first 5 characters of the SHA-1 hash
of the password are ever sent over the network. The API returns a list of
matching hash suffixes which are compared locally — the full password and
hash are never transmitted. Data sourced from HaveIBeenPwned and similar
breach databases.

Use this to validate new passwords at registration or to prompt users
to change a compromised credential. Safe to call with real passwords due
to the k-anonymity design.

Args:
    password: The password string to check. Transmitted as a partial hash
              (first 5 chars of SHA-1 only) — never the plaintext password.

Returns:
    breached (bool): True if the password appears in breach databases.
    count: Number of times this password has been seen in breaches.
           A count > 0 means the password should not be used.
           A count of 0 means it has not been seen (not a guarantee of safety).
ParametersJSON Schema
NameRequiredDescriptionDefault
passwordYes

TDQS

A4.9/5.0
Behavior5/5

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

No annotations provided, so description carries full burden. Detailed explanation of k-anonymity method (only first 5 chars of SHA-1 hash sent), local comparison, and that full password never transmitted. Discloses data source (HaveIBeenPwned etc.).

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?

Well-structured with paragraphs for purpose, method, usage, and returns. Some redundancy could be trimmed (e.g., 'the full password and hash are never transmitted' appears twice), but still efficient and clear.

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?

Comprehensive for a sensitive security tool. Explains method, return values (breached bool and count), interpretation of count, and limitations (not a guarantee of safety). No output schema, so description covers returns adequately.

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

Parameters5/5

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

Schema has 0% coverage for parameter descriptions. The description adds essential meaning: password is transmitted as partial hash only, never plaintext. Explains the security mechanism for the single parameter.

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?

Clearly states 'check if a password has appeared in known data breaches' with specific verb and resource. Distinguishes from sibling tools like validate_email, dns_lookup, etc., which are unrelated.

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

Usage Guidelines5/5

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

Explicitly advises use cases: 'validate new passwords at registration or prompt users to change a compromised credential.' Also implies safety due to k-anonymity, guiding appropriate use.

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

decode_jwtA

Decode a JWT (JSON Web Token) without signature verification.

Parses and decodes the header and payload sections of a JWT for inspection.
Useful for debugging authentication issues, inspecting claim values, or
checking expiry. Does NOT verify the signature — do not use this to make
security decisions about whether a token should be trusted.

Args:
    token: JWT string (three base64url-encoded sections separated by dots).
           Both compact and bearer format ('Bearer eyJ...') are accepted.

Returns:
    header: Decoded JWT header (alg, typ, kid).
    payload: Decoded JWT payload (all claims as-is).
    is_expired (bool): True if the 'exp' claim is in the past.
    expires_at: Expiry datetime string if 'exp' claim present (may be null).
    issued_at: Issue datetime string if 'iat' claim present (may be null).
    subject: The 'sub' claim if present (typically a user ID).
    issuer: The 'iss' claim if present.
ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYes

TDQS

A5/5.0
Behavior5/5

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

No annotations provided, so description fully carries burden. It clearly states it does NOT verify signature, lists accepted input formats (compact and bearer), and details all return fields including is_expired, expires_at, etc.

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?

Well-structured with 'Args' and 'Returns' sections. The security warning is a single sentence. Every sentence provides value without redundancy.

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 tool with one parameter and no output schema, the description fully covers input specification, return fields, and crucial behavioral details (no verification). It is complete and self-contained.

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

Parameters5/5

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

Only one parameter (token) with 0% schema description coverage. Description compensates fully by explaining token format: 'JWT string (three base64url-encoded sections separated by dots). Both compact and bearer format are accepted.' This adds crucial meaning beyond the raw 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?

Description clearly states 'Decode a JWT without signature verification' and explains it parses header and payload. It effectively distinguishes the tool from unrelated siblings by specifying its exact function.

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

Usage Guidelines5/5

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

Explicitly states when to use: debugging authentication issues, inspecting claims, checking expiry. Also provides important when-not: 'Do NOT use this to make security decisions about whether a token should be trusted.'

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

dns_lookupA

Look up DNS records for a domain across multiple record types.

Queries authoritative DNS servers for the specified record types and
returns all matching records with TTL values. Useful for diagnosing
email deliverability (MX records), verifying domain ownership (TXT),
tracing CDN configuration (CNAME), and checking propagation status.

Args:
    domain: Domain name to look up (e.g. 'example.com', 'mail.example.com').
    record_types: Comma-separated record types to query. Supported:
        A (IPv4 addresses), AAAA (IPv6), MX (mail servers),
        TXT (verification, SPF, DKIM), NS (nameservers),
        CNAME (aliases), SOA (zone authority). Default: 'A'.
        Example: 'A,MX,TXT' to check all email-related records at once.

Returns:
    records: List of DNS records, each with type, value, and ttl.
    query_time_ms: How long the DNS resolution took.
ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes
record_typesNoA

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It states the tool queries authoritative DNS servers and returns records with TTL and query time, implying a read-only network operation. However, it omits details like rate limits, caching behavior, or error handling, leaving some transparency gaps.

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 well-structured with clear sections (Args, Returns), uses bullet points for clarity, and every sentence adds value. It is appropriately succinct for the complexity of the tool.

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 simple 2-parameter schema and no output schema or annotations, the description covers the tool's purpose, parameters, return format, and use cases comprehensively. Minor omissions like error handling or authentication requirements are acceptable for a read-only DNS lookup tool.

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

Parameters5/5

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

The input schema has 0% description coverage, but the tool description extensively documents both parameters: domain with examples, record_types with supported types and detailed explanations (including defaults and example values). This adds significant meaning 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 clearly states the tool's function: 'Look up DNS records for a domain across multiple record types.' It also lists specific use cases (email deliverability, domain ownership, CDN configuration, propagation status), distinguishing it from sibling tools like whois_lookup or ssl_check.

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 explicitly mentions when the tool is useful (diagnosing email deliverability, verifying domain ownership, etc.), providing practical context. However, it does not explicitly state when not to use it or mention alternative sibling tools, which would improve guidance.

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

generate_hashA

Hash a string with a cryptographic hash algorithm.

Computes the hash server-side and returns hex-encoded digest. Useful for
verifying data integrity, creating content fingerprints, or generating
deterministic identifiers. All algorithms produce consistent, reproducible
output for the same input.

Args:
    data: String to hash. Encoded as UTF-8 before hashing.
    algorithm: Hash algorithm to use — one of:
        'sha256' (default): 256-bit SHA-2, widely used standard.
        'sha512': 512-bit SHA-2, stronger but longer output.
        'sha1': 160-bit SHA-1, legacy (not collision-resistant).
        'md5': 128-bit MD5, legacy (not collision-resistant).
        'sha3_256': 256-bit SHA-3 (Keccak), different from SHA-2.
        'blake2b': BLAKE2b, fast and cryptographically strong.

Returns:
    algorithm: The algorithm used.
    hex: Hex-encoded hash digest.
    length: Length of the hex string in characters.
ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes
algorithmNosha256

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description fully carries the burden. It discloses that hashing is performed server-side, output is hex-encoded, and results are consistent. It does not mention any destructive actions or side effects, which is appropriate for a pure computation tool.

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 well-structured with a clear opening sentence, followed by a use case paragraph, then parameter details in a list format. It is relatively concise for the amount of information, though the parameter documentation could be slightly condensed.

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?

Given no output schema, the description explicitly lists the return fields (algorithm, hex, length). It also covers parameter details and behavior. With no annotations, this description is complete and leaves no obvious gaps for an agent to invoke or interpret results.

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

Parameters5/5

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

Schema coverage is 0% (no descriptions in schema), so the description fully compensates. It explains both parameters: 'data' with UTF-8 encoding, and 'algorithm' with all options, defaults, and security notes. This adds significant meaning 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?

Description clearly states 'Hash a string with a cryptographic hash algorithm.' It provides a specific verb (hash) and resource (string), lists multiple algorithms, and distinguishes itself from sibling tools which are unrelated (e.g., validate_email, 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?

Description mentions use cases such as verifying data integrity, creating fingerprints, and generating identifiers. However, it does not specify when not to use this tool or provide explicit alternatives among the sibling tools, though no sibling is a direct competitor.

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

generate_qrA

Generate a QR code and return it as a base64-encoded image.

Creates a QR code encoding any text or URL. Supports PNG (raster) and
SVG (vector, scales to any size). Custom foreground and background colours
allow brand-matched QR codes. Error correction level is M (~15% recovery).

Args:
    url: Content to encode — can be any URL, plain text, Wi-Fi credentials
         (WIFI:T:WPA;S:ssid;P:password;;), vCard, or other QR payload.
    size: Output image size in pixels (default 256, range 64–2048).
          Ignored for SVG format which is inherently resolution-independent.
    format: Output format — 'png' (default) or 'svg'.
    fg: Foreground (module) colour as hex (default '#000000').
    bg: Background colour as hex (default '#ffffff').
        Use '#00000000' for transparent background (PNG only).

Returns:
    Base64-encoded image string (PNG bytes or SVG text, base64-encoded).
ParametersJSON Schema
NameRequiredDescriptionDefault
bgNo#ffffff
fgNo#000000
urlYes
sizeNo
formatNopng

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses generation behavior, format differences, color support, error correction level, and size limitations. Transparent background note for PNG only is good. Could mention any rate limits or auth requirements, but none apparent.

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 well-structured with a summary, details, and return info. It's somewhat lengthy but every sentence adds value. Could be slightly more concise, but clarity is prioritized.

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?

Given the simplicity of the tool (generate and return base64), the description covers all needed aspects: input parameters, format options, output description. No missing critical information.

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

Parameters5/5

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

Schema description coverage is 0%, but the description's Arg section thoroughly explains each parameter: url (content examples), size (default, range, SVG behavior), format (choices), fg and bg (hex defaults, transparent for PNG). This adds significant meaning beyond the bare 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 clearly states it generates a QR code and returns it as a base64-encoded image. It specifies supported formats (PNG, SVG), customization options, and error correction level. No sibling tool does QR generation, so it's unique and distinguishable.

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 this tool is for creating QR codes from various payloads. While it doesn't explicitly state when not to use it, the uniqueness among siblings makes this less critical. A brief note on alternatives (if any) would improve it.

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

generate_uuidA

Generate a universally unique identifier (UUID).

Produces standards-compliant UUIDs suitable for use as database primary
keys, idempotency tokens, session identifiers, or correlation IDs.

Args:
    version: UUID version to generate:
        1: Time-based UUID (includes MAC address and timestamp).
           Ordered by creation time, useful for time-sortable IDs.
        4 (default): Random UUID (122 bits of entropy).
           Most widely used; suitable for general-purpose IDs.
        7: Unix-time-based UUID (RFC 9562). Monotonically increasing,
           better database index locality than v4, newer standard.

Returns:
    uuid: The generated UUID string (standard hyphenated format).
    version: UUID version that was generated.
    format: Always 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'.
ParametersJSON Schema
NameRequiredDescriptionDefault
versionNo

TDQS

A4.8/5.0
Behavior4/5

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

Describes standards compliance, entropy, and ordering characteristics. No annotations provided, so description carries full burden, which it meets well. Slight gap: does not mention if v1 includes MAC address exposure.

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 concise sections (purpose, args, returns) with clear formatting. Every sentence adds value; no fluff.

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?

Tool is simple (1 param, no output schema), and description covers purpose, parameter semantics, and return value structure comprehensively.

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

Parameters5/5

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

Despite 0% schema coverage, the description fully details the single parameter `version` with meanings, default, and trade-offs for each option.

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 generates UUIDs and lists multiple use cases (database keys, idempotency tokens, etc.), distinguishing it from sibling tools like validate_email or 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 Guidelines5/5

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

Provides explicit guidance on when to use each UUID version: v1 for time-sortable IDs, v4 for general-purpose, v7 for monotonic ordering and better database index locality.

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

html_to_pdfA

Convert an HTML document to a PDF and return it as a base64-encoded string.

Renders the HTML in a headless Chromium browser and exports to PDF.
Supports full CSS (including Flexbox, Grid, custom fonts via Google Fonts),
inline SVG, and print-media-query styles. Page size defaults to A4.

Use for generating invoices, reports, certificates, or any document that
needs to be rendered exactly as it appears in a browser.

Args:
    html: Complete HTML document to convert. Should include a full
          <html><head>...</head><body>...</body></html> structure.
          For best results include a <style> block or link to a CDN CSS.
          Use @media print CSS rules to control page breaks.

Returns:
    Base64-encoded PDF bytes. Decode with base64.b64decode() to get the
    raw PDF binary, which can be written to a file or returned to a user.
ParametersJSON Schema
NameRequiredDescriptionDefault
htmlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

Describes rendering in headless Chromium, CSS support, default A4 page size, and base64 return. No annotations exist, so description carries full burden; it adds sufficient behavioral context but omits potential limitations (e.g., timeouts, resource loading).

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?

Description is front-loaded with purpose and behavior, followed by structured Args and Returns sections. It is slightly longer than necessary but well-organized and free of repetition.

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?

Covers purpose, parameter details, behavioral notes, and return format. With an output schema present, it does not need to detail PDF structure. Missing minor aspects like error handling or dependency on external resources (e.g., fonts).

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

Parameters5/5

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

Despite 0% schema coverage, the description's Args section fully explains the html parameter: expects a complete HTML document, recommends style block and @media print CSS. This adds rich context beyond the schema's minimal type definition.

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?

Clearly states it converts HTML to PDF and returns base64 string. Specifies use cases (invoices, reports) but does not explicitly differentiate from sibling tools like screenshot_url.

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?

Provides typical use cases but no guidance on when not to use or alternatives. Context signals show siblings like screenshot_url cover similar needs, but no exclusion criteria are mentioned.

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

ip_lookupA

Geolocate an IP address and detect VPN, Tor, and datacenter usage.

Returns geolocation data (country, city, coordinates, timezone, ISP) plus
threat intelligence signals: whether the IP is a known VPN exit node, Tor
relay, or datacenter/hosting provider. Includes a composite threat score.

Use for fraud detection, access control, personalising content by region,
or investigating suspicious traffic in server logs.

Args:
    ip: IPv4 or IPv6 address to look up (e.g. '8.8.8.8', '2001:4860:4860::8888').

Returns:
    ip: The queried IP.
    country, country_code: Full country name and ISO-3166 code.
    region, city: Geographic subdivision and city name.
    latitude, longitude: Approximate coordinates (city-level precision).
    timezone: IANA timezone (e.g. 'America/New_York').
    isp: Internet Service Provider name.
    is_vpn (bool): Known VPN exit node.
    is_tor (bool): Tor exit relay.
    is_datacenter (bool): Hosted in a cloud/datacenter AS.
    threat_score: 0.0–1.0 composite risk score.
ParametersJSON Schema
NameRequiredDescriptionDefault
ipYes

TDQS

A4.6/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It explains the output fields (geolocation, threat signals, composite score) and coordinate precision (city-level). It does not discuss authentication, rate limits, or potential side effects, but as a read-only lookup, these are less critical.

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 well-structured as a Google-style docstring with a concise summary, bulleted return fields, and usage scenarios. Every sentence adds value, no fluff, and critical information is front-loaded.

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 tool with one parameter and no output schema, the description is complete: it enumerates all return fields with descriptions, notes coordinate precision, and explains the threat score range. No critical gaps for its complexity.

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

Parameters5/5

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

Schema description coverage is 0%, but the description compensates fully by specifying the parameter format ('IPv4 or IPv6 address') and providing concrete examples ('8.8.8.8', '2001:4860:4860::8888'). This adds significant meaning beyond the bare schema type.

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 'Geolocate an IP address and detect VPN, Tor, and datacenter usage.' It specifies both geolocation and threat detection, distinguishing itself from siblings like dns_lookup and whois_lookup by focusing on IP intelligence and composite threat score.

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 lists concrete use cases: fraud detection, access control, region-based personalization, and investigating suspicious traffic. It implies contexts where this tool is appropriate but does not explicitly state when not to use it or mention alternatives.

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

parse_cronA

Parse a cron expression and return next execution times with a human description.

Accepts standard 5-field cron syntax (minute hour day month weekday) and
the extended 6-field format (with seconds prefix). Returns the next several
scheduled times and a plain-English description of the schedule. Useful for
validating cron jobs, explaining schedules to non-technical stakeholders, or
debugging scheduler configuration.

Args:
    expression: Cron expression to parse. Supports:
        5-field: '0 9 * * 1' (every Monday at 09:00)
        6-field: '0 0 9 * * 1' (with leading seconds field)
        Special strings: '@daily', '@weekly', '@monthly', '@hourly'
        Ranges: '0 9-17 * * 1-5' (hourly 9am-5pm on weekdays)
        Step values: '*/15 * * * *' (every 15 minutes)

Returns:
    description: Plain-English schedule description.
    next_runs: List of the next 5 scheduled UTC datetime strings.
    fields: Parsed cron fields with each component's meaning.
    timezone: Assumes UTC unless a POSIX TZ string is prepended.
ParametersJSON Schema
NameRequiredDescriptionDefault
expressionYes

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It discloses that it assumes UTC unless a POSIX TZ string is prepended, returns 5 next runs, and lists returned fields. It implies a read-only, stateless operation, which is appropriately 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 well-structured with an overview, an 'Args' section, and a 'Returns' section. It is detailed yet concise, with every sentence adding value and no 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?

Given one parameter and no output schema, the description thoroughly documents input options and briefly describes output fields (description, next_runs, fields, timezone). It could provide more details on output format (e.g., datetime string format), but is largely complete for agent use.

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

Parameters5/5

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

The single parameter 'expression' has 0% schema description coverage. The description compensates fully with detailed examples: 5-field, 6-field, special strings, ranges, step values. This provides extensive meaning beyond the schema's bare type definition.

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 it parses cron expressions and returns next execution times with a human description. It specifies supported formats (5-field, 6-field, special strings, ranges, step values), distinguishing it from sibling tools that handle validation, DNS, SSL, etc.

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 explicitly states use cases: validating cron jobs, explaining schedules, debugging scheduler configuration. While it doesn't list exclusions, the sibling tools are unrelated, so usage context is sufficient.

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

parse_og_tagsA

Extract Open Graph, Twitter Card, and standard meta tags from a URL.

Fetches the page and parses all social-sharing metadata. Returns the full
set of og:*, twitter:*, and standard HTML meta tags in a structured format.
Use for link preview generation, SEO auditing, or validating that social
sharing thumbnails and descriptions are correctly set.

Args:
    url: Full URL of the page to parse (must include https://).

Returns:
    title: Page title (og:title or <title>).
    description: Meta description or og:description.
    image: Primary social sharing image URL (og:image).
    site_name: og:site_name if set.
    type: og:type (e.g. 'article', 'website').
    open_graph: Full dict of all og:* key-value pairs.
    twitter: Full dict of all twitter:* key-value pairs.
    favicon: URL of the site favicon.
    lang: Page language code (e.g. 'en', 'fr').
    author: Author meta tag if present.
    published_at: article:published_time if present.
    keywords: Meta keywords if present.
ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes

TDQS

A4.3/5.0
Behavior3/5

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

The description notes that it fetches the page and parses metadata, implying an HTTP request. However, it does not disclose potential timeouts, error handling, or rate limits. With no annotations, more behavioral detail would be beneficial.

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 well-structured with sections for Args and Returns, front-loading the purpose. It is somewhat lengthy due to the detailed return field list, but remains organized and focused.

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?

Given no output schema or annotations, the description fully covers purpose, usage, parameter constraint, and return structure. It addresses the tool's complexity and expected context adequately.

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

Parameters5/5

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

The schema has 0% coverage for the single parameter 'url'. The description adds critical semantics: 'Full URL of the page to parse (must include https://)', specifying format and requirement 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 clearly states the tool extracts Open Graph, Twitter Card, and standard meta tags from a URL, specifying the verb and resource. It is distinct from siblings like validate_email or 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 Guidelines4/5

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

The description explicitly lists use cases: link preview generation, SEO auditing, and validating social sharing metadata. It does not mention when not to use or alternatives, but provides clear context for appropriate usage.

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

readabilityA

Extract the main article text and metadata from a web page.

Uses Mozilla's Readability algorithm (the same engine as Firefox Reader Mode)
to strip navigation, ads, and boilerplate and return only the article content.
Ideal for summarising articles, building reading lists, or feeding clean text
into further AI processing without HTML noise.

Args:
    url: Full URL of the article or page to extract (must include https://).

Returns:
    title: Article or page title.
    byline: Author name(s) if detected.
    content: Plain text of the main article body.
    word_count: Number of words in the extracted content.
    published_at: Publication date if found in page metadata (may be null).
    excerpt: Short description/lead paragraph if available.
ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes

TDQS

A4.7/5.0
Behavior4/5

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

Discloses algorithm source (Mozilla's Readability) and behavior (strips navigation/ads/boilerplate). No annotations exist, so description carries the burden. Lacks details on error handling (e.g., non-article pages, rate limits) but sufficient for typical use.

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?

Well-structured with two paragraphs: purpose/behavior then parameter/return details. Slightly verbose (e.g., 'Args' and 'Returns' sections repeat schema info), but each sentence adds value.

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?

Given single required parameter, no output schema, and no annotations, the description fully covers all necessary information: input format, return fields with descriptions, and expected behavior. No gaps identified.

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

Parameters5/5

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

Only one parameter (url) with schema coverage 0%. Description adds full semantics: 'Full URL of the article or page to extract (must include https://)'. This completely compensates for the missing schema descriptions.

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?

Clear verb 'Extract the main article text and metadata from a web page' with specific resource. Distinguishes itself from siblings (e.g., parse_og_tags, screenshot_url) by focusing on prose extraction.

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

Usage Guidelines5/5

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

Explicitly states ideal use cases: summarising articles, building reading lists, feeding into AI processing. No alternative tool is named, but the context signals show diverse sibling tools that clearly differ in purpose.

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

redact_textA

Redact personally identifiable information (PII) from text.

Detects and replaces PII entities using NER and pattern matching.
Covers email addresses, phone numbers, full names, physical addresses,
credit card numbers, national ID numbers (UK NI, US SSN), dates of birth,
and IP addresses. Replacements use labelled placeholders so the structure
of the text is preserved for downstream processing.

Use before logging user input, storing support tickets, or sharing data
with third parties.

Args:
    text: Text containing PII to redact. Handles mixed content including
          structured data embedded in natural language.

Returns:
    redacted: Text with PII replaced by [REDACTED_TYPE] placeholders.
    entities: List of detected entities, each with:
        type: Entity type (EMAIL, PHONE, NAME, ADDRESS, CREDIT_CARD, etc.).
        original: The original value that was redacted.
        start, end: Character positions in the original text.
    entity_count: Total number of PII entities found and redacted.
ParametersJSON Schema
NameRequiredDescriptionDefault
textYes

TDQS

A4.3/5.0
Behavior4/5

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

No annotations provided, so the description carries the full burden. It details detection methods (NER and pattern matching), covers a comprehensive list of PII types, and describes replacement style (labelled placeholders). However, it lacks discussion of limitations, performance, or error handling.

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

Conciseness4/5

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

The description is well-structured with sections for use cases and return values. It is informative without being verbose, though the Args and Returns sections are slightly redundant given the prose.

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 moderate complexity and lack of output schema, the description adequately covers functionality, usage, and return values. It does not mention concurrency, rate limits, or privacy, but is complete for its purpose.

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 description coverage is 0%, but the description compensates by explaining the 'text' parameter: 'Text containing PII to redact. Handles mixed content including structured data embedded in natural language.' This adds meaning 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 clearly states the function: redact PII from text. The verb 'redact' is specific, and the resource 'text' is explicit. It distinguishes from sibling tools, which are unrelated (e.g., validate_email, ssl_check).

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 explicitly suggests use cases: 'before logging user input, storing support tickets, or sharing data with third parties.' This provides clear guidance on when to use, though it does not mention alternatives or when not to use.

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

screenshot_urlA

Capture a screenshot of a web page and return it as a base64-encoded PNG.

Renders the page in a headless Chromium browser with JavaScript execution,
waits for network idle (all resources loaded), then captures the viewport
or full page. Useful for visual regression checks, archiving page state,
generating previews, or letting an AI model analyse page layout.

Args:
    url: Full URL of the page to capture (must include https://).
    width: Viewport width in pixels (default 1280, range 320–3840).
    height: Viewport height in pixels (default 800, range 200–2160).
    full_page: If True, capture the full scrollable page height rather
               than just the visible viewport. May be slow for long pages.

Returns:
    png_b64: Base64-encoded PNG image data.
    w: Actual image width in pixels.
    h: Actual image height in pixels.
    bytes: File size of the PNG in bytes.
    ms: Time taken to render and capture in milliseconds.
ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
widthNo
heightNo
full_pageNo

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description fully discloses behavior: headless Chromium, JavaScript execution, waits for network idle, captures viewport or full page, performance warning for long pages. Return fields are also described. No contradictions.

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?

Description is well-structured with a clear lead sentence, followed by technical details, then argument and return descriptions. Slightly lengthy but each sentence adds value. Could be slightly tighter, but still good.

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?

No output schema, but description explains all return fields (png_b64, w, h, bytes, ms). Covers key constraints and performance hint. Fully sufficient for correct invocation.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must and does add meaning for all 4 parameters. It documents the URL requirement (https://), ranges and defaults for width/height (320–3840, 200–2160), and the full_page effect and performance trade-off.

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 uses specific verb 'Capture a screenshot' and resource 'web page', clearly stating it returns base64 PNG. It lists concrete use cases (visual regression, archiving, previews, AI analysis). No sibling tools perform similar function, so no 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 when to use: for capturing page state, visual checks, or AI analysis. It does not explicitly state when not to use or provide alternatives, but given the uniqueness of the tool among siblings, it is clear enough.

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

sentiment_analysisA

Analyse the emotional tone and sentiment of a piece of text.

Uses a fine-tuned language model to classify the overall sentiment and
return a continuous compound score. Handles negation, sarcasm signals,
and mixed-sentiment text. Works well on reviews, social posts, support
tickets, survey responses, and news excerpts.

Args:
    text: Text to analyse. Optimal range: 10–2000 characters.
          For longer documents, pass key paragraphs separately.

Returns:
    label: Overall sentiment — 'positive', 'negative', or 'neutral'.
    compound: Score from -1.0 (most negative) to +1.0 (most positive).
    confidence: Model confidence in the classification, 0.0–1.0.
    positive: Proportion of positive signal in the text.
    negative: Proportion of negative signal in the text.
    neutral: Proportion of neutral signal in the text.
ParametersJSON Schema
NameRequiredDescriptionDefault
textYes

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description must disclose behavior. It mentions handling negation, sarcasm, and mixed sentiment, and uses a fine-tuned model. It does not cover rate limits, authentication, or error handling, but for a text analysis tool these are less critical. The transparency is high overall.

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 well-structured with clear sections and bullet-like formatting for parameters and returns. It is moderately concise; a few phrases could be trimmed (e.g., 'Uses a fine-tuned language model' is implied), but overall it communicates efficiently without unnecessary 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?

Given the absence of an output schema and annotations, the description comprehensively covers the tool's purpose, inputs, behaviors, and outputs. It provides usage context, parameter details, and return field descriptions, making it fully self-contained for an agent to invoke correctly.

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

Parameters5/5

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

The schema has 0% description coverage, so the description carries full responsibility. It explains the 'text' parameter in detail: what it is (text to analyse), optimal range (10–2000 chars), and how to handle longer inputs. It also fully documents return fields (label, compound, confidence, positive/negative/neutral proportions), adding significant value.

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: 'Analyse the emotional tone and sentiment of a piece of text.' The verb 'analyse' and resource 'sentiment' are specific. It distinguishes from sibling tools, which are unrelated (e.g., validate_email, dns_lookup), making selection 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 lists suitable text types (reviews, social posts, etc.) and provides an optimal character range (10–2000). It advises splitting long documents, which is useful guidance. While it doesn't explicitly state when not to use the tool, the context is clear enough for an agent to decide.

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

ssl_checkA

Inspect the SSL/TLS certificate for a host.

Connects to the host on port 443 and retrieves the full certificate chain.
Returns validity status, expiry countdown (critical for alerting), issuer
details, Subject Alternative Names (SANs), and cipher suite information.

Use to monitor certificate expiry, verify correct certificate installation,
check SANs cover all required subdomains, or audit cipher strength.

Args:
    host: Hostname to check (e.g. 'example.com', 'api.example.com').
          Do not include https:// or path components.

Returns:
    valid (bool): Whether the certificate is currently valid and trusted.
    subject: Common name on the certificate.
    issuer: Certificate Authority that issued it.
    issued_at: Certificate issuance date.
    expires_at: Certificate expiry date.
    days_remaining: Days until expiry (negative = already expired).
    sans: List of Subject Alternative Names (all covered hostnames).
    chain_length: Number of certificates in the chain.
ParametersJSON Schema
NameRequiredDescriptionDefault
hostYes

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries full burden. It fully discloses behavior: connects on port 443, retrieves full chain, and lists all returned fields including validity, expiry countdown, issuer, SANs, and cipher suite info.

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 well-structured with a clear intro and bullet points for arguments and returns. It is front-loaded with purpose. While slightly lengthy due to listing all return fields, each sentence 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?

Given one parameter, no output schema, and no annotations, the description thoroughly covers purpose, parameter usage, and return values. It provides sufficient detail for an agent to invoke the tool correctly.

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

Parameters5/5

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

The single parameter 'host' has no schema description (0% coverage). The description compensates by providing clear guidance: include only hostname, exclude protocol and path. This adds significant meaning beyond the raw 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 clearly states the tool's function: inspecting SSL/TLS certificates for a host. It specifies connecting to port 443 and retrieving the certificate chain. This distinguishes it from sibling tools like dns_lookup or whois_lookup.

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: monitoring certificate expiry, verifying installation, checking SANs, and auditing cipher strength. However, it does not mention when not to use or alternative tools.

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

summarize_textA

Summarize a long document or passage into key points.

Uses extractive and abstractive summarisation to distil the most important
information from the input. Suitable for news articles, reports, research
papers, meeting transcripts, and support tickets.

Args:
    text: Text to summarise. Works best with 200+ words of input.
          Handles articles, reports, and multi-paragraph passages.
    max_sentences: Target number of sentences in the output summary
                   (default 3, range 1–10). The model may produce fewer
                   if the source is already concise.

Returns:
    summary: The generated summary text.
    sentences: Number of sentences in the summary.
    compression_ratio: Input length divided by summary length.
    key_points: Bullet-point list of the main points (may be null
                for very short inputs).
ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
max_sentencesNo

TDQS

A4.8/5.0
Behavior5/5

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

No annotations are provided, so the description carries the full burden. It explains the approach (extractive and abstractive), constraints (input length, max_sentences range, potential fewer sentences), and return structure (summary, sentences, compression_ratio, key_points). No contradictions.

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?

Description is concise yet comprehensive, using clear sections for intro, use cases, parameters, and returns. No wasted sentences; every line adds information.

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?

Despite no output schema, the description fully documents return values. Covers purpose, usage, parameters, and behavior. No gaps for an agent to invoke the tool correctly.

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

Parameters5/5

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

Schema has 0% description coverage. Description adds full meaning: text parameter gets usage guidance and content type, max_sentences gets default, range, and behavior note. Also describes all return fields. Completely compensates for missing schema descriptions.

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 tool summarizes a long document into key points. It lists specific use cases (news articles, reports, etc.) and distinguishes from all sibling tools, which are unrelated (e.g., validate_email, 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 Guidelines4/5

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

Provides suitable contexts (news, reports, transcripts) and input length recommendation (200+ words). Does not explicitly exclude contexts or mention alternatives, but sibling tools are all different so no ambiguity.

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

tech_stackA

Detect the technology stack powering a website.

Analyses HTTP headers, HTML meta tags, JavaScript fingerprints, and
resource paths to identify the CMS, frontend framework, CDN, analytics
platform, e-commerce engine, and other technologies in use.

Useful for competitive research, sales prospecting, migration planning,
or understanding what stack a client is running before proposing solutions.

Args:
    url: Full URL of the site to analyse (must include https://).
        The homepage is usually sufficient; the scan does not crawl.

Returns:
    technologies: List of detected technologies, each with:
        name: Technology name (e.g. 'WordPress', 'Cloudflare', 'React').
        category: Category (CMS, CDN, Analytics, Framework, etc.).
        confidence: Detection confidence 0.0–1.0.
        version: Version string if detectable (may be null).
ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes

TDQS

A4.6/5.0
Behavior4/5

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

Describes methods (HTTP headers, meta tags, JS fingerprints, resource paths) and notes the scan does not crawl, only the homepage is needed. No annotations are provided, so the description carries the full burden; it adequately discloses behavior without contradictions.

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?

Well-structured with a clear purpose sentence, followed by method details, use cases, and a docstring for parameters and return values. Every sentence adds value without unnecessary verbosity.

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 tool with one parameter and no output schema, the description fully explains input requirements and return structure (list of technologies with name, category, confidence, version). It is complete and self-contained.

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

Parameters5/5

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

Despite the schema having 0% description coverage, the description includes a detailed parameter doc: 'Full URL of the site to analyse (must include https://). The homepage is usually sufficient; the scan does not crawl.' This adds essential meaning 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 clearly states 'Detect the technology stack powering a website', specifying the verb 'Detect' and resource 'technology stack'. It distinguishes from sibling tools (e.g., dns_lookup, ssl_check) by focusing on stack identification.

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?

Explicitly lists use cases (competitive research, sales prospecting, migration planning) and notes the tool is for understanding a client's stack. It does not directly state when not to use, but given sibling context, the intended usage is clear.

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

translate_textA

Translate text between languages using neural machine translation.

Supports 100+ languages. Auto-detection identifies the source language
if not specified. Preserves paragraph structure and handles common
HTML entities. Suitable for document translation, multilingual content
generation, and supporting international users.

Args:
    text: Text to translate. May include multiple paragraphs.
    target: Target language as a BCP-47 code (e.g. 'fr', 'de', 'es',
            'zh', 'ja', 'ar', 'pt', 'ru', 'ko', 'hi').
    source: Source language code, or 'auto' to detect automatically
            (default: 'auto').

Returns:
    translated: The translated text.
    source_language: Detected or specified source language code.
    target_language: Target language code.
    confidence: Source language detection confidence (0.0–1.0).
ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
sourceNoauto
targetYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses important behaviors: preserves paragraph structure, handles HTML entities, uses NMT, and supports auto-detection. It does not mention rate limits or auth, but covers key aspects.

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 well-structured with a high-level summary, followed by clear Args and Returns sections. It is concise, with every sentence adding value and no redundancy.

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?

The description is fully complete given the tool's complexity and lack of output schema. It covers all parameters, explains the return format, and provides usage context. No gaps remain.

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

Parameters5/5

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

The description adds significant meaning beyond the sparse input schema. It explains that text may include multiple paragraphs, gives example BCP-47 codes for target, and specifies the default for source ('auto'). This compensates for the 0% schema description 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 clearly states that the tool translates text between languages using neural machine translation, supports 100+ languages, auto-detection, and preserves structure. It also lists specific use cases, distinguishing it from unrelated 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 provides clear when-to-use guidance (document translation, multilingual content, international users) but does not explicitly mention when not to use or suggest alternative tools. However, the sibling tools are all different, so confusion is unlikely.

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

validate_emailA

Validate an email address for deliverability and quality.

Performs multi-layer validation: RFC-5322 syntax check, MX record lookup
to confirm the domain accepts mail, disposable/temporary domain detection
(against 50,000+ known throwaway providers), and role-address detection
(e.g. admin@, noreply@).

Use this before sending email campaigns, checking signups, or cleaning a
mailing list to reduce bounce rates and spam complaints.

Args:
    email: The email address to validate (e.g. 'user@example.com').

Returns:
    valid (bool): True if the address appears deliverable.
    reason: Human-readable explanation of the result.
    mx_found (bool): Whether the domain has working mail servers.
    is_disposable (bool): True if a known throwaway email provider.
    is_role_address (bool): True if a shared/role address (admin@, info@).
ParametersJSON Schema
NameRequiredDescriptionDefault
emailYes

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It details the multi-layer validation process and return values. Could be improved by mentioning network dependency or rate limits, but overall it discloses key behaviors.

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 well-structured with clear sections for checks, usage, args, and returns. Slightly lengthy but every sentence adds value. Front-loaded with the main purpose.

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 tool with no output schema and no annotations, the description covers purpose, methodology, return fields, and use cases comprehensively. An agent has all needed information to use it 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 0%, so the description must compensate. It explains the 'email' parameter with example and context, adding meaning beyond the schema's type-only definition. It could mention accepted formats or encoding but is sufficient.

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 it validates email for deliverability and quality, listing specific checks (RFC-5322, MX, disposable, role). This verb+resource description distinguishes it from sibling tools like dns_lookup or whois_lookup which are not email-specific.

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?

Explicitly recommends use before email campaigns, signups, or list cleaning. While it doesn't explicitly state when not to use or mention alternatives, the context is clear enough for an agent to decide.

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

validate_ibanA

Validate an IBAN (International Bank Account Number) and decode its components.

Validates the IBAN checksum algorithm and structure for 80+ participating
countries. Returns decoded bank and account information derived from the
IBAN format (note: does not confirm the account is live or funded).

Args:
    iban: IBAN string to validate. Spaces are allowed and ignored
          (e.g. 'GB29 NWBK 6016 1331 9268 19' or 'GB29NWBK60161331926819').

Returns:
    valid (bool): True if the IBAN passes checksum and format validation.
    iban: Normalised IBAN with no spaces.
    country_code: ISO country code.
    check_digits: The two check digits (positions 3-4).
    bban: Basic Bank Account Number (country-specific format).
    bank_code: Bank identifier extracted from the BBAN (where applicable).
    account_number: Account number portion of the BBAN.
ParametersJSON Schema
NameRequiredDescriptionDefault
ibanYes

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description fully covers behavioral traits: validates checksum/structure, allows spaces, returns decoded components, and explicitly states it does not check account activity. No contradictions.

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 well-structured with a summary, note, args, and returns sections. It is concise with no redundant sentences; every sentence adds value.

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?

Given the tool has one parameter and no output schema, the description is thorough. It lists all return fields (valid, iban, country_code, etc.), explains the validation scope, and notes limitations. It is complete for its purpose.

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

Parameters5/5

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

The schema provides no description for the 'iban' parameter (0% coverage). The description adds detailed semantics: explanation of the parameter, that spaces are allowed and ignored, and provides example values, significantly aiding the agent.

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 validates and decodes IBANs, with a specific verb and resource. It distinguishes itself from siblings by focusing on IBAN specifically, which is different from email validation or DNS 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?

It explains what the tool validates (checksum and structure) and explicitly notes it does not confirm account existence ('does not confirm the account is live or funded'). This provides when-to-use and limitations, though it lacks explicit when-not-to-use mentions.

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

validate_vatA

Validate a European VAT registration number and return company details.

Queries the EU VIES (VAT Information Exchange System) database in real-time
to confirm the VAT number is currently registered and active. Returns the
registered company name and address. Essential for B2B invoice validation,
zero-rating intra-EU supplies, and customer due diligence.

Note: VIES can return 'SERVICE_UNAVAILABLE' during planned maintenance
(typically weekends). The response includes a 'source' field indicating
whether data came from live VIES or a cached fallback.

Args:
    vat_number: VAT number including the two-letter country prefix
                (e.g. 'GB123456789', 'DE123456789', 'FR12345678901').
                Spaces and dashes in the number are ignored.

Returns:
    valid (bool): True if the VAT number is active in VIES.
    country_code: ISO country code of the VAT registration.
    vat_number: Normalised VAT number without country prefix.
    company_name: Registered business name (may be '---' if VIES withholds).
    address: Registered business address (may be '---' if VIES withholds).
    request_date: Date of the VIES query (ISO 8601).
ParametersJSON Schema
NameRequiredDescriptionDefault
vat_numberYes

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations provided, the description fully carries the burden. It discloses real-time VIES query, potential 'SERVICE_UNAVAILABLE' during maintenance, a 'source' field indicating cached fallback, and details on return fields. This provides comprehensive behavioral insight.

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 well-structured with a front-loaded purpose sentence, followed by context, notes, and parameter/return details. While slightly verbose, every sentence adds value. It earns a high score for clarity and logical flow.

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?

Given no output schema, the description lists all expected return fields (valid, country_code, vat_number, company_name, address, request_date) and mentions edge cases ('---' if VIES withholds). For a single-parameter tool with no output schema, this is complete.

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

Parameters5/5

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

Schema coverage is 0%, but the description compensates fully. It explains the vat_number parameter in detail: includes two-letter country prefix, provides examples ('GB123456789', etc.), and notes that spaces and dashes are ignored. This adds significant meaning 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 'Validate' and resource 'European VAT registration number', clearly distinguishing it from sibling validation tools (e.g., validate_email, validate_iban) by specifying 'European VAT' and use cases like 'B2B invoice validation'.

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 explicitly states when to use the tool: 'Essential for B2B invoice validation, zero-rating intra-EU supplies, and customer due diligence.' It does not explicitly state when not to use or list alternatives, but the context from sibling tools makes the usage clear.

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

whois_lookupA

Retrieve WHOIS registration data for a domain name.

Returns publicly available registration details from WHOIS databases.
Useful for domain due diligence, checking expiry before purchasing,
identifying registrar, or investigating domain ownership.

Note: Many registrars apply GDPR redaction to registrant contact details.
Technical data (nameservers, dates, registrar) is always available.

Args:
    domain: Domain to look up (e.g. 'example.com'). Supports most TLDs.

Returns:
    registrar: Registrar name and IANA ID.
    registered_at: Domain creation date (ISO 8601).
    expires_at: Expiry date — domain may be purchased after this.
    updated_at: Last modification date.
    nameservers: List of authoritative nameservers.
    status: EPP status codes (e.g. clientTransferProhibited).
    registrant: Registrant contact (may be redacted under GDPR).
ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

TDQS

A4.8/5.0
Behavior5/5

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

No annotations are provided, so the description carries full burden. It discloses GDPR redaction effects on contact details and notes that technical data is always available, providing transparency beyond the basic action.

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 efficiently structured with an intro, a note, and clear Args/Returns sections. It is front-loaded with the main purpose and every sentence adds value without redundancy.

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?

Despite no output schema, the description details all expected return fields with types and notes. It covers limitations (GDPR), making it complete for a look-up tool of moderate complexity.

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

Parameters5/5

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

The single parameter 'domain' is described with format and example ('example.com') and TLD support, adding significant meaning beyond the schema's type definition. Coverage is 0% in schema, but description fully compensates.

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 retrieves WHOIS registration data for a domain name, using a specific verb and resource. It is distinct from sibling tools like dns_lookup or ip_lookup, with no ambiguity.

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 lists use cases such as domain due diligence, expiry checking, and registrar identification. While it does not explicitly state when not to use the tool or mention alternatives, the context is clear and actionable.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 6 tool updatesv0.3.5
    • Addedcheck_grammar
    • Addedgenerate_hash
    • Addedgenerate_uuid
    • Addedsummarize_text
    • Addedtranslate_text
    • Addedvalidate_vat
  2. 17 tool updates
    • First observedcheck_password_breach
    • First observeddecode_jwt
    • First observeddns_lookup
    • First observedgenerate_qr
    • First observedhtml_to_pdf
    • First observedip_lookup
    • First observedparse_cron
    • First observedparse_og_tags
    • First observedreadability
    • First observedredact_text
    • First observedscreenshot_url
    • First observedsentiment_analysis
    • First observedssl_check
    • First observedtech_stack
    • First observedvalidate_email
    • First observedvalidate_iban
    • First observedwhois_lookup

TDQS

A4.4/5.0
Disambiguation5/5

Each tool targets a completely distinct domain (email, DNS, WHOIS, SSL, IP, web scraping, text analysis, QR, IBAN, cron, JWT, PDF, password breach). There is no functional overlap; the boundaries between tools are clear and unambiguous.

Naming Consistency5/5

All tool names follow a consistent verb_noun or adjective_noun pattern in lowercase snake_case (e.g., validate_email, dns_lookup, generate_qr). The naming is descriptive and predictable, making it easy for an agent to infer tool purpose from name alone.

Tool Count4/5

With 17 tools, the server is on the larger side but remains well-scoped for a general-purpose internet utilities toolkit. Each tool serves a distinct and useful function; however, the broad scope may require careful tool selection to avoid overwhelming an agent.

Completeness4/5

The tool set covers a comprehensive range of common developer needs (email validation, DNS, SSL, IP geolocation, web scraping, text analysis, PII redaction, QR, IBAN, cron, JWT, PDF conversion, password breach checking). Minor gaps exist (e.g., no domain availability check or URL parsing), but the surface is largely complete for its intended domain.

Maintenance

ActivityActive
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Multi-tool MCP server for AI agents with 29 tools across web scraping, SEO analysis, screenshot and PDF generation, domain intelligence, content extraction, multi-chain EVM blockchain queries, and security toolkit. Free tier available with no auth required.
    22
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Security intelligence API for AI models. CVE lookup with EPSS/KEV, domain recon (DNS, WHOIS, SSL, subdomains, WAF), and code security checks (secrets, injection, headers). 16 tools, no API key required.
    55
    33
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Domain security reconnaissance for AI agents — 13 tools (DNS+DNSSEC, SSL/TLS, HTTP security headers, SPF/DKIM/DMARC email auth, port scan, ASN, RDAP/WHOIS) plus a one-shot security_scan returning a 0–100 Health Score (A–F). Free, no API key.
    13
    56
    1
    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
    15
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ForeverTools/kiprio-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server