Skip to main content
Glama

WHOIS / RDAP / DNS / network / Web3 lookup

lookup_target
Read-onlyIdempotent

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.

Input Schema

NameRequiredDescriptionDefault
queryYeswhat 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
namespaceNooptional; 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

NameRequiredDescriptionDefault
irrNorouting 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
rpkiNoroute origin validation of the announcement of an IP or CIDR: valid, invalid or not_found; absent without RIS and VRP data. Informational
typeYestarget type: domain, ipv4, ipv6, cidr, asn or web3_name
cloudNocloud / CDN provider
queryYesnormalized query
dnssecNoDNSSEC status from the resolver: secure (resolver-validated), signed (DS present, not validated), keys (DNSKEY only) or insecure
errorsNoprovider failures; the rest of the result is still valid
countryNo
networkNocovering CIDR or network range
summaryYesthe full human-readable fact sheet, the same text as the text content
warningsNolook-alike, special-purpose and namespace-collision warnings
addressesNoWeb3 addresses as network:address
origin_asNoorigin AS number for an IP
registrarNo
anonymizerNotor_exit or private_relay
created_atNo
expires_atNo
reputationNoverdict from local lists; absent when no list is loaded
details_urlNofull result page
nameserversNo
web3_statusNo
availabilityNoregistered, available or unknown (domains and Web3 names)
network_typeNoPeeringDB network type of the AS (NSP, Content, Cable/DSL/ISP, ...), self-reported; absent when PeeringDB data is off
organizationNo
grace_ends_atNoend of the renewal grace period (.eth names); expires_at holds the registration expiry
mail_securityNostrong, fair, weak or no_mail
primary_namesNofor a 0x address: ENS primary names as network:name (ethereum, base, optimism, arbitrum, linea, scroll)
peering_policyNoPeeringDB general peering policy (Open, Selective, Restrictive, No)
announced_prefixNoprefix announced in BGP (RIPE RIS) that covers an IP or CIDR; absent when RIS data is off
internet_exchangeNofor an address inside an internet exchange peering LAN: the exchange
announced_prefix_countNofor an ASN: number of prefixes it originates (RIPE RIS)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changed
    • changedInput schema / properties / query / description
      Previous 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"
    • addedOutput schema / properties / announced_prefix
      Added value: +{
      +  "description": "prefix announced in BGP (RIPE RIS) that covers an IP or CIDR; absent when RIS data is off",
      +  "type": "string"
      +}
    • addedOutput schema / properties / announced_prefix_count
      Added value: +{
      +  "description": "for an ASN: number of prefixes it originates (RIPE RIS)",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / dnssec
      Added value: +{
      +  "description": "DNSSEC status from the resolver: secure (resolver-validated), signed (DS present, not validated), keys (DNSKEY only) or insecure",
      +  "type": "string"
      +}
    • addedOutput schema / properties / grace_ends_at
      Added value: +{
      +  "description": "end of the renewal grace period (.eth names); expires_at holds the registration expiry",
      +  "type": "string"
      +}
    • addedOutput schema / properties / internet_exchange
      Added value: +{
      +  "description": "for an address inside an internet exchange peering LAN: the exchange",
      +  "type": "string"
      +}
    • addedOutput schema / properties / irr
      Added 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"
      +}
    • addedOutput schema / properties / network_type
      Added value: +{
      +  "description": "PeeringDB network type of the AS (NSP, Content, Cable/DSL/ISP, ...), self-reported; absent when PeeringDB data is off",
      +  "type": "string"
      +}
    • addedOutput schema / properties / peering_policy
      Added value: +{
      +  "description": "PeeringDB general peering policy (Open, Selective, Restrictive, No)",
      +  "type": "string"
      +}
    • addedOutput schema / properties / primary_names
      Added value: +{
      +  "description": "for a 0x address: ENS primary names as network:name (ethereum, base, optimism, arbitrum, linea, scroll)",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": [
      +    "null",
      +    "array"
      +  ]
      +}
    • addedOutput schema / properties / rpki
      Added 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"
      +}
  2. Changed2 schema fields changed
    • changedInput schema / properties / namespace / description
      Previous 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"
    • changedInput schema / properties / query / description
      Previous 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)"
  3. Changed3 schema fields changed
    • removedOutput schema / additionalProperties
      Removed value: -false
    • addedOutput schema / properties / summary
      Added value: +{
      +  "description": "the full human-readable fact sheet, the same text as the text content",
      +  "type": "string"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "query",
      -  "type"
      -]New value: +[
      +  "summary",
      +  "query",
      +  "type"
      +]
  4. First observed

TDQS

A4.4/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources