Koskamo

nslookup.io MCP

An MCP server providing 23 tools for DNS lookups, propagation checks, SSL certificate monitoring, security scanning, GEO scoring, and domain intelligence. It supports anonymous public lookups and authenticated access to personal monitoring accounts via OAuth.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

nslookup.io MCP logo, by NsLookup-ioCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by NsLookup-io
MCP endpoint (Streamable HTTP)
https://mcp.nslookup.io/mcp
Vendor documentation

What its tools do

23 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

23 of 23 have a description · 0 of 23 declare behavior hints · 20 of 20 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Run DNS health checks on domains
  • Check which SSL certificates expire soonest
  • Perform security scanning and GEO scoring
  • Monitor uptime and DNS propagation

Source and maintenance

Community listingRegistry 1.6.0
Maintenance checked

Protocol and capabilities

Server
nslookup 1.6.0
MCP protocol negotiated in check
2025-11-25
Tools
23 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

17 tools work anonymously. Tools prefixed my_ access your NsLookup.io monitoring account and require sign-in (OAuth) or an API token.

Tools

23 advertised

dns_lookup
Advertised by the server during the last successful anonymous check.

Look up all common DNS records (A, AAAA, NS, MX, TXT, CNAME, SOA) for a domain. Returns results from a specified DNS server.

dns_lookup input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "domain"
  ],
  "properties": {
    "domain": {
      "type": "string",
      "description": "Domain name to look up (e.g. example.com)"
    },
    "server": {
      "enum": [
        "cloudflare",
        "cloudflare2",
        "google",
        "quad9",
        "opendns",
        "authoritative",
        "southafrica",
        "australia",
        "india",
        "thenetherlands",
        "canada",
        "usa",
        "brazil",
        "ukraine",
        "russia"
      ],
      "type": "string",
      "description": "DNS server to query. Default: cloudflare. Use 'authoritative' for the domain's own nameservers."
    }
  }
}
dns_record
Advertised by the server during the last successful anonymous check.

Look up a specific DNS record type for a domain. Supports 53 record types including A, AAAA, MX, TXT, CNAME, SOA, PTR, CAA, SRV, DNSKEY, DS, TLSA, HTTPS, SPF, and more.

dns_record input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "domain",
    "type"
  ],
  "properties": {
    "type": {
      "enum": [
        "A",
        "AAAA",
        "AFSDB",
        "APL",
        "AXFR",
        "CAA",
        "CDNSKEY",
        "CDS",
        "CERT",
        "CNAME",
        "CSYNC",
        "DHCID",
        "DLV",
        "DNAME",
        "DNSKEY",
        "DS",
        "EUI48",
        "EUI64",
        "HINFO",
        "HIP",
        "HTTPS",
        "IPSECKEY",
        "IXFR",
        "KEY",
        "KX",
        "LOC",
        "MX",
        "NAPTR",
        "NS",
        "NSEC",
        "NSEC3",
        "NSEC3PARAM",
        "NXT",
        "OPENPGPKEY",
        "OPT",
        "PTR",
        "RP",
        "RRSIG",
        "SIG",
        "SMIMEA",
        "SOA",
        "SPF",
        "SRV",
        "SSHFP",
        "SVCB",
        "TA",
        "TKEY",
        "TLSA",
        "TSIG",
        "TXT",
        "URI",
        "ZONEMD"
      ],
      "type": "string",
      "description": "DNS record type (e.g. A, MX, TXT, CNAME, SPF, HTTPS, DNSKEY)"
    },
    "domain": {
      "type": "string",
      "description": "Domain name (or IP address for PTR lookups) to query (e.g. example.com)"
    },
    "server": {
      "enum": [
        "cloudflare",
        "cloudflare2",
        "google",
        "quad9",
        "opendns",
        "authoritative",
        "southafrica",
        "australia",
        "india",
        "thenetherlands",
        "canada",
        "usa",
        "brazil",
        "ukraine",
        "russia"
      ],
      "type": "string",
      "description": "DNS server to query. Default: cloudflare. Use 'authoritative' for the domain's own nameservers."
    }
  }
}
dns_propagation
Advertised by the server during the last successful anonymous check.

Check DNS propagation for a domain across 18+ global DNS servers (Cloudflare, Google, Quad9, OpenDNS, regional servers, and authoritative nameservers). Shows if DNS changes have propagated worldwide.

