Skip to main content
Glama
netloc8
by netloc8

NetLoc8 MCP Server

Note: This repository is a read-only mirror. Please do not submit issues or pull requests here; contributions and development are managed internally.

⚠️ Deprecated: This Go binary is replaced by the @netloc8/mcp npm package and the hosted server at mcp.netloc8.com. See Migration below.

# New install (no Go required):
npx --yes --prefer-online @netloc8/mcp@latest

Go Reference Go 1.26+ License: ELv2 netloc8-mcp MCP server

An MCP server that gives AI assistants access to NetLoc8 — IP geolocation deployed to 300+ edge locations worldwide.

Works with or without an API key. Without a key, you get country-level geo data and local utility tools. With a free key, you unlock city-level detail, coordinates, timezone, and account management.

Why?

AI coding assistants run into IP geolocation constantly — parsing access logs, debugging proxy chains, geo-routing traffic, checking EU compliance, verifying CDN behavior. Without an MCP server, you have to copy-paste results from a browser tab. With this server, your AI assistant resolves IPs inline, in context, without breaking flow.

  • Zero-configgo install and add three lines to your MCP config

  • Works without a key — country-level lookups and local IP utilities with no sign-up

  • 14 tools — geo lookup, timezone, IP validation, subnet math, account management

  • 4 guided prompts — IP analysis, security audit, batch comparison, onboarding

  • Freemium built in — unauthenticated users see upgrade hints for city-level data

Related MCP server: IP Geolocation MCP Server

Example

Ask your AI assistant:

Where is 8.8.8.8?

The assistant calls geolocate_ip and responds with something like:

8.8.8.8 is located in Mountain View, California, US.

  Country     United States (US) 🇺🇸
  Region      California (CA)
  City        Mountain View
  Coordinates 37.386, -122.084
  Timezone    America/Los_Angeles (UTC-07:00)
  ASN         AS15169
  Org         Google LLC
  EU member   No

Other things you can ask:

Prompt

What happens

"Where is my server?"

Calls geolocate_me to look up the machine's own IP

"Is 10.0.0.1 a public IP?"

Calls is_public_ip locally — no API call, no quota

"Analyze 203.0.113.42"

Runs the analyze_ip prompt — classification, geo, network, timezone in one report

"Compare these IPs: 8.8.8.8, 1.1.1.1, 208.67.222.222"

Runs batch_geolocate — table with country, city, ASN for each

"Audit my NetLoc8 account"

Runs security_audit — reviews API keys, recent activity, usage

"What subnet is 203.0.113.42 in?"

Calls get_subnet locally — returns 203.0.113.0/24

"Set me up with NetLoc8 for Next.js"

Runs getting_started — creates a key, verifies it, shows SDK install

Install

Requires Go 1.26+.

go install github.com/netloc8/netloc8-mcp@latest

Configuration

Claude Code

One-liner:

claude mcp add --env NETLOC8_API_KEY=sk_live_YOUR_KEY netloc8 -- netloc8-mcp

Or add to .mcp.json in your project root (committable):

{
  "mcpServers": {
    "netloc8": {
      "command": "netloc8-mcp",
      "env": {
        "NETLOC8_API_KEY": "sk_live_YOUR_KEY"
      }
    }
  }
}

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "netloc8": {
      "command": "netloc8-mcp",
      "env": {
        "NETLOC8_API_KEY": "sk_live_YOUR_KEY"
      }
    }
  }
}

Cursor

Add to .cursor/mcp.json in your project root (or ~/.cursor/mcp.json for global):

{
  "mcpServers": {
    "netloc8": {
      "command": "netloc8-mcp",
      "env": {
        "NETLOC8_API_KEY": "sk_live_YOUR_KEY"
      }
    }
  }
}

VS Code

Add to .vscode/mcp.json in your project root:

{
  "servers": {
    "netloc8": {
      "command": "netloc8-mcp",
      "env": {
        "NETLOC8_API_KEY": "sk_live_YOUR_KEY"
      }
    }
  }
}

OpenAI Codex

One-liner:

codex mcp add --env NETLOC8_API_KEY=sk_live_YOUR_KEY netloc8 -- netloc8-mcp

Or add to ~/.codex/config.toml (global) or .codex/config.toml (project):

