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
- Uptime
- 84.9% over 49 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: single IP lookup, bulk lookup, and requester IP check. The descriptions explicitly disambiguate ipstack_check from ipstack_lookup, so an agent is unlikely to confuse them.
All tools share the ipstack_ prefix and use snake_case, but the verb style is slightly inconsistent: ipstack_lookup and ipstack_bulk_lookup align with each other while ipstack_check uses a synonym instead of following the lookup pattern. This is a minor deviation rather than a chaotic naming scheme.
Three tools is well-scoped for an IP geolocation adapter: one for a single IP, one for bulk IPs, and one for the caller's own IP. Each tool covers a distinct, necessary operation with no redundancy.
The IPStack domain is read-only geolocation and security data, and the tool surface covers the full range of lookup types: single, bulk, and current requester. There are no obvious missing operations such as update or delete because they are not applicable to this domain.
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 declare readOnlyHint=true and openWorldHint=true, so the description doesn't need to discuss side effects. It adds contextual value by noting the plan requirement for bulk lookups and listing the fields available, but it doesn't disclose specifics like rate limits, error handling, or whether there's a maximum number of IPs beyond the schema's min/max length on the string. This is adequate given annotations cover the read-only nature.
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 a single paragraph of moderate length, hitting key points: what it does, examples of data returned, use cases, and the plan requirement. It is front-loaded with the action and resource. It could be slightly more concise, but every sentence adds value.
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?
The tool has 5 parameters and no output schema, but the description compensates by listing the default and optional fields, clarifying the 'include' behavior, and noting the plan prerequisite. It doesn't detail response format or error cases, but for a read-only bulk lookup, the description covers the essentials. A minor gap is the lack of a note that 'include_optional' overrides 'include' in the description, though the schema covers it.
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 coverage is 100%, so all parameters are documented. The description adds value by explaining the purpose of the 'include' parameter (optional fields for additional context) but doesn't go beyond the schema for parameters like 'model' or 'verbose'. Since the schema already covers parameter meanings, a baseline score of 3 is appropriate.
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 bulk IP geolocation and security lookups for multiple addresses, enumerating the types of data returned. It distinguishes itself from siblings by focusing on bulk versus single lookups, and the 'bulk' in the name is reinforced by the description's emphasis on lists.
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 use cases ('analyzing lists of IPs, grouping by country/region, flagging suspicious origins') and notes the plan requirement, which is essential. However, it doesn't explicitly contrast with single-lookup siblings (ipstack_lookup, ipstack_check) or state when to prefer one over the other, leaving that inference to the agent.
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?
Discloses that the IP is from the client/platform, not necessarily the end user's device, which is valuable. However, the claim 'Takes no parameters' is misleading given the schema contains four optional parameters, undermining behavioral transparency. Annotations provide readOnlyHint, so the description adds context but is partially inaccurate.
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?
Four concise sentences, front-loading the primary action and caveat. The 'Takes no parameters' is unnecessary and confuses, but the overall structure is 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?
List of returned fields is helpful, and the IP source caveat is important context. However, it omits any mention of the optional parameters (include, verbose, include_optional) that are part of the schema, and the misleading 'no parameters' statement leaves the tool's full capabilities undocumented. No output schema, but the description covers the return fields.
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 coverage is 100%, so baseline is 3. The description does not explain the optional parameters and actively misstates tool behavior by saying 'Takes no parameters', which detracts from understanding. No added semantic value beyond schema, and the incorrect statement lowers the 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?
Clearly states it returns geolocation and security details for the request origin IP, and explicitly differentiates from ipstack_lookup for specific IP lookups. The verb 'Return' plus the resource scope leaves no ambiguity.
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?
States that it takes no parameters (though optional ones exist) and directs users to ipstack_lookup for specific IP address lookups. This gives a clear usage context, but lacks an explicit 'when to use' clause; still sufficient to determine usage.
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 carry readOnlyHint=true and openWorldHint=true, and 'Get' is fully consistent with these, so no contradiction. The description adds value by detailing the exact output fields returned, which gives the agent expectations about what the response will contain beyond what the name implies. For a read-only lookup tool, the safety profile is covered by annotations and the field detail is useful added context.
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 a single front-loaded sentence that leads with the core purpose and then lists fields. It's dense with the field enumeration but every element is informative; no wasted words. Slightly long due to the field list, but that content 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 single-IP lookup with thorough annotations and a 100%-covered schema, the description is complete. It enumerates the main returned fields, states the single-IP scope, and the include/verbose/include_optional parameters are well documented in the schema. There's no output schema, but the description covers the expected return values well enough for an agent to call it correctly.
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 all 5 parameters are already well-documented in the schema (ip format, model attribution, include field options, verbose, include_optional). The description adds marginal value by listing the default response fields that map to the include parameter options, but the schema already documents these thoroughly, so the baseline of 3 applies.
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 states a specific verb ('Get'), a specific resource (geolocation and security details for a single IP address), and enumerates the returned fields (country, region, city, timezone, latitude, longitude, ISP, currency, connection type, IP routing type, proxy/tor/threat flags). The explicit 'for a single IP address' scope differentiates it from 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 usage context, implying this tool is for single-lookup scenarios rather than bulk operations. However, it doesn't explicitly name the alternatives (ipstack_bulk_lookup for multiple IPs, ipstack_check for validation) or state when NOT to use this tool, so exclusions are implied rather than 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.
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
jargon-translator MCP — wraps StupidAPIs (keyless — no credential needed)
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.36 npmMIT
- AlicenseAqualityCmaintenanceEnables IP geolocation, proxy detection, bulk IP lookup, and domain WHOIS searches through natural language in MCP-compatible clients.5MIT
- 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.1676 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.-
Glama MCP Gateway
Add one secure layer between your agents and this server.