dns_propagation input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "domain",
    "recordType"
  ],
  "properties": {
    "domain": {
      "type": "string",
      "description": "Domain name to check propagation for (e.g. example.com)"
    },
    "recordType": {
      "enum": [
        "A",
        "AAAA",
        "AFSDB",
        "APL",
        "AXFR",
        "CAA",
        "CDNSKEY",
        "CDS",
        "CERT",
        "CNAME",
        "CSYNC",
        "DHCID",
        "DLV",
        "DNAME",
        "DNSKEY",
        "DS",
        "EUI48",
        "EUI64",
        "HINFO",
        "HIP",
        "HTTPS",
        "IPSECKEY",
        "IXFR",
        "KEY",
        "KX",
        "LOC",
        "MX",
        "NAPTR",
        "NS",
        "NSEC",
        "NSEC3",
        "NSEC3PARAM",
        "NXT",
        "OPENPGPKEY",
        "OPT",
        "PTR",
        "RP",
        "RRSIG",
        "SIG",
        "SMIMEA",
        "SOA",
        "SPF",
        "SRV",
        "SSHFP",
        "SVCB",
        "TA",
        "TKEY",
        "TLSA",
        "TSIG",
        "TXT",
        "URI",
        "ZONEMD"
      ],
      "type": "string",
      "description": "DNS record type to check (e.g. A, AAAA, MX, NS, TXT, CNAME)"
    }
  }
}
webservers
Advertised by the server during the last successful anonymous check.

Get the IP addresses (both IPv4 and IPv6) for a domain by looking up A and AAAA records. Also returns the punycode and unicode domain representations.

webservers input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "domain"
  ],
  "properties": {
    "domain": {
      "type": "string",
      "description": "Domain name to look up IP addresses for (e.g. example.com)"
    }
  }
}
ssl_certificate
Advertised by the server during the last successful anonymous check.

Check the SSL/TLS certificate for a domain. Returns issuer, expiry date, days until expiry, certificate chain validity, cipher strength, SAN domains, fingerprint, and TLS protocol version.

ssl_certificate input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "domain"
  ],
  "properties": {
    "domain": {
      "type": "string",
      "description": "Domain name to check SSL certificate for (e.g. github.com)"
    }
  }
}
bimi_vmc
Advertised by the server during the last successful anonymous check.

Check BIMI (Brand Indicators for Message Identification) and VMC (Verified Mark Certificate) for a domain. Returns BIMI DNS record status, VMC certificate details, logo URL, trademark info, and expiry.

bimi_vmc input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "domain"
  ],
  "properties": {
    "domain": {
      "type": "string",
      "description": "Domain name to check BIMI/VMC for (e.g. google.com)"
    }
  }
}
security_scan
Advertised by the server during the last successful anonymous check.

Run a security scan on a domain to detect DNS misconfigurations, missing SPF/DKIM/DMARC records, cookie security issues, and other web security vulnerabilities. Returns findings with severity levels (critical, high, medium, low, info).

security_scan input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "domain"
  ],
  "properties": {
    "domain": {
      "type": "string",
      "description": "Domain name to security scan (e.g. example.com)"
    }
  }
}
uptime_check
Advertised by the server during the last successful anonymous check.

Perform a one-time HTTP uptime check on a URL from a single location. Returns whether the site is up or down, HTTP status code, and response time in milliseconds. For multi-location checks, use uptime_check_multi instead.

uptime_check input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Full URL to check (e.g. https://github.com)"
    },
    "timeout": {
      "type": "number",
      "description": "Timeout in milliseconds (default: 10000)"
    }
  }
}
uptime_check_multi
Advertised by the server during the last successful anonymous check.

Check if a website is up or down from 7 global locations simultaneously: Amsterdam, Sydney, London, Frankfurt, Delhi, Warsaw, and South Carolina. Returns status, response time, and HTTP status code for each location.

uptime_check_multi input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Full URL to check (e.g. https://github.com)"
    },
    "timeout": {
      "type": "number",
      "description": "Timeout in milliseconds (default: 30000)"
    }
  }
}
dns_health
Advertised by the server during the last successful anonymous check.

Run a comprehensive DNS health audit on a domain — 39 checks across 7 categories: DNSSEC (chain of trust, algorithms, validation), MX & email (PTR, MTA-STS, redundancy), DNS hygiene (SPF conflicts, wildcards, apex CNAME), TTL & SOA configuration, nameserver setup (diversity, lame delegation, EDNS0), CAA certificates, and operational maturity (security.txt, abuse mailbox). Returns an overall severity-weighted score (0–100) plus per-category scores.

