IP.LS — IP Lookup Service

Keyless IP geolocation, ASN/ISP, timezone and DNS records for any IP or domain, plus your own IP.

Should I use this

Quality & Safety

B
Description quality
94%
Schema completeness
58%
Naming quality
76%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (4)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domainin ip_self
  • LOWTool 'ua' description lacks action verbin ua
  • LOWTool 'ua' name length outside 3-30 rangein ua

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~707Tokens (tool definitions)
~303 BTypical response size
Moderate attention impact (0.55% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "ipls-ip-lookup-service": {
      "url": "https://ip.ls/mcp"
    }
  }
}

Remote endpoints

https://ip.ls/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢ip_lookup(ip)

Look up geolocation, ISP and network info for any IPv4/IPv6 address or hostname, or an array of them for batch lookup. Returns ip, city, region, country, coordinates, ASN/ISP, timezone and continent (full name, e.g. North America); when a domain is queried, an extra `domain` field echoes it. Data source: DB-IP Lite (CC BY 4.0). Anycast IPs are approximate.

Input Schema

{
  "type": "object",
  "properties": {
    "ip": {
      "type": [
        "string",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "IPv4/IPv6 address or hostname, e.g. 8.8.8.8 or example.com. Pass an array for batch lookup, e.g. [\"8.8.8.8\", \"1.1.1.1\"]."
    }
  },
  "required": [
    "ip"
  ]
}
🟢ip_resolved(host)

Resolve a domain to all its A and AAAA records (deduplicated, up to 6) and return geolocation for each address. Returns an array of { ip, protocol, domain, city, region, country, coordinates, ASN/ISP, ... }. For a bare IP, returns a single-element array.

Input Schema

{
  "type": "object",
  "properties": {
    "host": {
      "type": "string",
      "description": "Domain or IP address to resolve, e.g. example.com or baidu.com"
    }
  },
  "required": [
    "host"
  ]
}
🟢ip_self

Get geolocation and network info about the caller's own public IP, plus the protocol stack (IPv4/IPv6) of the current connection. On dual-stack machines the stack is chosen by the client and may differ from `curl ip.ls`, which picks a random stack; use curl -4/-6 locally to get the other stack, or — for clients that cannot pick a stack (browser, PowerShell, most HTTP libraries) — the single-stack hostnames https://4.ip.ls / https://6.ip.ls (DNS selects the stack; an unreachable 6.ip.ls means no usable IPv6). Data comes from a server-side GeoIP lookup on the caller's real IP.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢headers

Return all HTTP request headers as seen by the IP.LS server (including X-Real-IP / X-Forwarded-For injected by the frontend proxy). Useful for debugging proxies and client identity.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢ua

Return the User-Agent string of the current HTTP client.

Input Schema

{
  "type": "object",
  "properties": {}
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools