The whatismynetip.com toolbox as MCP tools: subnet math, port and MAC lookups, DNS, DNSBL, TLS certificate inspection, public IP. No account, no telemetry.
Strong foundation with 11 well-scoped tools, all with clear descriptions (avg 180 chars, within 10-1024 baseline). All tools have complete input schemas with typed properties and descriptions. Naming follows verb_noun convention (subnet_calc, ip_in_subnet, dns_lookup). However, output schemas are not documented, LLMs cannot predict response structure for chaining. Parameter descriptions are good but lack format constraints (e.g., 'CIDR notation like 10.0.0.0/24' instead of regex). No tool annotations (readOnlyHint, idempotentHint) despite all being read-only. Error handling is implicit (no recovery guidance in descriptions). Missing: pagination guidance for dns_lookup results, explicit timeout/rate-limit notes for external calls (dns, tls, public IP).
Resolve a DNS name over DNS-over-HTTPS. Record types: A, AAAA, MX, TXT, NS, CNAME, CAA, SOA, PTR, SRV. Returns every answer with its TTL, and says why when there is none (NXDOMAIN vs no record of that type).
Check an IPv4 address against five common spam/abuse blocklists (Spamhaus ZEN, SpamCop, SORBS, Barracuda, s5h). Honest about lists that refuse public-resolver queries — those come back n/a, never a false 'clean'.
Convert an IPv4 address between dotted decimal, unsigned 32-bit integer, hex and dotted binary. Accepts any of the four as input.
Check whether an IP address falls inside a CIDR block, and show that block's first-to-last range. IPv4 and IPv6.
Show the fully expanded form and the correct RFC 5952 compressed form of an IPv6 address, plus what kind of address it is (global, ULA, link-local, loopback, documentation…).
What runs on a port and whether it is safe to expose. Covers the 100 ports whatismynetip.com documents by hand: service, protocols, category, common software, an exposure verdict (never / caution / normal) with the reasoning, and related ports. Give a port number, or a query like 'redis' or 'wireguard' to search by service. detail:true adds the full explainer and FAQ.
Output schemas not documented. LLMs cannot predict response structure (fields, types, nesting) for downstream tool chaining or data extraction. Breaks pattern:tool-chain and pattern:response-shaper.
No tool annotations (readOnlyHint, idempotentHint, destructiveHint). All 11 tools are read-only and idempotent, but LLMs cannot infer this without explicit hints. Violates pattern:tool-annotation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
Identify the vendor behind a MAC address from the full IEEE MA-L registry (about 40,000 assignments, bundled — no network), and decode the multicast and locally-administered bits. Explains randomised/privacy MACs.
The public IP address the internet sees this machine as, with the edge location that saw it, reverse DNS, the network's ASN and organisation, and a datacenter/VPN hint. Needs an outside observer, so this one talks to Cloudflare's trace endpoint and Team Cymru's ASN DNS.
PTR lookup for an IPv4 or IPv6 address — what name the address maps back to, if any.
Work out a subnet from a CIDR or an address plus dotted mask: network, netmask, wildcard, broadcast, usable host range and counts. IPv4 and IPv6. Handles /31 point-to-point and /32 host routes correctly.
Connect to a public host and report the TLS certificate it actually serves: subject, issuer, validity window and days left, SANs, protocol and cipher, whether the chain verifies, and the SHA-256 fingerprint. Any port (default 443). Accepts a URL. Refuses hosts that resolve to private or reserved addresses.
Parameter descriptions lack format constraints. E.g., 'cidr' param says 'e.g. 10.10.1.0/24' but no regex or format spec. 'port' accepts 0 - 65535 but no min/max in schema. Violates pattern:constrained-input.
External service calls (dns_lookup, reverse_dns, dnsbl_check, tls_inspect, my_public_ip) lack timeout/retry guidance in descriptions. No error recovery hints (e.g., 'If DNS fails, try a different resolver'). Violates pattern:recovery-guide.
my_public_ip has empty inputSchema (no properties). Description mentions 'Needs an outside observer' but no parameters documented. Unclear if this is intentional or incomplete.