[mcp_servers.netloc8]
command = "netloc8-mcp"
env = { NETLOC8_API_KEY = "sk_live_YOUR_KEY" }

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "netloc8": {
      "command": "netloc8-mcp",
      "env": {
        "NETLOC8_API_KEY": "sk_live_YOUR_KEY"
      }
    }
  }
}

Antigravity

Add to ~/.gemini/config/mcp_config.json:

{
  "mcpServers": {
    "netloc8": {
      "command": "netloc8-mcp",
      "env": {
        "NETLOC8_API_KEY": "sk_live_YOUR_KEY"
      }
    }
  }
}

No API key? Remove the "env" block entirely. The server starts in unauthenticated mode with country-level geo lookups and local tools. Sign up for a free key at netloc8.com to unlock full features.

Environment Variables

Variable

Required

Default

Description

NETLOC8_API_KEY

No

Your NetLoc8 API key. Enables city-level data and account management.

NETLOC8_API_URL

No

https://api.netloc8.com

Override the API base URL (for staging/dev).

Available Tools

Geo Lookup (work with or without API key)

Tool

Description

geolocate_ip

Look up geolocation for any IPv4/IPv6 address

geolocate_me

Look up geolocation for the server's own IP

get_timezone

Get IANA timezone for an IP address

validate_ip

Check if a string is a valid IP address

Local Utilities (no API call, no quota)

Tool

Description

is_public_ip

Check if an IP is publicly routable

normalize_ip

Clean up IP strings (brackets, ::ffff: prefix, whitespace)

get_subnet

Derive /24 CIDR prefix from an IPv4 address

Account Management (requires API key)

Tool

Description

list_api_keys

List all API keys on your account

get_usage

Get request counts and plan limits

get_profile

Get account profile (name, email)

get_audit_log

View account activity log

create_api_key

Create a new API key

delete_api_key

Revoke an API key (irreversible)

renew_api_key

Extend an API key's expiration

Prompts

Prompts are guided workflows that chain multiple tools together. Select them from your MCP client's prompt picker, or just describe what you want — most clients will match you to the right prompt automatically.

Prompt

Description

analyze_ip

Deep-dive analysis of a single IP — classification, geolocation, network, timezone, EU status

security_audit

Review your NetLoc8 account — API key inventory, recent activity, usage, recommendations

batch_geolocate

Look up multiple IPs and produce a comparison table

getting_started

Guided onboarding — create a key, verify it, get SDK install instructions for your platform

Resources

URI

Description

netloc8://about

Product overview, SDKs, pricing, and quick start guide

netloc8://ip/{address}

Geo data for a specific IP address

What You Get

Feature

No API Key

Free Key

Paid Key

Country-level geo

City, coordinates, timezone

Local utility tools

Account management

Monthly requests

5,000

25,000+

Migration

This Go binary server is deprecated in favor of:

  1. npm package@netloc8/mcp — same tools, no Go required

  2. Hosted servermcp.netloc8.com — zero install, OAuth 2.1 auth

Migrate to npm package

Replace your MCP client config:

 {
   "mcpServers": {
     "netloc8": {
-      "command": "/path/to/netloc8-mcp",
+      "command": "npx",
+      "args": ["--yes", "--prefer-online", "@netloc8/mcp@latest"],
       "env": {
         "NETLOC8_API_KEY": "sk_live_YOUR_KEY"
       }
     }
   }
 }

All 14 tools, 4 prompts, and 2 resources are identical — no client-side changes needed.

License

Elastic License 2.0 (ELv2)

Available Tools

7 tools
geolocate_ipGeolocate IP AddressA
Read-onlyIdempotent

Look up geolocation data for an IPv4 or IPv6 address using NetLoc8's edge network. Returns country, city, region, coordinates, timezone, ASN, and EU membership status. Use this when you need the physical location of an IP address. Example: ip="8.8.8.8" → United States, Mountain View, CA, America/Los_Angeles.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYesthe IPv4 or IPv6 address to geolocate (e.g. 8.8.8.8 or 2001:4860:4860::8888)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true. Description adds value by naming the data source (NetLoc8's edge network) and detailing return fields. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with action and result, zero wasted words. Includes an example. Exemplary conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (one required parameter, no output schema), the description fully covers purpose, usage, parameter, and expected results. Sibling tools are listed. Complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage for the single parameter 'ip' is 100% with its own description. Description adds an example and mentions IPv4/IPv6, but does not fundamentally enhance understanding beyond schema. Baseline score due to high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'look up' and resource 'geolocation data for an IPv4 or IPv6 address', lists returned fields, and distinguishes from siblings like geolocate_me. High specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description explicitly says 'Use this when you need the physical location of an IP address' and provides an example. No explicit when-not-to-use, but context is clear. Sibling tool names provide additional orientation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

