com.ferntool/ip·DevOps

FernTool IP Lookup

IP lookup with VPN/Tor/datacenter flags, batch lookup, WHOIS (RDAP), DNS, reverse DNS, subnet math.

Stars
0
Version
1.1.0
License
MIT
Review
Passed
Last commit
1h ago
Forks
0
Open issues
0
Registry update
Oct 16, 2026
apigeolocationip-addressmcpmcp-server

Connect

remote
Terminal
$claude mcp add --transport http ip https://www.ferntool.com/mcp

Headers

Nothing to configure — it works as is.

Security review

Review passed

Reviewed 35m ago.

tools
8 tools scanned
metadata
scanned

No findings.

Tools

8
  • get_my_ip

    Return the public IP address (and ISP, ASN, location, timezone) of the caller as seen by FernTool. Note: for remote agents this is the IP of the machine calling the MCP server.

  • lookup_ip

    Validate an IPv4/IPv6 address and return its version, scope (public/private/loopback/...), country, ASN and network owner (DB-IP Lite + IPtoASN data).

  • validate_ip

    Check whether a string is a valid IPv4 or IPv6 address and classify it.

  • batch_lookup_ip

    Look up 1-100 IPv4/IPv6 addresses at once. Each result has version, scope, country, timezone, ASN, network owner and flags (is_tor, is_datacenter, provider).

  • whois_lookup

    WHOIS via RDAP for a domain (registrar, created/expiry dates, status, nameservers, DNSSEC), an IP address (network name, range, owner org, country, abuse contact) or an ASN like AS13335.

  • dns_lookup

    Resolve DNS records for a domain via Cloudflare 1.1.1.1 DNS-over-HTTPS. Types: A, AAAA, MX, TXT, NS, CNAME, SOA (default: all).

  • reverse_dns

    Reverse DNS (PTR) lookup for an IPv4/IPv6 address, with forward-confirmation check.

  • subnet_calc

    IPv4/IPv6 CIDR subnet calculator: network, netmask, wildcard, broadcast, first/last usable host, total and usable addresses, block type.

FernTool — network toolbox MCP server & free IP API

MCP License: MIT Website

FernTool is a fast, clean "what is my IP" and IP lookup tool. This repo documents its hosted, remote MCP server so AI assistants and agents (Claude, Cursor, VS Code Copilot and others) can:

  • get the caller's public IP, ISP, ASN, location and timezone
  • look up the country, ASN and network owner of any IPv4/IPv6 address
  • detect Tor exit nodes, VPN/datacenter and cloud IPs (AWS, Google Cloud, Azure, Cloudflare, DigitalOcean, Oracle, Hetzner, OVH and more)
  • batch look up to 100 IPs in one call
  • run WHOIS (RDAP) for domains, IPs and ASNs, DNS lookups (A/AAAA/MX/TXT/NS/CNAME/SOA), reverse DNS and IPv4/IPv6 subnet math
  • validate and classify IP addresses (public, private, loopback, documentation and so on)

No API key, no install, no sign-up. It's just a URL:

https://www.ferntool.com/mcp

Transport: MCP streamable HTTP (JSON-RPC 2.0, protocol 2025-06-18).

Connect

Claude Code

claude mcp add --transport http ferntool https://www.ferntool.com/mcp

Claude Desktop (claude_desktop_config.json). Use Settings → Connectors → Add custom connector with the URL above, or bridge with mcp-remote:

{ "mcpServers": { "ferntool": { "command": "npx", "args": ["-y", "mcp-remote", "https://www.ferntool.com/mcp"] } } }

Cursor (~/.cursor/mcp.json or .cursor/mcp.json)

{ "mcpServers": { "ferntool": { "url": "https://www.ferntool.com/mcp" } } }

VS Code (.vscode/mcp.json)

{ "servers": { "ferntool": { "type": "http", "url": "https://www.ferntool.com/mcp" } } }

Ready-made files are in examples/.

Tools

