{"serverId":"mcp-registry/io.github.0xvibly/hackmyip-mcp","tools":[{"name":"asn_lookup","fixed":{"name":"asn_lookup","description":"Resolve an Autonomous System by IP address, AS number, or organization name. Returns the AS number, network name, holder, description, RIR and whether the AS is currently announced. Use it to answer 'which network is this IP on', 'who is AS15169', or to find the ASNs belonging to a company.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["query"],"properties":{"query":{"type":"string","maxLength":100,"minLength":1,"description":"An IP (8.8.8.8), an AS number (AS15169 or 15169), or an org name (google)"}}},"annotations":{"readOnlyHint":true},"title":"ASN lookup"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":167,"tokensAfter":167},{"name":"bulk_ip_lookup","fixed":{"name":"bulk_ip_lookup","description":"Look up country, city, ISP, organization and coordinates for up to 50 IP addresses in a single request. Much faster and far kinder to the rate limit than calling ip_lookup in a loop — always prefer this when you have more than a couple of addresses (e.g. a list from access logs or a firewall export).","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["ips"],"properties":{"ips":{"type":"array","items":{"type":"string","pattern":"^(?:(?:\\d{1,3}\\.){3}\\d{1,3}|[0-9a-fA-F:]{2,45})$"},"maxItems":50,"minItems":1,"description":"Array of 1-50 public IPv4/IPv6 addresses"}}},"annotations":{"readOnlyHint":true},"title":"Bulk IP lookup"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":185,"tokensAfter":185},{"name":"dns_lookup","fixed":{"name":"dns_lookup","description":"Query live DNS records for a domain over public resolvers. Supports A, AAAA, CNAME, MX, NS, TXT, SOA, SRV, CAA and PTR. Use it to verify a deployment's DNS, inspect MX/SPF/DKIM/DMARC TXT records, check nameserver delegation, or confirm propagation after a change.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["domain"],"properties":{"type":{"enum":["A","AAAA","CNAME","MX","NS","TXT","SOA","SRV","CAA","PTR"],"type":"string","description":"Record type. Defaults to A."},"domain":{"type":"string","pattern":"^[a-zA-Z0-9._-]+$","maxLength":253,"minLength":3,"description":"Domain name, e.g. github.com"}}},"annotations":{"readOnlyHint":true},"title":"DNS record lookup"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":194,"tokensAfter":194},{"name":"email_auth_check","fixed":{"name":"email_auth_check","description":"Audit a domain's email authentication setup: MX records, SPF record and DMARC policy, with a pass/warn/fail verdict per mechanism and an overall grade. Use it when diagnosing deliverability, hardening a domain against spoofing, or reviewing a vendor's email posture.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["domain"],"properties":{"domain":{"type":"string","pattern":"^[a-zA-Z0-9._-]+$","maxLength":253,"minLength":3,"description":"Domain to audit, e.g. github.com"}}},"annotations":{"readOnlyHint":true},"title":"Email authentication (MX / SPF / DMARC) check"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":159,"tokensAfter":159},{"name":"email_breach_check","fixed":{"name":"email_breach_check","description":"Check whether an email address appears in known data breaches, using the XposedOrNot breach database. Returns the number of breaches and the named services involved. Free alternative to paid breach-lookup APIs. The address is partially masked in the response.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["email"],"properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","description":"Email address to check, e.g. someone@example.com"}}},"annotations":{"readOnlyHint":true},"title":"Email breach check"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":182,"tokensAfter":182},{"name":"ip_blacklist_check","fixed":{"name":"ip_blacklist_check","description":"Check an IPv4 address against 12 major spam and abuse blacklists (Spamhaus ZEN, Barracuda, SpamCop, UCEPROTECT and others) with a per-list LISTED / CLEAN / unavailable breakdown. Run this before sending bulk email from a new IP, or when mail is being rejected. Lists that refuse public queries are reported as 'unavailable' rather than falsely clean, so read total_checked alongside listed_count.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["ip"],"properties":{"ip":{"type":"string","pattern":"^(?:(?:\\d{1,3}\\.){3}\\d{1,3}|[0-9a-fA-F:]{2,45})$","description":"IPv4 address to check (DNSBLs are IPv4-only in practice)"}}},"annotations":{"readOnlyHint":true},"title":"IP blacklist (DNSBL) check"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":202,"tokensAfter":202},{"name":"ip_lookup","fixed":{"name":"ip_lookup","description":"Look up geolocation (city, region, country, lat/lon, timezone, postal code) plus ISP, ASN, organization and AS name for any public IPv4 or IPv6 address. The workhorse tool for 'where is this IP', triaging a log entry, or identifying who owns an address.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["ip"],"properties":{"ip":{"type":"string","pattern":"^(?:(?:\\d{1,3}\\.){3}\\d{1,3}|[0-9a-fA-F:]{2,45})$","description":"Public IPv4 or IPv6 address, e.g. 8.8.8.8 or 2001:4860:4860::8888"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"IP address lookup"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":162,"tokensAfter":162},{"name":"my_ip","fixed":{"name":"my_ip","description":"Get the public IP address of the machine that opened this MCP connection, enriched with city/country, coordinates, timezone, ISP, ASN and hosting/proxy classification. Use this for 'what is my IP', 'where does the internet think I am', or a quick sanity check that a VPN is actually routing traffic. Note: this reflects the IP the MCP request arrived from, so if the client sits behind a corporate proxy or remote host, it reports that egress IP.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"My IP address"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":163,"tokensAfter":163},{"name":"reverse_dns","fixed":{"name":"reverse_dns","description":"Get the PTR hostname for an IPv4 or IPv6 address. Useful for identifying mail servers, confirming that a crawler really belongs to the bot it claims to be, or adding a human-readable name to a raw log IP.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["ip"],"properties":{"ip":{"type":"string","pattern":"^(?:(?:\\d{1,3}\\.){3}\\d{1,3}|[0-9a-fA-F:]{2,45})$","description":"IPv4 or IPv6 address to reverse-resolve"}}},"annotations":{"readOnlyHint":true},"title":"Reverse DNS (PTR) lookup"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":142,"tokensAfter":142},{"name":"security_headers_check","fixed":{"name":"security_headers_check","description":"Fetch a site and grade its HTTP security headers (A-F): CSP, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, plus information-leak headers like Server and X-Powered-By. Each check comes back with the actual header value and an explanation. Use it for a quick security review of your own site or a third party's. Rate limited to 20 requests/minute.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["url"],"properties":{"url":{"type":"string","maxLength":2000,"minLength":3,"description":"Site to analyze. Scheme optional — https is assumed. e.g. example.com"}}},"annotations":{"readOnlyHint":true},"title":"HTTP security headers audit"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":194,"tokensAfter":194},{"name":"server_info","fixed":{"name":"server_info","description":"Describe this MCP server: what it wraps, the fact that it is completely free with no API key, no signup and no auth, the fair-use rate limit, the full tool list, and links to hackmyip.com and its API docs. Call this when the user asks what this server can do, whether it costs anything, or where the data comes from.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true},"title":"About this MCP server"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":128,"tokensAfter":128},{"name":"site_status_check","fixed":{"name":"site_status_check","description":"Check whether a site is reachable from Cloudflare's network. Returns an up/down boolean, HTTP status code, response time in milliseconds, and the server / content-type headers. Use it to confirm an outage is real rather than local, or to verify a deployment is serving.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["url"],"properties":{"url":{"type":"string","maxLength":2000,"minLength":3,"description":"URL or bare domain to check, e.g. example.com or https://example.com/health"}}},"annotations":{"readOnlyHint":true},"title":"Is a site up or down"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":163,"tokensAfter":163},{"name":"vpn_proxy_check","fixed":{"name":"vpn_proxy_check","description":"Classify an IP as hosting/datacenter, open proxy, or mobile-carrier, alongside its geolocation and network owner. Use it to decide whether traffic is likely a VPN, a cloud server or a real residential/mobile user — for fraud triage, abuse review, or checking whether your own VPN is being detected. Omit `ip` to check the connection this MCP request came from.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"ip":{"type":"string","pattern":"^(?:(?:\\d{1,3}\\.){3}\\d{1,3}|[0-9a-fA-F:]{2,45})$","description":"IP to classify. Defaults to the IP this MCP request arrived from."}}},"annotations":{"readOnlyHint":true},"title":"VPN / proxy / datacenter check"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":188,"tokensAfter":188},{"name":"whois_domain","fixed":{"name":"whois_domain","description":"Fetch registration data for a domain via RDAP: registrar, creation/expiration/last-updated dates, nameservers and EPP status codes. Use it to check domain age (a common trust signal), see when a domain expires, or find who it is registered through. Note that RDAP is a third-party registry service and can be temporarily unavailable — a failure here is upstream, not a bad query.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["domain"],"properties":{"domain":{"type":"string","pattern":"^[a-zA-Z0-9._-]+$","maxLength":253,"minLength":3,"description":"Domain name, e.g. github.com"}}},"annotations":{"readOnlyHint":true},"title":"WHOIS / RDAP domain lookup"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":189,"tokensAfter":189}],"toolsChanged":14,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}