DC5 WHOIS
Server Details
WHOIS, RDAP, DNS, IP / ASN / CIDR and Web3 name (ENS, Unstoppable, Handshake) lookups. No API key.
- Status
- Healthy
- Uptime
- 100.0% over 23 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 8 tools
Each tool has a distinct role: lookup_target is the broad single-target fact sheet, lookup_many is explicitly bulk, and the check_* tools are specialised validations. The descriptions explicitly clarify boundaries such as lookup_target vs check_mail_security, check_lookalike, and check_route, so an agent can select correctly.
All names use lowercase snake_case with clear verb-led prefixes: check_*, get_*, list_*, and lookup_*. The different verbs reflect meaningful functional categories rather than inconsistent naming.
Eight tools are well scoped for a domain/network intelligence server, covering single lookup, bulk lookup, mail security, lookalike screening, route and ASPA validation, TLD facts, and dataset provenance. No tool feels redundant or missing at the count level.
The surface covers the core lifecycle for WHOIS/network intelligence: single and bulk lookups, mail security, route authorization, ASPA paths, TLD facts, and dataset freshness. Minor gaps remain around bulk specialised route/ASPA checks, historical/raw WHOIS records, and certificate or SMTP TLS inspection, but lookup_target and details_url provide reasonable workarounds.
Available Tools
8 toolscheck_aspa_pathVerify an AS path with ASPAARead-onlyIdempotentInspect
Check an AS_PATH against the published ASPA objects (RPKI attestations of which providers a network authorises), following the verification procedure of draft-ietf-sidrops-aspa-verification. The result is valid, invalid or unknown, with the reason and the first hop that broke the path.
Use it to find out whether a path shows a route leak or an unauthorised provider. "Unknown" only means some network on the path published no ASPA; it is not a fault.
Behavior: offline, answered from the local RPKI snapshot. The procedure is an Internet-Draft, not an RFC, and the neighbor-AS and AS_SET prerequisite checks of a real router are left out. Only the path is read; it is neither stored nor logged.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | the AS_PATH as seen by the receiver, neighbor first and origin last, separated by spaces or commas, e.g. 3356 1299 14041 194 (every hop is an AS number, with or without the AS prefix). Prepending is fine; an AS_SET {..} is refused | |
| direction | No | upstream (default): the route came from a customer or peer; downstream: it came from a provider |
Output Schema
| Name | Required | Description |
|---|---|---|
| path | Yes | the path after removing repeated ASes, neighbor first |
| reason | No | |
| outcome | Yes | valid, invalid or unknown (no attestation for some hop). Informational; follows an Internet-Draft, not an RFC |
| summary | Yes | the human-readable result, the same text as the text content |
| direction | Yes | |
| aspa_count | No | number of ASes with an ASPA in the loaded set |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (readOnly, idempotent, closed-world) by disclosing that evaluation is offline against a local RPKI snapshot, that the procedure is an Internet-Draft rather than an RFC, and that real-router neighbor-AS and AS_SET prerequisite checks are omitted. It also states the path is neither stored nor logged, which is information the agent cannot get from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action and result semantics, then uses short paragraphs for interpretation and caveats. Slightly longer than strictly necessary (the draft/RFC caveat and the 'not stored or logged' note both appear), but every sentence carries usable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described; the description instead covers the things it must — offline operation, draft-stage procedure, omitted prerequisite checks, and how to read 'unknown'. Nothing an agent needs to call or interpret this tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both 'path' and 'direction' are already documented, including ordering, separators and AS_SET refusal. The description reinforces that 'only the path is read' but adds no new syntax or semantics, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Check an AS_PATH against the published ASPA objects') and defines ASPA inline, so the agent knows this is ASPA-based path validation rather than a generic route lookup. The stated aim ('find out whether a path shows a route leak or an unauthorised provider') further scopes it, but no sibling such as check_route is named for contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear use case (detecting route leaks / unauthorised providers) and pre-empts a likely misreading by explaining that 'unknown' means a missing ASPA publication, not a fault. It offers no explicit when-not conditions or named alternatives, so the routing guidance stops short of the top band.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_lookalikeLook-alike (homograph) checkARead-onlyIdempotentInspect
Check whether one domain or Web3 name is a visual look-alike (homograph): letters from different scripts mixed in one label, or every non-ASCII letter having a Latin twin, so раураl.com reads as paypal.com. Returns the scripts used and the Latin name it imitates.
Use it to screen candidate or incoming names quickly (phishing triage, brand monitoring). lookup_target already includes this warning for the name it looks up, so there is no need to call both for one name.
Behavior: offline and instant; no DNS, registry or network call. It catches script tricks only, not typos or digit swaps such as paypa1.com, so a clean result does not mean the domain is safe.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | one domain or Web3 name, Unicode (раураl.com) or punycode (xn--...); a full URL is not accepted |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | name in Unicode form |
| scripts | No | scripts the letters come from |
| look_alike | Yes | |
| looks_like | No | the Latin name it imitates |
| mixed_script | No | one label mixes scripts |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only establish that this is a safe read (readOnlyHint, idempotentHint, openWorldHint=false), but the description adds substantial context beyond them: it is offline and instant with no DNS/registry/network call, and it discloses a real limitation — it catches script tricks only, not typo or digit swaps (paypa1.com), so a clean result does not mean the domain is safe. This is unusually rich behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the definition and example, then usage/routing, then behavior and limitations. Every sentence earns its place; no filler or restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, offline, read-only tool with an output schema already covering return values, the description supplies the remaining essentials: scope of detection, negative-result caveat, and sibling routing. Nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema already documents the single 'name' parameter including the Unicode/punycode formats and the rejection of full URLs. The description contributes only an illustrative example, so it neither extends nor contradicts the schema — the baseline 3 for a fully covered parameter is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (check a domain/Web3 name for visual look-alike/homograph) and defines the concept concretely with a worked example ('раураl.com reads as paypal.com'). An agent can distinguish it from lookup_target and the other siblings without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit use cases (phishing triage, brand monitoring, screening candidate or incoming names) and an explicit alternative with a routing rule: lookup_target already includes this warning, so don't call both for one name. That is exactly when-to-use plus when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_mail_securityMail security gradeARead-onlyIdempotentInspect
Grade one domain's email authentication and list every check: SPF (single record, the 10 DNS-lookup limit across includes, the all qualifier), DMARC (policy, inheritance from the organizational domain, pct, report addresses), MTA-STS, TLS-RPT, BIMI, DANE and null MX. The level is strong, fair, weak, no_mail (domain declares it sends no mail) or none (no MX, SPF or DMARC at all).
Use it for questions about spoofing, deliverability or a DMARC rollout. lookup_target gives only the overall grade; this tool gives the status and a one-line finding for each check.
Behavior: reads public DNS only and never connects to the domain's mail servers, so it cannot test SMTP TLS, certificates or whether a mailbox exists. Usually under 2 s.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | registered domain or subdomain whose mail setup to grade, e.g. example.com; Unicode or punycode. Not an email address and not a mail server host name |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | Yes | strong, fair, weak, no_mail, or none when the domain has no mail setup |
| checks | Yes | |
| domain | Yes | |
| details_url | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld, and the description goes further with genuinely non-obvious behavioral facts: it reads public DNS only, never connects to mail servers, and therefore cannot test SMTP TLS, certificates, or mailbox existence. It also commits to a latency bound (under 2 s), which helps an agent decide between one bulk call and many.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then scope, then routing guidance, then limits — a logical order with no filler sentences. The check enumeration is dense but every clause maps to a real output field, so only its length keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-shape explanation is not required; the description instead supplies what the schema cannot — the meaning of the grade levels (strong/fair/weak/no_mail/none) and the tool's hard limitations. Nothing an agent needs to invoke or interpret it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single 'domain' parameter is already well documented in the schema (registered domain or subdomain, not an email address or mail server host). The description adds no additional input semantics, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (grade) and resource (one domain's email authentication), then enumerates the exact checks covered (SPF limit/all qualifier, DMARC inheritance/pct, MTA-STS, TLS-RPT, BIMI, DANE, null MX). It explicitly distinguishes itself from the sibling lookup_target, so an agent can route correctly without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit trigger scenarios ('spoofing, deliverability or a DMARC rollout') and a direct comparison to the alternative: lookup_target gives only the overall grade, while this tool returns per-check status and a one-line finding. The when-to-use-this-vs-sibling decision is fully resolved.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_routeCheck a prefix against an origin ASARead-onlyIdempotentInspect
Check one (prefix, origin AS) pair against the public records: RPKI route origin validation (RFC 6811), the routing registries (IRR route objects) and how many RIPE RIS peers see that origin for the prefix.
Use it to answer whether an AS is authorised to originate a prefix, why a route may be dropped by networks that filter on RPKI, or whether a registry object matches an announcement. For everything about one prefix or AS use lookup_target instead.
Behavior: offline, answered from local snapshots; the result lists only the datasets this instance has loaded. RPKI "invalid" can be a stale ROA and an IRR object is a claim, so neither is proof of a hijack or of authorisation. A prefix RIS does not see may still be announced to peers it does not have.
| Name | Required | Description | Default |
|---|---|---|---|
| origin | Yes | the origin AS number to check the prefix against, written AS13335; a bare number is not an ASN | |
| prefix | Yes | one announced or planned prefix in CIDR form, IPv4 or IPv6, e.g. 1.1.1.0/24 or 2606:4700::/32; host bits are ignored. A bare address or a range is not accepted |
Output Schema
| Name | Required | Description |
|---|---|---|
| irr | No | routing registry check: match, less_specific, mismatch or none; absent without an IRR dataset. A registry object is a claim, not an authorisation |
| rpki | No | route origin validation of (prefix, origin): valid, invalid or not_found; absent without a VRP set. Informational |
| origin | Yes | |
| prefix | Yes | the prefix with host bits cleared |
| seen_by | No | number of RIPE RIS peers that see this origin for the prefix |
| summary | Yes | the human-readable result, the same text as the text content |
| announced | No | whether the routing table lists this exact prefix with this origin; absent without a routing table |
| details_url | No | the result page of the prefix |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/closed-world, but the description adds information they cannot carry: the tool is answered from local offline snapshots whose dataset coverage varies by instance, and the result only lists datasets actually loaded. It also pre-empts two classic misinterpretations — RPKI invalid may be a stale ROA and an IRR object is only a claim, neither proving hijack or authorisation, and absent RIS visibility does not mean the prefix is unannounced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with what is checked and why it matters, then a clearly labelled Behavior section. The caveat paragraph is longer than typical but each clause prevents a specific real-world misreading; only minor trimming would be possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need no explanation; the description instead supplies the interpretive context an agent needs — offline snapshot provenance, variable dataset coverage, and the limits of each signal. Nothing required to call or interpret the result is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description reinforces the key constraint that this is exactly one pair at a time rather than a batch, which shapes how an agent should call it. It does not restate formats (AS13335, CIDR) since the schema already does that thoroughly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the exact input (one prefix, origin AS pair) and the three concrete datasets consulted (RPKI ROA validation per RFC 6811, IRR route objects, RIPE RIS peer visibility). It explicitly contrasts with lookup_target, so an agent can distinguish it from siblings without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives three concrete question shapes this answers (is an AS authorised to originate, why a route is dropped by RPKI filtering, does a registry object match an announcement) and explicitly routes all prefix-wide or AS-wide questions to lookup_target. Both when-to-use and when-to-use-something-else are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tld_infoTop-level domain factsARead-onlyIdempotentInspect
Facts about one top-level domain from local datasets: whether it is delegated in the root zone, its type (country-code or infrastructure when derivable), the registry's RDAP server, root-zone name servers, whether the root zone publishes a DS record (DNSSEC) and which DS algorithms, and any Web3 namespace that claims the same label (for example .eth, .crypto, .bnb, or a collision such as .xyz).
Use it to answer where to send an RDAP query for a TLD, whether a TLD is signed, or whether a name under it could mean something else on a blockchain. For one domain use lookup_target instead.
Behavior: offline and instant, answered from synced IANA and root-zone data; makes no network call. A field without data is omitted, never guessed. Registry operator and delegation date are not included.
| Name | Required | Description | Default |
|---|---|---|---|
| tld | Yes | one top-level domain with or without the leading dot, e.g. com, .de, xn--p1ai or рф. A full domain name is not accepted |
Output Schema
| Name | Required | Description |
|---|---|---|
| tld | Yes | the TLD in ASCII (punycode) form |
| type | No | country-code or infrastructure, when derivable |
| dnssec | No | the root zone publishes a DS record for the TLD |
| summary | No | the human-readable fact sheet, the same text as the text content |
| unicode | No | |
| collision | No | delegated in the root zone and also a Web3 namespace |
| delegated | Yes | delegated in the root zone |
| details_url | No | the TLD page |
| nameservers | No | root-zone name servers |
| rdap_server | No | |
| ds_algorithms | No | |
| web3_namespaces | No | Web3 namespaces that claim this label |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, closed-world and idempotent, yet the description still adds substantive context: it is answered from synced IANA and root-zone data, makes no network call, is instant, and fields without data are omitted rather than guessed. It also scopes negatively by naming two fields deliberately absent (registry operator, delegation date), which prevents false expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded: contents first, then usage, then behavior, each in its own paragraph. The one weakness is the very long first sentence, which packs six field groups into a single clause chain and costs more reading effort than a short bulleted list would.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a single parameter, an output schema carrying the return shape, and annotations covering safety, the description supplies exactly the remaining pieces: data provenance, offline behavior, omission policy, scope exclusions and the sibling alternative. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single tld parameter is fully documented there, including examples, leading-dot tolerance and the punycode/unicode case. The description adds no parameter-level meaning beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb and resource ('facts about one top-level domain') and enumerates exactly which facts are returned (delegation, type, RDAP server, name servers, DS/DNSSEC, Web3 namespace collisions). The closing line of the usage paragraph explicitly separates it from the sibling lookup_target, so the agent can distinguish it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Three concrete use cases are given ('where to send an RDAP query for a TLD, whether a TLD is signed, or whether a name under it could mean something else on a blockchain') plus an explicit redirect: 'For one domain use lookup_target instead.' That is when-to-use plus the alternative, nothing left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_data_sourcesData sources and freshnessARead-onlyIdempotentInspect
List the local datasets and feeds behind lookup_target (RIR delegations, IANA, Public Suffix List, cloud / CDN ranges, Tor and Private Relay, reputation lists, GeoLite2) with state, record count, generation date and a stale flag.
Use it to judge how current a reputation, RIR, cloud or geolocation answer is, or to explain why such a section is missing from a lookup (dataset not loaded or stale). Registry, DNS and Web3 data are fetched live and are not listed here.
Behavior: takes no arguments and makes no external calls.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| datasets | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld=false and idempotent, so the safety profile is covered; the description still adds useful behavior: no arguments, no external calls, and the fact that live-fetched sources never appear in this listing. It stops short of saying how often dataset state changes or how to refresh, but the marginal value over the annotations is real.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then usage, then behavior in three tight paragraphs with no filler. The parenthetical dataset enumeration is long, but it is the one piece of content that tells an agent what coverage to expect, so it largely earns its space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the annotations carry the safety/idempotency profile. For a zero-argument inventory tool the description covers purpose, the decision context, the exclusion set, and the no-side-effects guarantee — nothing an agent needs to invoke it correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which is the baseline-4 case, and the description confirms this explicitly ('takes no arguments'), removing any question of whether filtering arguments are available. There is nothing further to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('list the local datasets and feeds behind lookup_target') and enumerates the dataset families covered (RIR, IANA, PSL, cloud/CDN, Tor/Private Relay, reputation, GeoLite2). It also returns concrete fields (state, record count, generation date, stale flag), so an agent can distinguish this inventory tool from lookup_target immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use it ('judge how current a reputation, RIR, cloud or geolocation answer is', 'explain why such a section is missing') and draws a clear exclusion boundary: registry, DNS and Web3 data are fetched live and are not listed here. Both the trigger and the non-coverage are spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_manyLook up several targets at onceARead-onlyIdempotentInspect
Look up up to 10 domains, IPs, CIDRs, ASNs or Web3 names in one call and get one short line per target (type, registrar and expiry, nameservers, network owner, origin AS, cloud, reputation, Web3 status) plus the same facts as structured fields and a details_url for each.
Use it to triage a list, for example the domains in a phishing report or the IPs in a log excerpt. For the full fact sheet of one target use lookup_target.
Behavior: each target is a live lookup like lookup_target and counts against the same rate limit, so a long list can hit it; targets that were refused say so and can be retried later. Up to 3 run at once, the whole call is cut off after about 22 s and targets that did not finish say so. One failing target does not fail the others.
| Name | Required | Description | Default |
|---|---|---|---|
| queries | Yes | up to 10 targets, each as for lookup_target: domain, IP, CIDR, ASN written as AS15169, or Web3 name. Duplicates are dropped |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | one entry per target, in the order given |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/openWorld/idempotent annotations, it discloses live lookup behavior, shared rate limits, partial failures, retryable refusals, concurrency of up to 3, and an approximately 22-second cutoff. These are meaningful operational constraints that an agent would otherwise not know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the batch purpose and output shape, followed by usage guidance and then operational behavior. Each sentence contributes useful selection or invocation context without filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists, the description still summarizes the return content and covers rate-limit, timeout, concurrency, and partial-failure behavior. Given the tool's batch complexity and open-world annotations, it is complete enough for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single queries parameter is already fully documented, including the 10-target cap, supported target forms, and duplicate dropping. The description restates the target types and limit but adds little parameter-level meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific batch lookup action, enumerates supported target types, and explains the per-target result shape. It also explicitly differentiates from the single-target sibling by directing users to lookup_target for a full fact sheet.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete triage examples such as domains in a phishing report or IPs in a log excerpt, and it names lookup_target as the alternative for single-target full fact sheets. The usage boundary between batch and single lookup is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_targetWHOIS / RDAP / DNS / network / Web3 lookupARead-onlyIdempotentInspect
Look up one domain, IP address, CIDR block, ASN (AS15169), EVM address (0x…) or Web3 name (ENS .eth, Unstoppable, SPACE ID .bnb, Handshake hns:) and get a compact fact sheet. Domains: registrar, dates, status, nameservers, DNS records, overall mail-security grade, third-party services seen in DNS, possibly dangling records. IPs, CIDRs and ASNs: network owner, origin AS, RIR, cloud / CDN provider, Tor or iCloud Private Relay tag, geolocation, abuse contact, local reputation. Web3 names: registration status, addresses, records, ENS expiry. A 0x EVM address: its ENS primary name on Ethereum, Base, Optimism, Arbitrum, Linea and Scroll (reverse lookup). A look-alike warning is added when the name uses deceptive letters.
Use it first for any question about who owns, runs, hosts or registered something. Prefer check_mail_security when you need each email check rather than the grade, and check_lookalike to screen many names without network calls.
Behavior: queries registries, DNS and (for Web3) blockchain RPC live, usually in 1-5 s, at most about 12 s. If one source fails, the rest is still returned and the failure is listed under errors. Reputation covers local blocklists only: no match is not a clean bill of health. Queries are not logged or stored. The result ends with details_url, the full page with every record and its provenance.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | what to look up: a domain (example.com, münchen.de), IPv4 / IPv6 address, CIDR (8.8.8.0/24), ASN written as AS15169 (a bare number is not an ASN), a Web3 name (vitalik.eth, brad.crypto, spaceid.bnb, bonfida.sns, hns:name), or an EVM address (0xd8dA…6045) to find its ENS primary names | |
| namespace | No | optional; force a Web3 namespace (ens, unstoppable, spaceid, sns or hns) when a name could belong to several, e.g. a TLD that is both an ICANN TLD and a Web3 namespace. Leave empty and the namespace is detected from the name |
Output Schema
| Name | Required | Description |
|---|---|---|
| irr | No | routing registry (IRR) check of the announcement of an IP or CIDR: match, less_specific, mismatch or none; absent without IRR data. A registry object is a claim, not an authorisation |
| rpki | No | route origin validation of the announcement of an IP or CIDR: valid, invalid or not_found; absent without RIS and VRP data. Informational |
| type | Yes | target type: domain, ipv4, ipv6, cidr, asn or web3_name |
| cloud | No | cloud / CDN provider |
| query | Yes | normalized query |
| dnssec | No | DNSSEC status from the resolver: secure (resolver-validated), signed (DS present, not validated), keys (DNSKEY only) or insecure |
| errors | No | provider failures; the rest of the result is still valid |
| country | No | |
| network | No | covering CIDR or network range |
| summary | Yes | the full human-readable fact sheet, the same text as the text content |
| warnings | No | look-alike, special-purpose and namespace-collision warnings |
| addresses | No | Web3 addresses as network:address |
| origin_as | No | origin AS number for an IP |
| registrar | No | |
| anonymizer | No | tor_exit or private_relay |
| created_at | No | |
| expires_at | No | |
| reputation | No | verdict from local lists; absent when no list is loaded |
| details_url | No | full result page |
| nameservers | No | |
| web3_status | No | |
| availability | No | registered, available or unknown (domains and Web3 names) |
| network_type | No | PeeringDB network type of the AS (NSP, Content, Cable/DSL/ISP, ...), self-reported; absent when PeeringDB data is off |
| organization | No | |
| grace_ends_at | No | end of the renewal grace period (.eth names); expires_at holds the registration expiry |
| mail_security | No | strong, fair, weak or no_mail |
| primary_names | No | for a 0x address: ENS primary names as network:name (ethereum, base, optimism, arbitrum, linea, scroll) |
| peering_policy | No | PeeringDB general peering policy (Open, Selective, Restrictive, No) |
| announced_prefix | No | prefix announced in BGP (RIPE RIS) that covers an IP or CIDR; absent when RIS data is off |
| internet_exchange | No | for an address inside an internet exchange peering LAN: the exchange |
| announced_prefix_count | No | for an ASN: number of prefixes it originates (RIPE RIS) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the readOnly/openWorld/idempotent annotations: live registry-DNS-RPC queries with 1-5s typical and ~12s worst-case latency, partial-failure semantics (other sources still returned, failures listed under errors), a reputation caveat that no-match is not a clean bill of health, and a no-logging/no-storage privacy note.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then a scanning paragraph listing per-type returns, then usage routing, then behavior — a logical order with no filler. The per-type return enumeration is long and partly redundant with the output schema, which keeps it from being maximally tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-query, open-world lookup with an output schema already present, the description supplies everything needed to call it correctly: accepted input formats, latency expectations, partial-failure handling, and a pointer to details_url for full provenance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline applies; the description's format list ('AS15169', '0x…', 'hns:name') largely restates the query parameter's own schema text. The namespace parameter is left entirely to the schema, and the description adds no new parameter-level semantics such as how ambiguous names are resolved beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('look up') plus an explicit enumeration of accepted resource types (domain, IP, CIDR, ASN, EVM address, Web3 name) and what each returns. This makes it immediately distinguishable from narrow siblings like check_mail_security or get_tld_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear default rule ('use it first for any question about who owns, runs, hosts or registered something') and names two alternatives with the condition that selects them (check_mail_security for per-check detail, check_lookalike for bulk screening without network calls). It omits the obvious batch sibling lookup_many, so an agent asking about many targets is not routed.
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.
5 tool updates
- Added
check_aspa_path - Added
check_route - Added
get_tld_info - Added
lookup_many - Changed
lookup_target11 fields changed- changed
Input schema / properties / query / descriptionPrevious value: -"what to look up: a domain (example.com, münchen.de), IPv4 / IPv6 address, CIDR (8.8.8.0/24), ASN written as AS15169 (a bare number is not an ASN), or a Web3 name (vitalik.eth, brad.crypto, spaceid.bnb, bonfida.sns, hns:name)"New value: +"what to look up: a domain (example.com, münchen.de), IPv4 / IPv6 address, CIDR (8.8.8.0/24), ASN written as AS15169 (a bare number is not an ASN), a Web3 name (vitalik.eth, brad.crypto, spaceid.bnb, bonfida.sns, hns:name), or an EVM address (0xd8dA…6045) to find its ENS primary names" - added
Output schema / properties / announced_prefixAdded value: +{ + "description": "prefix announced in BGP (RIPE RIS) that covers an IP or CIDR; absent when RIS data is off", + "type": "string" +} - added
Output schema / properties / announced_prefix_countAdded value: +{ + "description": "for an ASN: number of prefixes it originates (RIPE RIS)", + "type": "integer" +} - added
Output schema / properties / dnssecAdded value: +{ + "description": "DNSSEC status from the resolver: secure (resolver-validated), signed (DS present, not validated), keys (DNSKEY only) or insecure", + "type": "string" +} - added
Output schema / properties / grace_ends_atAdded value: +{ + "description": "end of the renewal grace period (.eth names); expires_at holds the registration expiry", + "type": "string" +} - added
Output schema / properties / internet_exchangeAdded value: +{ + "description": "for an address inside an internet exchange peering LAN: the exchange", + "type": "string" +} - added
Output schema / properties / irrAdded value: +{ + "description": "routing registry (IRR) check of the announcement of an IP or CIDR: match, less_specific, mismatch or none; absent without IRR data. A registry object is a claim, not an authorisation", + "type": "string" +} - added
Output schema / properties / network_typeAdded value: +{ + "description": "PeeringDB network type of the AS (NSP, Content, Cable/DSL/ISP, ...), self-reported; absent when PeeringDB data is off", + "type": "string" +} - added
Output schema / properties / peering_policyAdded value: +{ + "description": "PeeringDB general peering policy (Open, Selective, Restrictive, No)", + "type": "string" +} - added
Output schema / properties / primary_namesAdded value: +{ + "description": "for a 0x address: ENS primary names as network:name (ethereum, base, optimism, arbitrum, linea, scroll)", + "items": { + "type": "string" + }, + "type": [ + "null", + "array" + ] +} - added
Output schema / properties / rpkiAdded value: +{ + "description": "route origin validation of the announcement of an IP or CIDR: valid, invalid or not_found; absent without RIS and VRP data. Informational", + "type": "string" +}
1 tool update
- Changed
lookup_target2 fields changed- changed
Input schema / properties / namespace / descriptionPrevious value: -"optional; force a Web3 namespace (ens, unstoppable, spaceid or hns) when a name could belong to several, e.g. a TLD that is both an ICANN TLD and a Web3 namespace. Leave empty and the namespace is detected from the name"New value: +"optional; force a Web3 namespace (ens, unstoppable, spaceid, sns or hns) when a name could belong to several, e.g. a TLD that is both an ICANN TLD and a Web3 namespace. Leave empty and the namespace is detected from the name" - changed
Input schema / properties / query / descriptionPrevious value: -"what to look up: a domain (example.com, münchen.de), IPv4 / IPv6 address, CIDR (8.8.8.0/24), ASN written as AS15169 (a bare number is not an ASN), or a Web3 name (vitalik.eth, brad.crypto, spaceid.bnb, hns:name)"New value: +"what to look up: a domain (example.com, münchen.de), IPv4 / IPv6 address, CIDR (8.8.8.0/24), ASN written as AS15169 (a bare number is not an ASN), or a Web3 name (vitalik.eth, brad.crypto, spaceid.bnb, bonfida.sns, hns:name)"
4 tool updates
- Changed
check_lookalike1 field changed- removed
Output schema / additionalPropertiesRemoved value: -false
- Changed
check_mail_security2 fields changed- removed
Output schema / additionalPropertiesRemoved value: -false - removed
Output schema / properties / checks / items / additionalPropertiesRemoved value: -false
- Changed
list_data_sources2 fields changed- removed
Output schema / additionalPropertiesRemoved value: -false - removed
Output schema / properties / datasets / items / additionalPropertiesRemoved value: -false
- Changed
lookup_target3 fields changed- removed
Output schema / additionalPropertiesRemoved value: -false - added
Output schema / properties / summaryAdded value: +{ + "description": "the full human-readable fact sheet, the same text as the text content", + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "query", - "type" -]New value: +[ + "summary", + "query", + "type" +]
4 tool updates
- First observed
check_lookalike - First observed
check_mail_security - First observed
list_data_sources - First observed
lookup_target
Publisher details
- Operator
- Not applicable
- Operator website
- https://whois.dc5.tech/
- Vendor relationship
- Independent
- Documentation
- https://whois.dc5.tech/api
- Trust center
- Not applicable
- Restrictions
- Not applicable
Related MCP Connectors
WHOIS/RDAP lookup, IP geolocation and Punycode conversion. 1400+ TLDs incl. IDN. No API key.
WHOIS/RDAP, DNS, SSL, live subdomains with IPs, and SPF/DMARC/DKIM for any domain.
Query WHOIS/RDAP information for domains, IP addresses, CIDR prefixes and ASNs. Self-hostable.
Look up any domain, IP address or AS number: hosting, DNS, registration, email, TLS and headers.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceWHOIS/RDAP domain lookup, IP geolocation and Punycode conversion. 1400+ TLDs including IDN. Public remote server, no API key.1MIT
- AlicenseNot gradedqualityAmaintenanceQuery WHOIS/RDAP information for domains, IP addresses, CIDR prefixes and ASNs. Results are normalized to RDAP-style (RFC 9083) JSON. Public instance of the open-source KincaidYang/whois server, which can also be self-hosted.66MIT
- AlicenseNot gradedqualityFmaintenanceCheck domain name availability via RDAP. Single lookups, bulk checks (up to 50), and smart name suggestions with registration links. No API key needed.MIT
- AlicenseAqualityDmaintenanceProvides comprehensive domain research tools including RDAP, WHOIS, and DNS lookup capabilities, with automatic fallback and support for 50+ TLDs.14 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.