IPInfo MCP Server
The IPInfo MCP Server provides comprehensive IP address intelligence through 25+ tools that query the IPInfo API for detailed network, location, privacy, and organizational data.
Core IP Intelligence
Get comprehensive IP information including location, ASN, organization, company, and privacy detection
Batch operations: process multiple IPs simultaneously for lookups, summaries (up to 500,000 IPs), and visual mapping
Single-field queries: extract specific data like city, country code, region, coordinates, postal code, timezone, hostname, or organization
Network & Infrastructure
Retrieve ASN details including prefixes, peers, upstreams, and downstreams
Get company and mobile carrier information (with MCC/MNC codes)
Find domains hosted on specific IPs (with pagination) or IP ranges owned by domains/organizations
Privacy & Security
Detect VPNs, proxies, Tor exit nodes, relays, and hosting providers
Get abuse contact information for reporting
WHOIS Lookups
Query WHOIS records by IP address/range, domain, or ASN
Filter by source (ARIN, RIPE, AFRINIC, APNIC, LACNIC)
Account Management
Check API usage limits and available features
All tools support both specific IP lookups and current IP detection (when no IP is provided), with strongly-typed responses using Pydantic models for type safety.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@IPInfo MCP Serverwhat's the geolocation for 8.8.8.8?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Server IPInfo
This is a version of the MCP Server for IPInfo that implements the complete IPInfo OpenAPI specification with strongly-typed models and comprehensive tool coverage.
Features
Full OpenAPI Spec Implementation: Complete implementation of IPInfo's OpenAPI specification
Strongly Typed: All API responses use Pydantic models for type safety
HTTP Transport: Supports streamable-http transport with health endpoint
Comprehensive Tools: 25+ MCP tools covering all IPInfo API endpoints
Built-in Skill Resource: Serves a
skill://ipinfo/usageresource that teaches LLMs optimal tool selection and context reuse patterns
Related MCP server: IP Lookup MCP
Installation
# Using uv (recommended)
uv pip install -e .
# Or with pip
pip install -e .Configuration
Set your IPInfo API token as an environment variable:
export IPINFO_API_TOKEN=your_token_hereRunning the Server
As a standalone MCP server
# Using uv
uv run mcp-ipinfo
# Or with Python
python -m mcp_ipinfo.serverIn Claude Code
Add this configuration to your Claude Code settings:
{
"mcpServers": {
"ipinfo": {
"command": "/path/to/.local/bin/uv",
"args": [
"--directory",
"/path/to/mcp-server-ipinfo",
"run",
"mcp-ipinfo"
],
"env": {
"IPINFO_API_TOKEN": "your_ipinfo_api_token_here"
}
}
}
}Skill Resource
The server includes a built-in skill at skill://ipinfo/usage that guides LLMs on:
Tool selection: Which tool to use for each intent (general lookup vs. VPN detection vs. WHOIS)
Context reuse: Carrying IP addresses across follow-up questions
VPN detection: Using the Plus API (
get_plus_ip_info) instead of the Core API for privacy flags
The server's instructions field tells compatible MCP clients to read this resource before using tools. This is also published as a standalone skill at mpak.dev/skills/@nimblebraininc/ipinfo.
Available MCP Tools
Core IP Information
get_ip_info(ip?)- Get comprehensive IP informationget_plus_ip_info(ip)- Get full IP intelligence via Plus API (includes privacy detection)get_account_info()- Get API account limits and featuresbatch_lookup(ips[])- Batch lookup multiple IPssummarize_ips(ips[])- Get summary statistics for IP listmap_ips(ips[])- Create visual map of IP locations
Company & Carrier
get_company_info(ip)- Get company details for an IPget_carrier_info(ip)- Get mobile carrier information
Privacy & Security
get_plus_ip_info(ip)- Detect VPN, proxy, Tor, relay (via Plus API)get_residential_proxy_info(ip)- Detect residential proxy servicesget_abuse_contact(ip)- Get abuse contact information
Network Information
get_hosted_domains(ip, page?, limit?)- Get domains on an IPget_ip_ranges(domain)- Get IP ranges for a domain
WHOIS Lookups
whois_lookup_by_ip(ip, page?, source?)- WHOIS by IPwhois_lookup_by_domain(domain, page?, source?)- WHOIS by domainwhois_lookup_by_asn(asn, page?, source?)- WHOIS by ASN
Single Field Tools
get_ip_city(ip?)- Get just the cityget_ip_country(ip?)- Get just the country codeget_ip_region(ip?)- Get just the region/stateget_ip_location(ip?)- Get just the coordinatesget_ip_postal(ip?)- Get just the postal codeget_ip_timezone(ip?)- Get just the timezoneget_ip_hostname(ip?)- Get just the hostnameget_ip_org(ip?)- Get just the organization/ASN
Testing
Run the test client to verify the implementation:
python test_client.pyAPI Client Usage
You can also use the API client directly in your Python code:
import asyncio
from mcp_ipinfo.api_client import IPInfoClient
async def main():
async with IPInfoClient() as client:
# Get current IP info
info = await client.get_current_info()
print(f"Current IP: {info.ip}")
print(f"Location: {info.city}, {info.country}")
# Get specific IP info
google = await client.get_info_by_ip("8.8.8.8")
print(f"Google DNS: {google.org}")
# Privacy detection via Plus API
plus_info = await client.get_plus_info("1.1.1.1")
print(f"VPN detected: {plus_info.anonymous.is_vpn}")
print(f"ASN: {plus_info.as_info.asn}")
asyncio.run(main())Type Safety
All models are strongly typed using Pydantic:
from mcp_ipinfo.api_models import (
FullResponse, # Basic IP information
PlusResponse, # Comprehensive IP intelligence (geo, ASN, privacy)
CompanyResponse, # Company information
RangesResponse, # IP ranges for a domain
# ... and many more
)Requirements
Python 3.13+
aiohttp
fastmcp
pydantic
mcp
About
Part of the NimbleTools ecosystem. From the makers of NimbleBrain.
License
MIT
Available Tools
23 toolsbatch_lookupB
Batch lookup multiple IP addresses.
Args: ips: List of IP addresses to lookup (can include field paths like "8.8.8.8/city")
Returns: Dictionary with IP information for each address.
| Name | Required | Description | Default |
|---|---|---|---|
| ips | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral disclosure. It mentions that IPs 'can include field paths like "8.8.8.8/city"' which hints at extended functionality, but doesn't describe rate limits, authentication needs, error handling, or what specific information is returned. For a batch operation with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a clear purpose statement followed by Args and Returns sections. Every sentence earns its place: the first establishes core functionality, the second explains parameter semantics with a helpful example, and the third describes the return format. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (batch operation with field path syntax), no annotations, but with an output schema present, the description is minimally adequate. The output schema reduces the need to detail return values, but the description lacks context about performance, limitations, or how it relates to the many sibling tools. It's complete enough for basic use but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage for the single parameter, the description compensates well by explaining the 'ips' parameter accepts 'List of IP addresses to lookup' and provides an example of field path syntax. This adds meaningful context beyond the bare schema, though it doesn't detail format constraints or validation rules.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Batch lookup multiple IP addresses' with a specific verb ('lookup') and resource ('IP addresses'). It distinguishes itself from siblings by emphasizing batch capability, though it doesn't explicitly name alternatives. The description avoids tautology by providing meaningful context beyond just the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the many sibling IP lookup tools (e.g., get_ip_info, get_ip_city, map_ips). It mentions batch capability but doesn't specify thresholds, performance considerations, or alternative tools for single IP lookups. There's no explicit when/when-not guidance or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_abuse_contactB
Get abuse contact information for an IP address.
Args: ip: IP address to lookup
Returns: Abuse contact details including email, phone, and address.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | Name |
| No | ||
| phone | No | Phone |
| address | No | Address |
| country | No | Country |
| network | No | Network |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'Get[s] abuse contact information' but doesn't mention if this is a read-only operation, requires authentication, has rate limits, or what happens on errors (e.g., invalid IP). For a tool with no annotations, this leaves significant gaps in understanding its behavior and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core purpose, followed by brief sections for args and returns. Every sentence earns its place: the first states the goal, and the subsequent lines efficiently clarify inputs and outputs without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter), no annotations, and the presence of an output schema (implied by 'Returns' section), the description is reasonably complete. It covers purpose, input, and output, though it could improve by addressing behavioral aspects like error handling or usage context relative to siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the description compensates by explaining the 'ip' parameter as 'IP address to lookup'. This adds clear meaning beyond the bare schema. However, it doesn't specify format details (e.g., IPv4 vs. IPv6) or validation rules, which could be useful given the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get abuse contact information for an IP address.' It specifies the verb ('Get'), resource ('abuse contact information'), and target ('IP address'). However, it doesn't explicitly differentiate from sibling tools like 'get_ip_info' or 'whois_lookup_by_ip', which might provide overlapping or related data, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings such as 'get_ip_info', 'whois_lookup_by_ip', and 'get_privacy_info', it's unclear if this is the preferred method for abuse contacts or if other tools might offer similar or complementary data. No exclusions or specific contexts are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_infoB
Get IPInfo account information and API limits.
Returns: Account information including API limits and available features.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| token | Yes | API token |
| features | Yes | Available features |
| requests | Yes | Request limits and usage |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the tool returns 'API limits and available features,' which hints at read-only behavior, but doesn't explicitly state whether this is a safe read operation, requires authentication, has rate limits, or other behavioral traits. The disclosure is incomplete for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and well-structured: the first sentence states the purpose, and the second clarifies the return values. Every sentence adds value without any wasted words, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, output schema exists), the description is adequate but has gaps. It covers the purpose and return values, but lacks usage guidelines and full behavioral transparency. With an output schema, it doesn't need to detail return values, but other aspects are minimally addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so there's no need for parameter explanation in the description. The baseline for this scenario is 4, as the description appropriately avoids redundant parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('IPInfo account information and API limits'), making it immediately understandable. However, it doesn't explicitly differentiate this tool from its siblings (which are all IP/domain lookup tools), so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, appropriate contexts, or relationships to sibling tools like batch_lookup or get_ip_info, leaving the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_asn_infoC
Get information about an Autonomous System Number (ASN).
Args: asn: The ASN number (without 'AS' prefix)
Returns: ASN information including prefixes, peers, and network details.
| Name | Required | Description | Default |
|---|---|---|---|
| asn | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| asn | Yes | ASN identifier |
| name | Yes | Name of the ASN |
| type | Yes | Type of organization |
| peers | No | |
| route | No | Route |
| domain | Yes | Domain |
| country | No | Country code |
| num_ips | No | Number of IPs |
| prefixes | No | |
| registry | No | Registry name |
| allocated | No | Allocation date |
| prefixes6 | No | |
| upstreams | No | |
| downstreams | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool 'Get information' but doesn't specify whether this is a read-only operation, if it requires authentication, rate limits, or error handling. While it implies a safe read operation, it lacks details on permissions, data freshness, or response structure beyond a vague mention of return types.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and well-structured. It starts with a clear purpose statement, followed by separate 'Args' and 'Returns' sections that organize information efficiently. There is no redundant or verbose language, making it easy to parse. A slight deduction because the 'Returns' section could be more specific, but overall it's front-loaded and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (single parameter, no annotations, but with an output schema), the description is partially complete. It covers the basic purpose and parameter format but lacks usage guidelines and detailed behavioral context. The presence of an output schema means the description doesn't need to explain return values in depth, but it should still address when to use this tool over siblings and operational constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal semantics beyond the input schema. It specifies that the 'asn' parameter is 'The ASN number (without 'AS' prefix)', which clarifies formatting not evident from the schema's integer type alone. However, with 0% schema description coverage and only one parameter, this addition is basic. It doesn't explain validation rules, example values, or edge cases, keeping it at the baseline for low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get information about an Autonomous System Number (ASN).' It specifies the verb ('Get') and resource ('ASN information'), making it understandable. However, it doesn't explicitly differentiate this from sibling tools like 'whois_lookup_by_asn' or 'get_ip_org', which might offer overlapping or related functionality, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools such as 'whois_lookup_by_asn', 'get_ip_org', and 'get_ip_ranges' that might retrieve similar or related network data, there is no indication of context, prerequisites, or exclusions. This lack of differentiation leaves the agent without clear usage cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_carrier_infoA
Get mobile carrier information for an IP address.
Args: ip: IP address to lookup
Returns: Mobile carrier details including MCC and MNC codes.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| mcc | Yes | Mobile Country Code |
| mnc | Yes | Mobile Network Code |
| name | Yes | Carrier name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does (lookup) and returns (carrier details with MCC/MNC codes), but it doesn't disclose critical traits like whether it's a read-only operation, rate limits, authentication needs, error handling, or data freshness. For a lookup tool with zero annotation coverage, this is a significant gap, though it's not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by structured 'Args' and 'Returns' sections. Every sentence earns its place by providing essential information without redundancy. It's efficient and well-organized for a tool with one parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one parameter) and the presence of an output schema (implied by 'Returns' section), the description is mostly complete. It covers purpose, parameter semantics, and return values. However, with no annotations, it lacks behavioral context like safety or performance traits. For a simple lookup tool, this is adequate but could be improved with more disclosure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description must compensate. It adds meaning by specifying that the 'ip' parameter is an 'IP address to lookup', which clarifies its purpose beyond the schema's generic 'string' type. However, it doesn't provide format details (e.g., IPv4 vs. IPv6) or validation rules. With one parameter and no schema descriptions, this is good but not exhaustive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get mobile carrier information for an IP address.' It specifies the verb ('Get') and resource ('mobile carrier information'), and distinguishes it from siblings by focusing on carrier details rather than general IP info, location, or other lookups. However, it doesn't explicitly differentiate from all siblings (e.g., 'get_ip_info' might overlap in scope), so it's not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by specifying 'for an IP address' and mentioning mobile carrier details, suggesting it's for IP-to-carrier mapping. However, it doesn't explicitly state when to use this tool versus alternatives like 'get_ip_info' or 'get_ip_location', nor does it provide exclusions or prerequisites. The context is clear but lacks explicit guidance on sibling differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_company_infoC
Get company information for an IP address.
Args: ip: IP address to lookup
Returns: Company name, domain, and type.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | Company name |
| type | Yes | Company type |
| domain | Yes | Company domain |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the basic action and return values, without mentioning any behavioral traits like rate limits, authentication needs, error handling, or data freshness. This is a significant gap for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by structured 'Args' and 'Returns' sections. It's efficient with no wasted sentences, though the formatting could be more integrated (e.g., as a single paragraph). Overall, it's appropriately sized for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter) and the presence of an output schema (implied by 'Returns' details), the description is minimally complete. However, it lacks context on sibling differentiation and behavioral traits, which are needed for optimal agent use. The output schema reduces the burden, but gaps remain in usage and transparency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal semantics: it names the parameter ('ip') and specifies it as 'IP address to lookup', which provides basic meaning beyond the schema's type ('string'). However, with 0% schema description coverage, it doesn't fully compensate—e.g., no format details (IPv4 vs. IPv6) or validation rules. The baseline is 3 due to the single parameter being straightforward.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get company information for an IP address.' It specifies the verb ('Get') and resource ('company information'), but does not explicitly differentiate it from sibling tools like 'get_ip_org' or 'get_ip_info', which might provide overlapping or related data. This makes it clear but not fully distinct from alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus its many siblings, such as 'get_ip_org' or 'get_ip_info'. It lacks context on use cases, exclusions, or alternatives, leaving the agent to infer usage based on the tool name alone, which is insufficient given the crowded namespace of IP-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hosted_domainsC
Get domains hosted on an IP address.
Args: ip: IP address to lookup page: Page number (starts at 0) limit: Number of results per page (max 1000, default 100)
Returns: List of domains hosted on the IP address.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | ||
| limit | No | ||
| page | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ip | No | IP address |
| page | No | Page number |
| total | Yes | Total domains |
| domains | No | List of domains |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions pagination ('page' and 'limit' parameters) and a default limit, which adds some context. However, it lacks details on rate limits, authentication needs, error handling, or data freshness, which are important for a lookup tool. The description doesn't contradict any annotations, but it's insufficient for full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and appropriately sized, with a clear purpose statement followed by sections for 'Args' and 'Returns'. Each sentence adds value, and there's no redundant information. It could be slightly more concise by integrating the parameter details into the main text, but overall it's efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there's an output schema (which covers return values), no annotations, and moderate complexity with 3 parameters, the description is somewhat complete. It explains the purpose and parameters but lacks behavioral context like rate limits or error handling. For a lookup tool with pagination, more guidance on usage and limitations would improve completeness, but the output schema reduces the burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the 'ip' parameter as 'IP address to lookup', 'page' as 'Page number (starts at 0)', and 'limit' as 'Number of results per page (max 1000, default 100)'. This adds meaningful semantics beyond the schema, covering all three parameters. However, it doesn't provide examples or format details (e.g., IPv4 vs. IPv6 for 'ip'), so it's adequate but not comprehensive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get domains hosted on an IP address.' This is a specific verb ('Get') and resource ('domains hosted on an IP address'), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_ip_hostname' or 'whois_lookup_by_ip', which might have overlapping functionality, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any context, prerequisites, or exclusions, nor does it refer to sibling tools like 'get_ip_hostname' or 'whois_lookup_by_ip' that might serve similar purposes. This leaves the agent without clear usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ip_cityA
Get just the city for an IP address.
Args: ip: IP address to lookup. If None, returns current city.
Returns: City name.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the default behavior (returns current city if IP is None) and the return type (city name), but lacks details on error handling, rate limits, data sources, or privacy implications. It provides basic behavioral context but misses advanced traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by clear Arg and Returns sections. Every sentence earns its place with no redundancy, making it highly efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 optional parameter) and the presence of an output schema (which handles return values), the description is mostly complete. It covers purpose, parameter semantics, and return type adequately, though it could benefit from more behavioral context like error cases or data freshness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the 'ip' parameter's purpose and the special case when None (returns current city), adding meaningful semantics beyond the schema's basic type and default. However, it doesn't specify format constraints (e.g., IPv4 vs. IPv6) or validation rules.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get just the city') and resource ('for an IP address'), distinguishing it from siblings like get_ip_country, get_ip_region, or get_ip_info. It precisely defines the scope of what is returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly suggests usage for retrieving city-level information from an IP, with the default behavior (no IP provided) returning the current city. However, it lacks explicit guidance on when to use this versus alternatives like get_ip_location or get_ip_info, which might provide more comprehensive data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ip_countryA
Get just the country code for an IP address.
Args: ip: IP address to lookup. If None, returns current country.
Returns: Two-letter country code (ISO-3166).
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses key behavioral traits: the tool returns a two-letter country code (ISO-3166) and handles a null IP by returning the current country. However, it lacks details on error handling, rate limits, or data sources, which are important for a lookup tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the purpose clearly, followed by structured 'Args' and 'Returns' sections. Every sentence earns its place, with no redundant or verbose content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, no nested objects) and the presence of an output schema (implied by 'Returns' section), the description is mostly complete. It covers purpose, parameter behavior, and return value. However, it could benefit from mentioning error cases or data source limitations for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaning beyond the schema by explaining the parameter's purpose ('IP address to lookup') and special behavior ('If None, returns current country'). This covers the single parameter's semantics well, though it could specify format constraints (e.g., IPv4/IPv6).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get just the country code for an IP address.' It specifies the verb ('Get'), resource ('country code'), and scope ('for an IP address'), and distinguishes it from siblings like get_ip_city, get_ip_region, and get_ip_info by focusing exclusively on the country code.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for usage: 'If None, returns current country.' This indicates when to omit the parameter. However, it does not explicitly state when to use this tool versus alternatives like get_ip_info (which might include country and other details) or batch_lookup (for multiple IPs), leaving some sibling differentiation implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ip_hostnameA
Get just the hostname for an IP address.
Args: ip: IP address to lookup. If None, returns current hostname.
Returns: Hostname.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but lacks behavioral details. It mentions the default behavior (returns current hostname if ip is None) but doesn't cover error handling, rate limits, network dependencies, or authentication needs. This is inadequate for a network tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by well-structured Args and Returns sections. Every sentence earns its place, with no redundant or verbose content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter) and the presence of an output schema (which covers return values), the description is mostly complete. However, it lacks context about network behavior or error cases, which would be helpful despite the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate fully. It clearly explains the single parameter 'ip', including its purpose ('IP address to lookup') and special behavior ('If None, returns current hostname'), adding crucial meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get just the hostname') and resource ('for an IP address'), distinguishing it from siblings like get_ip_info (general info) or get_ip_location (geographic data). It precisely defines the tool's narrow scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for IP-to-hostname resolution, with no explicit alternatives or exclusions mentioned. It doesn't specify when to use this versus siblings like get_ip_info (which might include hostname) or batch_lookup (for multiple IPs), leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ip_infoA
Get comprehensive information about an IP address.
Args: ip: IP address to lookup. If None, returns info about current IP. ctx: MCP context
Returns: Complete IP information including location, ASN, company, privacy, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ip | Yes | IP address |
| asn | No | ASN details |
| loc | No | Location coordinates |
| org | No | Organization |
| city | No | City |
| abuse | No | Abuse contact |
| bogon | No | Bogon IP |
| postal | No | Postal code |
| region | No | Region/State |
| carrier | No | Carrier details |
| company | No | Company details |
| country | No | Country code |
| domains | No | Hosted domains |
| privacy | No | Privacy detection |
| hostname | No | Hostname |
| timezone | No | Timezone |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the default behavior (returns current IP if ip is None) and hints at the return content (location, ASN, company, privacy). However, it lacks details on rate limits, authentication needs, error handling, or data freshness, which are important for a lookup tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement, Args section, and Returns section. It's front-loaded and efficient, though the 'ctx: MCP context' in Args adds minimal value and could be omitted for better conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (IP lookup), no annotations, and an output schema present, the description is fairly complete. It covers purpose, parameter semantics, and return content. However, it could improve by mentioning potential limitations or linking to sibling tools for specialized data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the 'ip' parameter's purpose and default behavior (if None, returns current IP), adding meaningful semantics beyond the bare schema. With only one parameter, this is sufficient to earn a high score, though it could note format expectations (e.g., IPv4/IPv6).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('comprehensive information about an IP address'), making the purpose specific. It distinguishes from siblings like get_ip_city or get_ip_country by emphasizing 'comprehensive' information, indicating broader scope than those specialized tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for usage: it's for IP address lookups, with a default behavior when ip is None (returns current IP info). However, it doesn't explicitly state when to use this versus alternatives like get_ip_location or get_asn_info, which are more specialized siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ip_locationA
Get just the coordinates for an IP address.
Args: ip: IP address to lookup. If None, returns current location.
Returns: Latitude,longitude coordinates.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It mentions that omitting the IP returns the current location, which is useful context, but does not cover other aspects like rate limits, authentication needs, error handling, or data sources. For a tool with no annotations, this leaves significant gaps in behavioral understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the purpose clearly, followed by structured 'Args' and 'Returns' sections. Every sentence earns its place without redundancy, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter) and the presence of an output schema (which handles return values), the description is mostly complete. It covers the purpose, parameter semantics, and return format. However, without annotations, it lacks details on behavioral aspects like rate limits or errors, which could be important for robust usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the 'ip' parameter: 'IP address to lookup. If None, returns current location.' This adds meaning beyond the schema by clarifying the default behavior. However, it does not detail format constraints (e.g., IPv4 vs. IPv6) or validation rules, slightly limiting completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get just the coordinates for an IP address.' It specifies the verb ('Get') and resource ('coordinates'), but does not explicitly differentiate from siblings like 'get_ip_city' or 'get_ip_country' beyond the focus on coordinates. The title is null, so the description carries the full burden.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by stating 'If None, returns current location,' which suggests when to omit the parameter, but does not provide explicit guidance on when to use this tool versus alternatives like 'get_ip_info' or 'map_ips.' No exclusions or comparisons to siblings are mentioned, leaving usage context partially implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ip_orgA
Get just the organization/ASN for an IP address.
Args: ip: IP address to lookup. If None, returns current organization.
Returns: ASN and organization name.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals the special behavior when ip=None ('returns current organization'), which is valuable context not in the schema. However, it doesn't mention rate limits, error conditions, authentication requirements, or what 'current organization' means in practice, leaving behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly structured with a clear purpose statement followed by Args and Returns sections. Every sentence earns its place: the first establishes scope, the second explains parameter behavior, and the third defines the return value. No wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (single parameter with special null behavior), no annotations, but an output schema exists, the description is reasonably complete. It explains the parameter's semantics and return value format. However, it could better address what 'current organization' means and potential error cases, keeping it from a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage for the single parameter, the description adds significant value by explaining the ip parameter's purpose and special null behavior. It clarifies that 'If None, returns current organization,' which provides essential semantics beyond the schema's type information. The description fully compensates for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get just the organization/ASN') and resource ('for an IP address'), distinguishing it from siblings like get_ip_info, get_ip_country, or get_ip_location that provide different types of IP information. The verb 'Get' combined with the specific scope 'organization/ASN' makes the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about when to use this tool ('Get just the organization/ASN for an IP address') and implicitly distinguishes it from siblings that return different IP attributes. However, it doesn't explicitly state when NOT to use it or name specific alternatives, which prevents a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ip_postalA
Get just the postal code for an IP address.
Args: ip: IP address to lookup. If None, returns current postal code.
Returns: Postal or ZIP code.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context: the default behavior when ip is None (returns current postal code) and the return type (Postal or ZIP code). However, it omits details like error handling, rate limits, or data source, which are important for a lookup tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by structured Args and Returns sections. Every sentence earns its place by providing essential information without redundancy, making it highly efficient and well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity, one parameter, and an output schema (which handles return values), the description is nearly complete. It covers purpose, parameter semantics, and return type. However, it could improve by mentioning data accuracy or limitations, slightly reducing completeness for a lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate fully. It does so by explaining the single parameter 'ip' in detail: its purpose ('IP address to lookup'), optionality ('If None'), and effect ('returns current postal code'). This adds significant meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get just the postal code') and resource ('for an IP address'), distinguishing it from siblings like get_ip_city, get_ip_country, and get_ip_info by focusing exclusively on postal/ZIP code retrieval. The verb 'Get' is precise and the scope is well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly provides usage guidance by specifying 'just the postal code,' suggesting this tool should be used when only postal information is needed versus broader tools like get_ip_info. However, it lacks explicit when-not-to-use statements or named alternatives, such as comparing to get_ip_location for more comprehensive data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ip_rangesB
Get IP ranges owned by a domain/organization.
Args: domain: Domain name to lookup
Returns: IP ranges information including IPv4 and IPv6 blocks.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| domain | Yes | Domain name |
| ranges | Yes | List of IP ranges |
| num_ranges | Yes | Number of ranges |
| redirects_to | Yes | Redirects to domain |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool returns 'IP ranges information including IPv4 and IPv6 blocks,' which hints at output format, but lacks details on rate limits, authentication needs, error handling, or whether it's a read-only operation. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured: a clear purpose statement followed by 'Args' and 'Returns' sections. Every sentence earns its place by defining the tool, parameter, and output without redundancy. It's front-loaded with the core functionality and appropriately sized for a simple lookup tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter) and the presence of an output schema (which likely covers return values), the description is minimally adequate. It explains the parameter and output at a high level but lacks behavioral details like error cases or usage context. With no annotations and simple schema, it meets basic needs but could be more informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context for the single parameter: 'domain: Domain name to lookup.' Since schema description coverage is 0% (the schema only provides a title 'Domain' with no description), this compensates well by explaining the parameter's purpose. However, it doesn't specify format constraints (e.g., TLD requirements) or examples, preventing a perfect score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get IP ranges owned by a domain/organization.' It specifies the verb ('Get') and resource ('IP ranges'), and distinguishes it from siblings like get_ip_info or get_ip_org by focusing on ownership mapping rather than general IP information. However, it doesn't explicitly contrast with similar tools like get_hosted_domains or whois_lookup_by_domain, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like get_ip_org (which might return organization info for an IP) or whois_lookup_by_domain (which could provide related domain data), nor does it specify prerequisites or exclusions. The agent must infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ip_regionA
Get just the region/state for an IP address.
Args: ip: IP address to lookup. If None, returns current region.
Returns: Region or state name.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the default behavior (returning current region if ip is None) but lacks details on permissions, rate limits, error handling, or what 'current region' means (e.g., based on server location or user context). This is a significant gap for a tool with potential external dependencies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by structured Args and Returns sections. It is efficient with minimal waste, though the formatting could be slightly more polished (e.g., using bullet points).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (IP lookup with a default behavior), no annotations, and an output schema (implied by Returns section), the description is adequate but incomplete. It covers the basic operation and parameters but lacks behavioral details like error cases or performance considerations, which are important for external API tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context beyond the input schema, which has 0% description coverage. It explains that the 'ip' parameter is optional (None returns current region) and clarifies the return value as a region or state name, compensating well for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('region/state for an IP address'), distinguishing it from siblings like get_ip_city, get_ip_country, and get_ip_location. It explicitly focuses on region/state extraction rather than broader location data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by mentioning that if 'ip' is None, it returns the current region, suggesting a default behavior. However, it does not explicitly state when to use this tool versus alternatives like get_ip_info or get_ip_location, nor does it provide exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ip_timezoneA
Get just the timezone for an IP address.
Args: ip: IP address to lookup. If None, returns current timezone.
Returns: IANA timezone string.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the return type ('IANA timezone string') and the default behavior when 'ip' is None, which adds useful context. However, it lacks details on error handling, rate limits, authentication needs, or performance characteristics, leaving gaps for a tool that interacts with external data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by structured 'Args' and 'Returns' sections. Each sentence earns its place by providing essential information without redundancy. It could be slightly more concise by integrating the default behavior into the main sentence, but overall it's efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, no nested objects) and the presence of an output schema (which handles return values), the description is reasonably complete. It covers the purpose, parameter semantics, and return type. However, it lacks context on potential errors or limitations, which would be helpful for robust agent usage, though the output schema may mitigate this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description must compensate. It adds meaning by explaining that 'ip' is an 'IP address to lookup' and specifies the default behavior ('If None, returns current timezone'), which clarifies the parameter's purpose beyond the schema's basic type and default. This adequately covers the single parameter, though it doesn't detail format constraints (e.g., IPv4 vs. IPv6).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get just the timezone for an IP address.' It specifies the verb ('Get') and resource ('timezone for an IP address'), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_ip_city' or 'get_ip_country', which likely provide related but different geographical data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by stating that if 'ip' is None, it returns the current timezone, suggesting this tool can handle both IP lookups and default cases. However, it doesn't provide explicit guidance on when to use this tool versus alternatives like 'get_ip_info' or 'get_ip_location', which might offer broader or overlapping data. No exclusions or clear alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_privacy_infoA
Detect privacy services (VPN, proxy, Tor, etc.) for an IP address.
Args: ip: IP address to check
Returns: Privacy detection results including VPN, proxy, Tor, relay, and hosting status.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| tor | Yes | Tor detected |
| vpn | Yes | VPN detected |
| proxy | Yes | Proxy detected |
| relay | Yes | Relay detected |
| hosting | Yes | Hosting provider detected |
| service | Yes | Service name if detected |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states what the tool does but lacks behavioral details such as rate limits, authentication requirements, error handling, or whether it performs external API calls. It doesn't disclose any operational constraints beyond the basic functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by structured sections for Args and Returns. Every sentence adds value without redundancy, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (which covers return values) and a simple input schema with one parameter, the description provides sufficient context for basic use. However, as a detection tool with no annotations, it could benefit from more behavioral details like accuracy notes or limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context for the single parameter 'ip' by specifying it's 'IP address to check,' which clarifies its purpose beyond the schema's basic type. With 0% schema description coverage and only one parameter, this compensates adequately, though it doesn't detail format constraints like IPv4 vs. IPv6.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Detect privacy services') and resource ('for an IP address'), distinguishing it from sibling tools like get_ip_info or get_ip_location that focus on different IP attributes. It explicitly lists the types of privacy services detected (VPN, proxy, Tor, relay, hosting).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context through 'privacy services detection,' suggesting it's for identifying anonymization services, but it doesn't explicitly state when to use this tool versus alternatives like get_ip_info or other sibling tools. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_ipsB
Create a visual map of IP address locations.
Args: ips: List of IP addresses to map (up to 500,000)
Returns: Map report with visualization URL.
| Name | Required | Description | Default |
|---|---|---|---|
| ips | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions creating a 'visual map' and returning a 'Map report with visualization URL,' which implies a read-only operation with visual output. However, it lacks details on permissions, rate limits (e.g., handling up to 500,000 IPs), error handling, or whether the map is interactive or static. For a tool with no annotations, this is insufficient to fully inform the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and concise, with a clear purpose statement followed by 'Args' and 'Returns' sections. Each sentence adds value: the first defines the tool, the second details the parameter, and the third specifies the output. There is no wasted text, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (which should cover return values), the description does not need to explain returns in detail. However, with no annotations and 0% schema description coverage, it partially compensates by clarifying the parameter. For a tool that creates visualizations, it lacks context on map types, formats, or integration hints, leaving some gaps in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It adds meaningful context: the 'ips' parameter is described as a 'List of IP addresses to map (up to 500,000),' clarifying the data type, purpose, and a practical limit. This goes beyond the basic schema, providing essential usage semantics that the schema alone does not cover.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Create a visual map of IP address locations.' It specifies the verb ('Create'), resource ('visual map'), and scope ('IP address locations'), which is specific and actionable. However, it does not explicitly differentiate from sibling tools like 'get_ip_location' or 'summarize_ips', which might offer similar or overlapping functionality, so it falls short of a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get_ip_location' (which might return location data without visualization) and 'summarize_ips' (which could aggregate IP data), there is no explicit or implied context for choosing this tool over others. This lack of differentiation leaves usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
summarize_ipsC
Summarize a list of IP addresses with statistics and insights.
Args: ips: List of IP addresses to summarize (up to 500,000)
Returns: Summary report with statistics and map URL.
| Name | Required | Description | Default |
|---|---|---|---|
| ips | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool returns a 'summary report with statistics and map URL,' which gives some output context, but lacks details on performance (e.g., processing time for large lists), error handling, or any side effects. For a tool handling up to 500,000 IPs, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with the core purpose stated first. The Args and Returns sections are structured clearly, though they could be integrated more seamlessly. There's minimal waste, but it could be slightly more concise by merging the sections into a single paragraph without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (which likely covers return values), the description doesn't need to detail the report structure. However, with no annotations and a single parameter at 0% schema coverage, the description provides basic purpose and parameter info but lacks usage context and behavioral details. It's adequate as a minimum viable description but has clear gaps in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It adds value by specifying the 'ips' parameter as a 'List of IP addresses to summarize (up to 500,000),' which clarifies the format and constraint beyond the schema's basic array type. However, it doesn't explain IP format requirements (e.g., IPv4 vs. IPv6) or validation rules, leaving some semantics unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Summarize a list of IP addresses with statistics and insights.' This specifies the verb ('summarize'), resource ('IP addresses'), and output type ('statistics and insights'). However, it doesn't explicitly differentiate from sibling tools like 'map_ips' or 'get_ip_info', which might provide overlapping functionality, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions a limit of 'up to 500,000' IPs in the Args section, but this is parameter-specific and doesn't address broader context. There's no indication of when this summary tool is preferred over other IP-related tools in the sibling list, such as 'get_ip_info' for individual IPs or 'map_ips' for mapping.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whois_lookup_by_asnB
WHOIS lookup by ASN.
Args: asn: ASN number to lookup page: Page number for paginated results source: Filter by WHOIS source (arin, ripe, afrinic, apnic, lacnic)
Returns: WHOIS records for the ASN.
| Name | Required | Description | Default |
|---|---|---|---|
| asn | Yes | ||
| page | No | ||
| source | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions pagination and source filtering, which are useful, but doesn't disclose critical traits like rate limits, authentication needs, error conditions, or whether this is a read-only operation. For a lookup tool with no annotations, this is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (Args, Returns) and uses bullet-like formatting. It's front-loaded with the core purpose. However, the 'Returns' section is somewhat redundant given the output schema, and some sentences could be more tightly integrated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters with 0% schema coverage and an output schema, the description partially compensates by explaining parameters but lacks behavioral context. It doesn't cover error handling, rate limits, or sibling differentiation. The output schema reduces need for return value details, but overall completeness is moderate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It successfully explains all 3 parameters: asn (ASN number), page (for paginated results), and source (with specific WHOIS sources listed). This adds meaningful context beyond the bare schema, though it could detail format constraints like ASN ranges.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs a WHOIS lookup by ASN, which is a specific verb (lookup) and resource (WHOIS records for ASN). It distinguishes from siblings like whois_lookup_by_domain and whois_lookup_by_ip by specifying the ASN parameter type. However, it doesn't explicitly contrast with get_asn_info, which might provide overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like get_asn_info or other WHOIS lookup siblings. The description mentions parameters but doesn't explain use cases, prerequisites, or exclusions. This leaves the agent without contextual decision-making help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whois_lookup_by_domainC
WHOIS lookup by organization domain.
Args: domain: Domain name to lookup page: Page number for paginated results source: Filter by WHOIS source (arin, ripe, afrinic, apnic, lacnic)
Returns: WHOIS records for the domain.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | ||
| page | No | ||
| source | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions pagination ('page number for paginated results') and source filtering, but lacks critical details like rate limits, authentication requirements, error handling, or whether this is a read-only operation. The description is insufficient for a tool with 3 parameters and no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (Args, Returns) and uses bullet-like formatting. It's appropriately sized at 5 sentences, with the purpose stated upfront. Minor improvements could include more front-loading of key information, but overall it's efficient with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters with 0% schema coverage and no annotations, but with an output schema present, the description is moderately complete. It covers the basic purpose and parameters, but lacks behavioral context (rate limits, auth, errors) and usage guidance. The output schema reduces the need to describe return values, but more operational details would be beneficial for this lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It lists all 3 parameters with brief explanations: 'domain: Domain name to lookup', 'page: Page number for paginated results', and 'source: Filter by WHOIS source (arin, ripe, afrinic, apnic, lacnic)'. This adds meaningful context beyond the bare schema, but doesn't provide format examples, constraints, or default behaviors for optional parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs a 'WHOIS lookup by organization domain' and returns 'WHOIS records for the domain', specifying both the action (lookup) and resource (WHOIS records). It distinguishes from siblings like 'whois_lookup_by_asn' and 'whois_lookup_by_ip' by specifying the domain-based lookup, though it doesn't explicitly contrast with all siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'whois_lookup_by_ip' or 'get_ip_info', nor does it specify use cases, prerequisites, or exclusions for domain-based WHOIS lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whois_lookup_by_ipB
WHOIS lookup by IP address or IP range.
Args: ip: IP address or range to lookup page: Page number for paginated results source: Filter by WHOIS source (arin, ripe, afrinic, apnic, lacnic)
Returns: WHOIS records for the IP or range.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | ||
| page | No | ||
| source | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions pagination ('page number for paginated results') and source filtering, which adds some context. However, it lacks details on rate limits, authentication needs, error handling, or whether this is a read-only operation (implied by 'lookup' but not confirmed). For a tool with no annotations, this is a significant gap in behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core purpose, followed by clear sections for Args and Returns. Every sentence earns its place by providing essential information without redundancy. It's appropriately sized for a tool with three parameters and an output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no annotations, but with an output schema), the description is fairly complete. It covers the purpose, parameters, and return value. The output schema exists, so the description doesn't need to explain return values in detail. However, it lacks context on error cases or performance considerations, which could be useful for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It effectively explains all three parameters: 'ip' as the target for lookup, 'page' for pagination, and 'source' with specific filter options (arin, ripe, etc.). This adds meaningful semantics beyond the bare schema, though it doesn't detail format constraints (e.g., IP address validation) or default behaviors beyond null defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs a 'WHOIS lookup by IP address or IP range,' which is a specific verb+resource combination. It distinguishes itself from sibling tools like 'whois_lookup_by_domain' and 'whois_lookup_by_asn' by specifying the IP-based lookup, though it doesn't explicitly contrast with other IP-related tools like 'get_ip_info' or 'get_ip_ranges' in the description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools or contexts where other tools might be more appropriate, such as using 'get_ip_info' for general IP details or 'whois_lookup_by_domain' for domain-based lookups. Usage is implied by the name and description but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
23 tool updates
v1.0.0- First observed
batch_lookup - First observed
get_abuse_contact - First observed
get_account_info - First observed
get_asn_info - First observed
get_carrier_info - First observed
get_company_info - First observed
get_hosted_domains - First observed
get_ip_city - First observed
get_ip_country - First observed
get_ip_hostname - First observed
get_ip_info - First observed
get_ip_location - First observed
get_ip_org - First observed
get_ip_postal - First observed
get_ip_ranges - First observed
get_ip_region - First observed
get_ip_timezone - First observed
get_privacy_info - First observed
map_ips - First observed
summarize_ips - First observed
whois_lookup_by_asn - First observed
whois_lookup_by_domain - First observed
whois_lookup_by_ip
TDQS
Scored across 23 tools
Most tools have distinct purposes, but there is significant overlap between the single-field IP lookup tools (e.g., get_ip_city, get_ip_country, get_ip_hostname) and the comprehensive get_ip_info, which could cause confusion about which to use. The WHOIS tools are well-differentiated by target (ASN, domain, IP).
The naming follows a consistent verb_noun pattern (e.g., get_ip_info, get_asn_info, whois_lookup_by_domain) with minor deviations like batch_lookup (missing 'get_' prefix) and map_ips/summarize_ips (using verbs instead of 'get_'). Overall, it's readable and predictable.
With 23 tools, the count feels excessive for an IP information server. Many tools are redundant (e.g., multiple single-field IP lookups) or could be consolidated (e.g., WHOIS lookups into one tool with parameters). This may overwhelm agents and increase misselection risk.
The toolset comprehensively covers the IP information domain, including IP lookups (batch, single, detailed, specific fields), ASN/company/carrier info, abuse contacts, privacy detection, WHOIS lookups, mapping, summarization, and account management. No obvious gaps exist for core workflows.
Maintenance
Related MCP Connectors
IPInfo MCP — wraps ipinfo.io (free tier, no auth required for basic usage)
IP geolocation, ASN and network data, plus VPN, proxy and Tor detection. ASN tools need no key.
Free no-key IP intelligence: geolocation, VPN detection, DNS, WHOIS, blacklists, breach checks
IP Geolocation: This API provides fast, reliable, and developer-friendly IP geolocation, ASN.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables IP address intelligence lookup including geolocation, network information, privacy detection (VPN/proxy/Tor), company data, and abuse contacts using IPLocate.io API. Supports both IPv4 and IPv6 addresses with comprehensive analysis tools and security assessment capabilities.322 npmMIT
- AlicenseNot gradedqualityCmaintenanceProvides IP address geolocation and lookup via ip-api.com, no authentication required for basic usage.1 npmMIT
- AlicenseNot gradedqualityCmaintenanceProvides IP geolocation data via ipinfo.io, enabling querying IP addresses for location, ISP, and other details through natural language.2 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables IP address lookups and risk assessments for IPv4/IPv6, providing geolocation, ISP/ASN, and security flags such as VPN, proxy, Tor, datacenter, and mobile with a risk score.3 npmMIT