Zovo IP Lookup MCP
This MCP server allows agents to look up IP address ownership details including network handle, organization, country, allocation range, and abuse contact email via RDAP. It also retrieves reverse DNS names and classifies IP ranges locally. It supports single or batch lookups of up to 20 addresses with CSV download capability.
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.
https://ip-lookup.zovo.one/mcpWhat you can do with it
- Look up who owns an IP address
- Find the abuse contact for an IP
- Get reverse DNS for an IP
- Batch lookup up to 20 addresses
Source and maintenance
Protocol and capabilities
- Server
- ip-lookup 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 2 advertised
- Resources
- 1 advertised
- Resource templates
- 1 advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
},
"resources": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
2 advertised
lookup_ip — Look up IP address owners
Use this when the user wants an ip lookup, asks who owns this ip, needs the ip address owner or the whois ip details, wants the ip abuse contact, or needs an ip range lookup: it reads the five regional internet registries through RDAP and the reverse DNS (PTR) name, for one to twenty IPv4 or IPv6 addresses or CIDR ranges, and returns a CSV download for the batch. Limits: registry data shows the network holder and its country, not a street address or a person's location; some registries publish no abuse email; reverse DNS exists only when the network sets it. Do not use for an ip locator that claims a precise location, for looking up a domain name (that is a domain lookup), or for scanning a host.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"ips"
],
"properties": {
"ips": {
"type": "string",
"maxLength": 2000,
"minLength": 1,
"description": "One to twenty IPv4 or IPv6 addresses or CIDR ranges, separated by commas, spaces, or new lines. Example: 8.8.8.8, 1.1.1.1, 2606:4700:4700::1111, 192.168.1.1/24."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"count",
"public_count",
"error_count",
"addresses",
"preview_limit",
"preview_note",
"columns",
"downloads",
"sources",
"notes"
],
"properties": {
"count": {
"type": "number"
},
"notes": {
"type": "string"
},
"columns": {
"type": "array",
"items": {
"type": "string"
}
},
"sources": {
"type": "array",
"items": {
"type": "string"
}
},
"addresses": {
"type": "array",
"items": {
"type": "object",
"required": [
"input",
"address",
"version",
"class",
"rfc",
"registry",
"handle",
"name",
"organization",
"country",
"range",
"cidr",
"network_type",
"registered",
"last_changed",
"abuse_email",
"ptr",
"ptr_source_url",
"ptr_retrieved_utc",
"source_url",
"retrieved_utc",
"note",
"error"
],
"properties": {
"ptr": {
"type": [
"string",
"null"
]
},
"rfc": {
"type": [
"string",
"null"
]
},
"cidr": {
"type": [
"string",
"null"
]
},
"name": {
"type": [
"string",
"null"
]
},
"note": {
"type": [
"string",
"null"
]
},
"class": {
"type": "string"
},
"error": {
"type": [
"string",
"null"
]
},
"input": {
"type": "string"
},
"range": {
"type": [
"string",
"null"
]
},
"handle": {
"type": [
"string",
"null"
]
},
"address": {
"type": [
"string",
"null"
]
},
"country": {
"type": [
"string",
"null"
]
},
"version": {
"type": [
"number",
"null"
]
},
"registry": {
"type": [
"string",
"null"
]
},
"registered": {
"type": [
"string",
"null"
]
},
"source_url": {
"type": [
"string",
"null"
]
},
"abuse_email": {
"type": [
"string",
"null"
]
},
"last_changed": {
"type": [
"string",
"null"
]
},
"network_type": {
"type": [
"string",
"null"
]
},
"organization": {
"type": [
"string",
"null"
]
},
"retrieved_utc": {
"type": [
"string",
"null"
]
},
"ptr_source_url": {
"type": [
"string",
"null"
]
},
"ptr_retrieved_utc": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
}
},
"downloads": {
"type": "object",
"required": [
"csv"
],
"properties": {
"csv": {
"type": "string"
}
},
"additionalProperties": false
},
"error_count": {
"type": "number"
},
"preview_note": {
"type": "string"
},
"public_count": {
"type": "number"
},
"preview_limit": {
"type": "number"
}
},
"additionalProperties": false
}{
"title": "Look up IP address owners",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}reverse_dns_lookup — Reverse DNS lookup
Use this when the user wants a reverse dns lookup, an ip address lookup for PTR names, or a quick ip lookup of hostnames: it queries DNS-over-HTTPS for the in-addr.arpa or ip6.arpa name of one to twenty public IPv4 or IPv6 addresses and returns host names with a CSV download, without reading a registry. Limits: a PTR name exists only when the network operator sets it; private, loopback, link-local, shared, multicast, documentation and reserved addresses are not queried. Do not use when the user wants the owner, the registration dates or the abuse contact of an address (use lookup_ip for that).
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"ips"
],
"properties": {
"ips": {
"type": "string",
"maxLength": 2000,
"minLength": 1,
"description": "One to twenty public IPv4 or IPv6 addresses, separated by commas, spaces, or new lines. Example: 8.8.8.8, 1.1.1.1, 2606:4700:4700::1111."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"count",
"found_count",
"preview_limit",
"preview_note",
"downloads",
"records",
"sources",
"notes"
],
"properties": {
"count": {
"type": "number"
},
"notes": {
"type": "string"
},
"records": {
"type": "array",
"items": {
"type": "object",
"required": [
"input",
"address",
"version",
"class",
"ptr",
"source_url",
"retrieved_utc",
"note"
],
"properties": {
"ptr": {
"type": [
"string",
"null"
]
},
"note": {
"type": [
"string",
"null"
]
},
"class": {
"type": "string"
},
"input": {
"type": "string"
},
"address": {
"type": [
"string",
"null"
]
},
"version": {
"type": [
"number",
"null"
]
},
"source_url": {
"type": [
"string",
"null"
]
},
"retrieved_utc": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
}
},
"sources": {
"type": "array",
"items": {
"type": "string"
}
},
"downloads": {
"type": "object",
"required": [
"csv"
],
"properties": {
"csv": {
"type": "string"
}
},
"additionalProperties": false
},
"found_count": {
"type": "number"
},
"preview_note": {
"type": "string"
},
"preview_limit": {
"type": "number"
}
},
"additionalProperties": false
}{
"title": "Reverse DNS lookup",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
1 advertised
ip-lookup-widget — Zovo IP Lookup view
Interactive view for Zovo IP Lookup.
ui://widget/ip-lookup-v2-1.0.0-ed16adb3bb36151e61d80ee1c5197e49a4ca23c0fc45fe00790d19ede84b0055.htmlip-lookup-widget-legacy — Zovo IP Lookup view (previous versions)
ui://widget/ip-lookup-{version}.html30-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
- 965 ms
- 95th percentile latency
- 965 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 965 ms · metadata changed · 2 tool(s), 1 resource(s), 1 resource template(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http zovo-ip-lookup-mcp https://ip-lookup.zovo.one/mcpCodex
codex mcp add zovo-ip-lookup-mcp --url https://ip-lookup.zovo.one/mcpCursor
{
"mcpServers": {
"zovo-ip-lookup-mcp": {
"url": "https://ip-lookup.zovo.one/mcp"
}
}
}Cline
{
"mcpServers": {
"zovo-ip-lookup-mcp": {
"type": "streamableHttp",
"url": "https://ip-lookup.zovo.one/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"zovo-ip-lookup-mcp": {
"type": "http",
"url": "https://ip-lookup.zovo.one/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http zovo-ip-lookup-mcp https://ip-lookup.zovo.one/mcpClaude Desktop
{
"mcpServers": {
"zovo-ip-lookup-mcp": {
"url": "https://ip-lookup.zovo.one/mcp"
}
}
}Windsurf
{
"mcpServers": {
"zovo-ip-lookup-mcp": {
"serverUrl": "https://ip-lookup.zovo.one/mcp"
}
}
}Let your agent find its tools
Find servers like Zovo IP Lookup MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.