dns_health input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "domain"
  ],
  "properties": {
    "domain": {
      "type": "string",
      "description": "Domain name to check DNS health for (e.g. example.com)"
    }
  }
}
geo_checker
Advertised by the server during the last successful anonymous check.

Check a domain's GEO (Generative Engine Optimization) score — how well the site is optimized for AI search engines like ChatGPT, Gemini, Claude, and Perplexity. Returns three scores (Technical Readiness, Entity Readiness, Answer Readiness), AI crawler access status, structured data analysis, and prioritized recommendations.

geo_checker input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "domain"
  ],
  "properties": {
    "domain": {
      "type": "string",
      "description": "Domain name to check GEO score for (e.g. github.com)"
    }
  }
}
rdap_lookup
Advertised by the server during the last successful anonymous check.

Look up registration data (RDAP — the successor to WHOIS) for an IP address, AS number, or domain name. The query type is detected automatically. Returns the owning organization, network range/CIDR, RIR (ARIN, RIPE, APNIC, LACNIC, AFRINIC), country, status, registration/last-changed dates, nameservers, and abuse/registrant contacts, plus the raw RDAP JSON.

rdap_lookup input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "description": "What to look up: an IPv4/IPv6 address (e.g. 8.8.8.8), an AS number (e.g. AS13335 or 13335), or a domain name (e.g. example.com)"
    }
  }
}
hosting_report
Advertised by the server during the last successful anonymous check.

Find out who hosts a website. Returns the hosting provider, IP/ASN/network owner, server location, DNS/nameserver provider, CDN or proxy detection (Cloudflare, Fastly, etc.), SSL certificate issuer, and mail servers/provider for a domain in one combined report.

hosting_report input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "domain"
  ],
  "properties": {
    "domain": {
      "type": "string",
      "description": "Domain or URL to build a hosting report for (e.g. github.com). URLs are normalized to a bare hostname."
    }
  }
}
domain_scanner
Advertised by the server during the last successful anonymous check.

Scan a domain's email security posture: SPF, DKIM, DMARC, and BIMI configuration. Returns per-indicator scores and detected issues so you can see how well the domain is protected against spoofing and phishing.

domain_scanner input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "domain"
  ],
  "properties": {
    "domain": {
      "type": "string",
      "description": "Domain name to scan (e.g. example.com)"
    }
  }
}
dns_change_review
Advertised by the server during the last successful anonymous check.

Review proposed DNS changes BEFORE applying them. Compares a domain's current public DNS with a proposed future state, returns a diff, deterministic rule-based findings (SPF/DMARC/MX/CAA/DNSSEC pitfalls, dangling records, mail breakage, etc.) with suggested fixes, and an overall 0-100 risk score. Stateless — nothing is stored.

dns_change_review input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "domain",
    "records"
  ],
  "properties": {
    "domain": {
      "type": "string",
      "description": "Domain whose current public DNS will be compared against the proposed records (e.g. example.com)"
    },
    "server": {
      "enum": [
        "cloudflare",
        "cloudflare2",
        "google",
        "quad9",
        "opendns",
        "authoritative",
        "southafrica",
        "australia",
        "india",
        "thenetherlands",
        "canada",
        "usa",
        "brazil",
        "ukraine",
        "russia"
      ],
      "type": "string",
      "description": "DNS server to use when fetching the current records. Default: cloudflare."
    },
    "records": {
      "anyOf": [
        {
          "type": "string",
          "description": "Proposed DNS records as BIND zone-file text, e.g. 'example.com. 300 IN MX 10 mail.example.com.'"
        },
        {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "type",
              "value"
            ],
            "properties": {
              "ttl": {
                "type": "number",
                "description": "TTL in seconds"
              },
              "name": {
                "type": "string",
                "description": "Record name — subdomain, FQDN, or '@' for the apex (default: '@')"
              },
              "type": {
                "type": "string",
                "description": "Record type, e.g. A, AAAA, MX, TXT, CNAME, NS, CAA"
              },
              "value": {
                "type": "string",
                "description": "Record value, e.g. '93.184.216.34' or 'v=spf1 include:_spf.google.com ~all'"
              },
              "priority": {
                "type": "number",
                "description": "Priority (MX/SRV records)"
              }
            }
          },
          "description": "Proposed DNS records as a structured array"
        }
      ],
      "description": "The proposed (future) DNS state: either BIND zone-file text or an array of {type, name?, value, ttl?, priority?} records. This is the COMPLETE desired state for the zone — records present now but omitted here are treated as deletions."
    }
  }
}
bimi_check
Advertised by the server during the last successful anonymous check.

Check only the BIMI (Brand Indicators for Message Identification) DNS record for a domain — faster than bimi_vmc because it skips the VMC certificate download and validation. Returns the BIMI record at default._bimi.<domain>, logo URL, and authority (VMC) URL if declared.

bimi_check input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "domain"
  ],
  "properties": {
    "domain": {
      "type": "string",
      "description": "Domain name to check the BIMI record for (e.g. easydmarc.com)"
    }
  }
}
status_page
Advertised by the server during the last successful anonymous check.

Read a public status page hosted on nslookup.io status pages. Returns the page name, overall status, per-component status and uptime, and active incidents/maintenance. Look up by slug (pages served at hosted.nslookup.io/<slug>) or by the custom domain the page is served on. Provide exactly one of slug or domain.

status_page input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Status page slug (e.g. 'nslookup-io' for hosted.nslookup.io/nslookup-io)"
    },
    "domain": {
      "type": "string",
      "description": "Custom domain the status page is served on (e.g. status.acme.com)"
    }
  }
}
my_overview
Advertised by the server during the last successful anonymous check.

Get an account health snapshot for your NsLookup.io monitoring: an aggregated 0-100 health score with per-subsystem breakdown (uptime, SSL, DNS, propagation, VMC, WHOIS) plus your current product limits/quota. Requires sign-in to your NsLookup.io account (or an API token).

my_overview input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
my_monitors
Advertised by the server during the last successful anonymous check.

List all monitors in your NsLookup.io account across every type — uptime, API, DNS, WHOIS, DNS propagation, SSL certificates, and BIMI/VMC — with their configuration and latest known state. Requires sign-in to your NsLookup.io account (or an API token).

my_monitors input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
my_incidents
Advertised by the server during the last successful anonymous check.

List incidents from your NsLookup.io monitoring (downtime, SSL expiry, DNS changes, propagation issues, VMC problems) — open ones by default, or the full recent history — plus a per-status/per-source summary. Requires sign-in to your NsLookup.io account (or an API token).

my_incidents input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum incidents to return (default 20)"
    },
    "status": {
      "enum": [
        "open",
        "all"
      ],
      "type": "string",
      "description": "'open' (default) = unresolved incidents (triggered or acknowledged); 'all' = include resolved history"
    }
  }
}
my_uptime_history
Advertised by the server during the last successful anonymous check.

Get uptime and response-time history for one of your NsLookup.io uptime monitors: availability stats plus hourly buckets over the requested window. Identify the monitor by id or by URL. Requires sign-in to your NsLookup.io account (or an API token).

my_uptime_history input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "url": {
      "type": "string",
      "description": "Monitor URL to match instead of an id (e.g. https://example.com)"
    },
    "hours": {
      "type": "integer",
      "maximum": 720,
      "minimum": 1,
      "description": "History window in hours (default 24)"
    },
    "monitorId": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": -9007199254740991,
      "description": "Monitor id (from my_monitors)"
    }
  }
}
my_dns_changes
Advertised by the server during the last successful anonymous check.

List recent DNS changes detected on your monitored domains, each with its DNS Change Review risk assessment (0-100 risk score, severity counts, added/removed/modified record counts), plus the latest risk per monitor. Requires sign-in to your NsLookup.io account (or an API token).

my_dns_changes input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum reviews to return (default 10)"
    }
  }
}
my_certificates
Advertised by the server during the last successful anonymous check.

Get an SSL certificate expiry overview for your monitored domains: per-alert-level counts (ok / warning / critical / expired) and every certificate sorted by soonest expiry, highlighting the ones expiring within 30 days. Requires sign-in to your NsLookup.io account (or an API token).

my_certificates input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1567 ms
95th percentile latency
1567 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1567 ms · metadata changed · 23 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http nslookup-mcp https://mcp.nslookup.io/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add nslookup-mcp --url https://mcp.nslookup.io/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable nslookup-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "nslookup-mcp": {
      "url": "https://mcp.nslookup.io/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "nslookup-mcp": {
      "type": "streamableHttp",
      "url": "https://mcp.nslookup.io/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start nslookup-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "nslookup-mcp": {
      "type": "http",
      "url": "https://mcp.nslookup.io/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http nslookup-mcp https://mcp.nslookup.io/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://mcp.nslookup.io/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "nslookup-mcp": {
      "serverUrl": "https://mcp.nslookup.io/mcp"
    }
  }
}

Let your agent find its tools

Find servers like nslookup.io MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.