IPStack MCP Adapter
Server Details
IPStack MCP Adapter turns IPStack's REST APIs into Model Context Protocol tools so any MCP-compatible client can call them directly in conversation. The first release ships IPStack IP geolocation and security lookups (single IP, caller's IP, and bulk). Additional APILayer services are added by registering them in a single config file, so the catalog grows without client-side changes.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: single IP lookup, bulk IP lookup, and checking the originating request IP. The descriptions explicitly call out the differences, especially ipstack_check versus ipstack_lookup, so an agent should not confuse them.
All tool names follow a consistent ipstack_ prefix with descriptive suffixes: lookup, bulk_lookup, and check. The naming pattern is immediately predictable and uniform across the set.
Three tools is well-scoped for an IP geolocation adapter, covering the primary request types without unnecessary bloat. Each tool serves a distinct real-world use case and earns its place.
The tool surface covers the core ipstack workflows: single IP lookup, bulk lookup, and requester IP detection. There are no obvious dead ends or missing operations for the stated domain of IP geolocation and security details.
Available Tools
3 toolsipstack_bulk_lookupBulk IP Geolocation LookupARead-onlyInspect
Get geolocation and security details (country, region, city, timezone, latitude, longitude, ISP, currency, connection type, IP routing type, proxy/tor/threat flags) for multiple IPv4 or IPv6 addresses in one request. Useful for analyzing lists of IPs, grouping by country/region, or flagging suspicious origins. Requires a plan that supports bulk lookups.
| Name | Required | Description | Default |
|---|---|---|---|
| ips | Yes | Comma-separated list of IP addresses (Ex 8.8.8.8,1.1.1.1) | |
| model | No | Self-reported LLM identifier for analytics attribution (e.g. "claude-opus-4-7", "gpt-4o-2024-08-06"). Not used for authorization or billing. | |
| include | No | Optional response fields to include in addition to the default set. Available: type, region_code, continent_code, zip, msa, dma, radius, current_time, is_daylight_saving, currency_plural, currency_symbol_native, carrier, sld, tld, connection_home, organization_type, isic_code, naics_code, geoname_id, capital, languages, country_flag, country_flag_emoji, country_flag_emoji_unicode, proxy_type, proxy_level, threat_types, proxy_last_detected, vpn_service, anonymizer_status, hosting_facility, is_crawler, crawler_name, crawler_type. | |
| verbose | No | Include raw API response in output | |
| include_optional | No | Include all optional response fields. Overrides `include` when true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the bar for behavioral disclosure is lower. The description adds value by specifying a plan requirement for bulk lookups and summarizing the security/geolocation data returned. It does not mention rate limits or invalid IP behavior, but those are secondary for a read-only operation.
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?
Three sentences with no filler: the first states the core function and output domains, the second gives concrete use cases, and the third notes a key prerequisite. Information is front-loaded and every sentence earns its place.
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?
For a read-only bulk lookup, the description covers purpose, use cases, high-level output fields, and a plan prerequisite. Schema covers all input constraints. There is no output schema, but the field list partially compensates. Minor omissions like maximum batch size and error behavior are acceptable given the schema's maxLength and annotation's read-only hint.
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 100%, so the schema already documents all parameters including the comma-separated format for ips and the meaning of include, verbose, and include_optional. The description does not add meaning beyond the schema; it only mentions multiple addresses, which the schema already covers.
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 begins with a specific verb and resource: 'Get geolocation and security details ... for multiple IPv4 or IPv6 addresses in one request.' It clearly lists the domains covered (country, region, city, timezone, ISP, threat flags) and differentiates from likely single-IP siblings by emphasizing bulk lookup.
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?
Provides clear context: 'Useful for analyzing lists of IPs, grouping by country/region, or flagging suspicious origins' and notes the prerequisite that a plan must support bulk lookups. However, it does not explicitly name sibling tools or state when to use a single-IP lookup instead, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ipstack_checkConnection Origin IP CheckARead-onlyInspect
Return geolocation and security details (country, region, city, timezone, latitude, longitude, ISP, currency, connection type, IP routing type, proxy/tor/threat flags) for the IP address this request appears to originate from. Takes no parameters. That address belongs to whichever client or platform made the MCP call, and is not necessarily the end user's own device or network. To look up a specific IP address, use ipstack_lookup.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Self-reported LLM identifier for analytics attribution (e.g. "claude-opus-4-7", "gpt-4o-2024-08-06"). Not used for authorization or billing. | |
| include | No | Optional response fields to include in addition to the default set. Available: type, region_code, continent_code, zip, msa, dma, radius, current_time, is_daylight_saving, currency_plural, currency_symbol_native, carrier, sld, tld, connection_home, organization_type, isic_code, naics_code, geoname_id, capital, languages, country_flag, country_flag_emoji, country_flag_emoji_unicode, proxy_type, proxy_level, threat_types, proxy_last_detected, vpn_service, anonymizer_status, hosting_facility, is_crawler, crawler_name, crawler_type. | |
| verbose | No | Include raw API response in output | |
| include_optional | No | Include all optional response fields. Overrides `include` when true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes that this is a safe read operation, so the bar for additional disclosure is lower. The description adds useful context about the origin IP semantics and the categories of returned data. However, the claim 'Takes no parameters' is misleading because the input schema defines four optional parameters, so the description partially misrepresents how the tool is invoked.
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 brief and front-loaded, with the core behavior stated first and the sibling-tool routing near the end. The only structural flaw is the ambiguous 'Takes no parameters' sentence, which should be qualified as 'takes no IP address parameter' to avoid contradicting the 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?
For a read-only tool with no required parameters and a 100%-documented schema, the description covers the essential context: what it returns, whose IP it uses, and which alternative to use for specific IPs. The missing discussion of optional response fields is acceptable because the schema already documents them.
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 100%, so the baseline would normally be 3, but the description's flat statement 'Takes no parameters' conflicts with the actual schema, which includes model, include, verbose, and include_optional. The description neither clarifies that no IP parameter is required nor explains the optional parameters, so it actively confuses rather than adding value.
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 opens with a specific verb and resource: 'Return geolocation and security details ... for the IP address this request appears to originate from.' It clearly differentiates itself from ipstack_lookup by noting the IP is the request origin rather than a user-supplied address.
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?
It explicitly states when to use this tool, explains the important caveat that the IP belongs to the calling client/platform rather than the end user, and directly points to ipstack_lookup for specific IP lookups. This gives the agent clear decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ipstack_lookupIP Geolocation LookupARead-onlyInspect
Get geolocation and security details (country, region, city, timezone, latitude, longitude, ISP, currency, connection type, IP routing type, proxy/tor/threat flags) for a single IP address.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | IP address to lookup (Ex 8.8.8.8) | |
| model | No | Self-reported LLM identifier for analytics attribution (e.g. "claude-opus-4-7", "gpt-4o-2024-08-06"). Not used for authorization or billing. | |
| include | No | Optional response fields to include in addition to the default set. Available: type, region_code, continent_code, zip, msa, dma, radius, current_time, is_daylight_saving, currency_plural, currency_symbol_native, carrier, sld, tld, connection_home, organization_type, isic_code, naics_code, geoname_id, capital, languages, country_flag, country_flag_emoji, country_flag_emoji_unicode, proxy_type, proxy_level, threat_types, proxy_last_detected, vpn_service, anonymizer_status, hosting_facility, is_crawler, crawler_name, crawler_type. | |
| verbose | No | Include raw API response in output | |
| include_optional | No | Include all optional response fields. Overrides `include` when true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds value by enumerating the response contents, which is useful given there is no output schema. However, it does not disclose operational behaviors such as API-key requirements, paid-plan dependencies for security fields, or rate-limit behavior, so it does not go beyond what annotations and the field list already provide.
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?
A single sentence front-loads the core purpose before the parenthetical field list, with zero filler words. The field list is long but earns its place by setting concrete expectations for the response, which matters given the absence of 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 no output schema, the description reasonably conveys the return content, and the schema fully documents parameters while annotations cover safety. However, it omits operational context such as the need for an API key, tier-dependent field availability, and any guidance on how this tool relates to ipstack_check, leaving those gaps for the agent to discover.
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 100%, so every parameter (ip, model, include, verbose, include_optional) is already documented in the schema; the baseline of 3 applies. The description's field list does complement the 'include' parameter by implying which fields are default versus optional, but it adds no direct parameter-level meaning beyond the 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 uses a specific verb ('Get') with a clear resource ('geolocation and security details') and scope ('for a single IP address'). The field enumeration (country, region, city, timezone, ISP, proxy/tor/threat flags) precisely tells an agent what it will receive. The 'single IP address' qualifier cleanly distinguishes it from the sibling ipstack_bulk_lookup even without opening the schema.
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 phrase 'for a single IP address' provides clear contextual guidance that this tool handles one address at a time, implying ipstack_bulk_lookup is the alternative for multiple addresses. However, it never explicitly names the alternatives or states when not to use this tool, leaving the routing to inference rather than direct instruction.
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.
3 tool updates
- First observed
ipstack_bulk_lookup - First observed
ipstack_check - First observed
ipstack_lookup
Related MCP Connectors
IPInfo MCP — wraps ipinfo.io (free tier, no auth required for basic usage)
Official ParseAPI MCP. Place, IP, email, phone, weather, currency lookups.
Official IPinfo MCP Server - IP intelligence tools for AI assistants
Discover and call 10,000+ production APIs from one MCP server. Pay-per-call billing for AI agents.
Related MCP Servers
- AlicenseAqualityCmaintenanceA Model Context Protocol server that enables LLMs to perform IP geolocation, reverse geocoding, and detect the host's public IP without requiring API keys.312 npmMIT
- AlicenseAqualityAmaintenanceOfficial MCP server for ipgeolocation.io APIs. IP geolocation, VPN/proxy detection, timezone, astronomy, user-agent parsing, ASN, company, and IP abuse contact tools for AI assistants.1675 npm4MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP (Multi-Agent Conversation Protocol) server that enables natural language interaction with the AbstractAPI geolocation service, allowing users to retrieve geographic information about IP addresses.-
- FlicenseAqualityDmaintenanceProvides IP address geolocation and related info via an API, with MCP server integration for easy use in AI tools.1-
Glama MCP Gateway
Add one secure layer between your agents and this server.