ToolInputWhat it returns
get_my_ipnonePublic IP of the caller (IPv4 or IPv6) with ISP, ASN, city/region/country, coordinates, timezone and is_tor / is_datacenter / provider. For remote agents, this is the IP of the machine calling the server.
lookup_ipip (string, IPv4 or IPv6)Validity, version, scope, country, timezone, ASN, network owner and flags (is_tor, is_datacenter, provider).
batch_lookup_ipips (array of 1–100 strings)lookup_ip results for every address, plus complete / retry.
validate_ipip (string)Whether it's a valid IPv4/IPv6, the expanded form and the scope (public/private/loopback/link-local/documentation/...).
whois_lookupquery (domain, IP or ASN like AS13335)RDAP record: registrar, created/expiry/updated dates, status, nameservers, DNSSEC; for IPs/ASNs the network name, range/CIDR, owner org, country and abuse contact.
dns_lookupdomain, optional types (A, AAAA, MX, TXT, NS, CNAME, SOA)Records with TTLs via Cloudflare 1.1.1.1 DNS-over-HTTPS, response status and DNSSEC validation flag.
reverse_dnsipPTR hostname(s) and whether the hostname resolves back to the IP (forward-confirmed).
subnet_calccidr (e.g. 192.168.1.0/24, 2001:db8::/48)Network, netmask, wildcard, broadcast, first/last usable, total and usable addresses, block type.

Example lookup_ip result for 8.8.8.8:

{
  "valid": true, "version": 4, "ip": "8.8.8.8", "scope": "public",
  "source": "dbip-lite+iptoasn",
  "geo": { "country": "US", "country_name": "United States", "asn": 15169, "isp": "GOOGLE",
           "timezone": "America/New_York", "timezones": ["America/New_York", "..."] },
  "flags": { "is_tor": false, "is_datacenter": true, "provider": "Google Cloud" }
}

Example validate_ip result for 2001:db8::1:

{ "valid": true, "version": 6, "ip": "2001:db8::1",
  "expanded": "2001:0db8:0000:0000:0000:0000:0000:0001", "scope": "documentation" }

Raw JSON-RPC

curl -s https://www.ferntool.com/mcp \
  -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"lookup_ip","arguments":{"ip":"8.8.8.8"}}}'

Plain HTTP API

The same data is available without MCP. There's no key, and CORS is *. Full spec: /openapi.json.

curl https://www.ferntool.com/ip              # 203.0.113.7  (plain text)
curl https://www.ferntool.com/json            # your IP + ISP, ASN, city, timezone
curl https://www.ferntool.com/api/ip/1.1.1.1  # any IPv4/IPv6 (+ timezone, Tor/datacenter flags)
curl -X POST https://www.ferntool.com/api/batch -H 'Content-Type: application/json' -d '{"ips":["8.8.8.8","1.1.1.1"]}'
curl https://www.ferntool.com/api/whois/example.com          # RDAP WHOIS (domain, IP or ASN)
curl "https://www.ferntool.com/api/dns/example.com?type=A,MX" # DNS via Cloudflare DoH
curl https://www.ferntool.com/api/reverse-dns/1.1.1.1        # PTR
curl "https://www.ferntool.com/api/subnet?cidr=10.0.0.0/22"   # subnet calculator

Python:

import json, urllib.request
print(json.load(urllib.request.urlopen("https://www.ferntool.com/api/ip/8.8.8.8")))

JavaScript:

const r = await fetch("https://www.ferntool.com/api/ip/8.8.8.8");
console.log(await r.json());

Fair use

This is a free service on a shared edge network. Please cache results and keep traffic reasonable. Network lookups (WHOIS, DNS, reverse DNS, batch) are limited to roughly 40 per minute per IP; heavy or abusive traffic may be rate-limited further.

Data attribution

  • IP geolocation by DB-IP, licensed under CC BY 4.0.
  • ASN data from IPtoASN (PDDL).
  • The caller's own location in get_my_ip comes from the Cloudflare edge.
  • Tor exit list from the Tor Project; cloud ranges published by AWS, Google Cloud, Microsoft Azure, Cloudflare, DigitalOcean and Oracle; plus a list of well-known hosting ASNs. Refreshed regularly.
  • WHOIS from registry RDAP services (IANA bootstrap); DNS from Cloudflare 1.1.1.1. Timezones for other IPs are the country's main IANA zone (tzdata).

Links

License

The contents of this repository (docs, examples, server.json) are under the MIT License. The hosted service and its data are subject to the attributions above.

From the server's repository — third-party content, read it before running anything it suggests.

More in DevOps

Listing from the official MCP Registry · repository facts from GitHub, 38m ago.