geolocate_meGeolocate My IPA
Read-onlyIdempotent

Look up geolocation data for this machine's public IP address using NetLoc8. Returns the same rich data as geolocate_ip (country, city, coordinates, ASN, EU status). Useful for determining the developer's location or the server's egress point. No arguments required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint true. The description adds value by detailing the return data fields (country, city, coordinates, ASN, EU status) and noting no arguments required, which is not in annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, front-loaded with the core purpose, no redundant information. Every sentence contributes meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, the description provides all necessary context: what it does, what data it returns, and typical use cases. Annotations cover safety. Complete for a simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so baseline is 4. The description confirms 'No arguments required', which is sufficient for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool looks up geolocation data for 'this machine's public IP', using a specific verb 'Look up' and resource. It distinguishes from the sibling 'geolocate_ip' by specifying the scope is the local machine's IP.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly mentions two use cases: determining developer location or server egress point. It implies that for other IPs one should use 'geolocate_ip', providing context without explicit when-not-to-use statements.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_subnetGet SubnetA
Read-onlyIdempotent

Derive the /24 CIDR prefix from an IPv4 address (e.g. 8.8.8.8 → 8.8.8.0/24). For IPv6 or invalid addresses, returns a message explaining why no /24 subnet applies. Runs locally — no API call, no quota usage.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYesthe IPv4 or IPv6 address to look up

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint. Description adds value by confirming local execution (no API/quota) and handling of IPv6/invalid inputs, which goes beyond structured metadata.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is two concise sentences. The first sentence directly states the primary function with an example; the second covers edge cases and execution context. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple computational tool with 1 parameter and no output schema, the description covers purpose, edge cases, and execution constraints (local, no quota). All essential information is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a description for the 'ip' parameter. Description adds meaning by explaining the result is a computed /24 for IPv4 and an error message otherwise, providing context beyond the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool derives a /24 CIDR prefix from an IPv4 address with an explicit example. It also specifies behavior for IPv6/invalid addresses, distinguishing it from sibling tools that perform geolocation or validation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description mentions local execution and no quota usage, implying use when network call avoidance is desired. However, it does not explicitly state when not to use it or compare to alternatives like validate_ip.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_timezoneGet TimezoneA
Read-onlyIdempotent

Get the IANA timezone string for an IP address. Lighter than a full geolocate_ip call when you only need the timezone. Useful for scheduling, date formatting, or timezone-aware code. Example: ip="8.8.8.8" → "America/Los_Angeles".

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYesthe IPv4 or IPv6 address to look up

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true. Description adds that it's lighter than geolocate_ip and provides an example input/output, which adds performance and usage context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two focused sentences plus an example line. No extraneous information. Purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with full schema and annotations, the description covers purpose, usage, and output. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description for the ip parameter. The description reinforces the example (ip='8.8.8.8') and output format, adding value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get the IANA timezone string for an IP address' and distinguishes from sibling tool geolocate_ip by noting it's lighter. The name and title align.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use: 'when you only need the timezone', and lists use cases: scheduling, date formatting, timezone-aware code. Contrasts with geolocate_ip as a heavier alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

is_public_ipCheck Public IPA
Read-onlyIdempotent

Check if an IP address is publicly routable. Rejects RFC1918, CGNAT, loopback, link-local, and ULA addresses. Example: ip="8.8.8.8" → public, ip="192.168.1.1" → private. Runs locally — no API call, no quota usage.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYesthe IPv4 or IPv6 address to look up

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnly and idempotent hints. Description adds critical behavioral detail: runs locally, no API call, no quota usage, and lists specific address types rejected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no redundancy. Front-loaded with purpose, then examples and key behavioral notes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple boolean check with one parameter, the description covers purpose, expected inputs, outputs, and performance characteristics completely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already describes the single parameter 'ip' fully. Description does not add new parameter details beyond confirming the examples match the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb+resource ('Check if an IP address is publicly routable'). Immediately distinguishes from siblings like geolocate_ip and validate_ip.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides example usage and explains what addresses are rejected. Lacks explicit when-not-to-use guidance, but context is strong enough for an agent to decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

normalize_ipNormalize IP AddressA
Read-onlyIdempotent

Normalize an IP address string: strip brackets, remove IPv4-mapped prefix (::ffff:), trim whitespace, and lowercase. Runs locally — no API call, no quota usage.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYesthe IPv4 or IPv6 address to look up

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=true and idempotentHint=true. The description adds significant behavioral context: the tool operates locally with no API call or quota usage, and details the exact transformations applied (strip brackets, remove IPv4-mapped prefix, trim, lowercase). No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences. The first sentence states the main action and details, the second adds usage context. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given low complexity (one parameter, no output schema), the description is complete. It explains the transformation, local execution, and zero cost. Sibling tools cover different operations, so no ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter 'ip'. The description adds meaning by explaining what normalization does to the IP string, which complements the schema. However, it does not add further per-parameter semantics beyond the schema's description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Normalize') and resource ('IP address string'), and lists clear actions (strip brackets, remove prefix, trim, lowercase). It distinguishes normalize_ip from sibling tools like geolocate_ip or validate_ip by focusing on transformation rather than lookup or validation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Runs locally — no API call, no quota usage', guiding the agent to use this tool when a quick, cost-free normalization is needed versus alternatives that may involve external calls. 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.

validate_ipValidate IP AddressA
Read-onlyIdempotent

Check if a string is a valid IPv4 or IPv6 address. Returns a human-readable message stating whether the input is valid. Useful for input validation before making a geo lookup. Example: ip="8.8.8.8" → valid, ip="not-an-ip" → invalid. Runs locally — no API call, no quota usage.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYesthe IPv4 or IPv6 address to look up

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint. The description adds that it runs locally with no API call or quota usage, providing extra behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose and output, then use case, then examples/performance. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 1 parameter with full schema coverage, no output schema, and clear annotations, the description fully covers what the tool does, when to use it, and its local execution nature.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 adds examples and clarifies that the parameter is the input to validate, providing more meaning than the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks if a string is a valid IPv4 or IPv6 address, using specific verb 'check' and resource 'IP address'. It distinguishes from sibling tools (geolocate, subnet, etc.) by focusing on validation only.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly suggests using before a geo lookup, and notes it runs locally with no API call, which aids in deciding when to use. Does not explicitly list alternatives or when-not scenarios, but context is clear.

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.

  1. 7 tool updatesv0.1.0
    • First observedgeolocate_ip
    • First observedgeolocate_me
    • First observedget_subnet
    • First observedget_timezone
    • First observedis_public_ip
    • First observednormalize_ip
    • First observedvalidate_ip

TDQS

A4.6/5.0

Scored across 7 tools

Disambiguation5/5

All tools have clearly distinct purposes: full geolocation (geolocate_ip, geolocate_me), subnet derivation, timezone lookup, public IP check, normalization, and validation. No overlap in functionality.

Naming Consistency5/5

Tool names follow a consistent verb_noun snake_case pattern: geolocate_ip, get_subnet, is_public_ip, normalize_ip, validate_ip. The pattern is uniform and predictable.

Tool Count5/5

With 7 tools, the server is well-scoped for IP geolocation and utility tasks. Each tool serves a distinct need without being too few or too many.

Completeness5/5

The tool set covers essential IP operations: geolocation (full and for current machine), subnet info, timezone, validation, normalization, and public/private check. No obvious gaps for common use cases.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

  • The official Model Context Protocol server for Ambee. It gives any MCP-compatible AI assistant — Claude, ChatGPT, Cursor, VS Code, Ollama, and more direct access to live air quality, pollen, and weather data. To get started, including information on signing up and obtaining your Ambee key, check out the Ambee documentation on https://docs.ambeedata.com

  • 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.

  • A Model Context Protocol server for Wix AI tools

  • Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    A Model Context Protocol server that provides LLM Agents with a comprehensive toolset for IP geolocation, network diagnostics, system monitoring, cryptographic operations, and QR code generation.
    5
    48 npm
    18
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    A Model Context Protocol server that retrieves detailed geographic information about IP addresses using the ipinfo.io API, helping determine user location and network details.
    5
    44
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    A Model Context Protocol server that provides geocoding services by integrating with the Nominatim API, allowing AI assistants to perform location-based lookups.
    2
    556 npm
    3
    MIT