Ip Geo Location Skill
IP geolocation lookup via MCP. Use when users ask IP location, IP geolocation, where an IP is from, IP lookup, ASN, IP to country/city, IP 地理位置查询, IP 归属地, 批量...
Description
name: ip-geo-location-skill description: "IP geolocation lookup via MCP. Use when users ask IP location, IP geolocation, where an IP is from, IP lookup, ASN, IP to country/city, IP 地理位置查询, IP 归属地, 批量 IP 查询." argument-hint: "Provide one or more IPs (IPv4/IPv6), e.g. 8.8.8.8, 1.1.1.1" user-invocable: true metadata: openclaw: requires: bins: - node
IP Geolocation Skill
Use this skill to query geographic and ASN information from IP addresses through the mcp-geoip-server MCP service.
This skill is designed for:
- Single IP lookup
- Multi-IP batch lookup
- Domain-to-IP then geolocation workflow
- Structured result output for quick user reading
MCP Server
- Name:
mcp-geoip-server - URL:
https://ip.api4claw.com/mcp - Transport: Streamable HTTP
VS Code MCP Configuration
Add to .vscode/mcp.json (workspace) or user MCP settings:
{
"servers": {
"mcp-geoip-server": {
"type": "http",
"url": "https://ip.api4claw.com/mcp"
}
}
}
Tools
get_ip_geolocation
Look up geolocation information for one IP.
Input:
| Name | Type | Required | Description |
|---|---|---|---|
ip_address |
string | Yes | IPv4 or IPv6 address to look up (e.g. 8.8.8.8 or 2001:4860:4860::8888) |
Output fields:
| Field | Description |
|---|---|
ip |
The queried IP address |
country |
Country name |
country_code |
ISO country code (e.g. US, CN) |
province |
Province or state |
city |
City name |
asn |
Autonomous System Number |
asn_org |
ASN organization name |
Detailed tool schema and protocol notes: API reference
Execution Workflow
- Extract query targets from user input.
- Classify each target as IPv4, IPv6, or domain.
- If target is a domain, resolve to IP first using resolve script.
- Call
get_ip_geolocationfor each IP. - Return concise and structured results.
- If multiple IPs are provided, present results in a table for easy comparison.
Input Handling Rules
- Trim whitespace and punctuation around candidate IPs.
- Keep duplicates out during batch lookup.
- Support both IPv4 and IPv6.
- If input is neither valid IP nor resolvable domain, return a clear validation error.
- For script-based calls, only valid IP literals are sent to remote MCP (invalid inputs are rejected locally).
- Private/reserved IP ranges (for example
127.0.0.1,10.x.x.x,192.168.x.x,fc00::/7) must not be sent to external MCP.
Security and Privacy
- This skill sends queried IP addresses to an external MCP service (
ip.api4claw.com). - The default endpoint uses HTTPS transport to encrypt traffic in transit.
- The script implementation is restricted to a fixed HTTPS endpoint (
https://ip.api4claw.com/mcp) to reduce misuse risk. - Private/internal IPs are blocked in the script implementation to reduce privacy leakage risk.
Output Format
Use this format by default:
| IP | Country | Province/State | City | Country Code | ASN | ASN Org |
|---|---|---|---|---|---|---|
| 8.8.8.8 | United States | - | - | US | 15169 | Google LLC |
If a field is empty, display -.
Error Handling
- MCP unavailable/timeout: explain temporary service issue and suggest retry.
- Invalid IP format: ask user to confirm/correct the IP.
- Private or reserved IP: explain that local/private addresses are intentionally blocked from external lookup.
- Empty/unknown location fields: keep response transparent and do not fabricate values.
- Encoding anomalies (for example garbled country text): include
country_codeand raw value. - Session timeout/invalid session ID: re-run MCP
initializeto get a newMcp-Session-Id, then retry the failed tool call once.
Domain-to-IP Flow
When user asks for a domain location (for example example.com):
- Resolve A/AAAA records with resolve script.
- Query each resolved IP using
get_ip_geolocation. - Summarize domain-level findings and list per-IP differences.
Implementation Scripts
- invoke MCP lookup: includes
initializebefore calls and auto re-initialize on session expiration. - resolve domain: resolves domain to unique A/AAAA addresses.
Example: Single IP
User: 8.8.8.8 在哪里?
Call:
get_ip_geolocation({ "ip_address": "8.8.8.8" })
Response (example):
{
"ip": "8.8.8.8",
"country": "美国",
"country_code": "US",
"province": "",
"city": "",
"asn": 15169,
"asn_org": "Google LLC"
}
Example: Batch IPs
User: 帮我查 8.8.8.8 和 1.1.1.1 的地理位置
Execution:
- Call
get_ip_geolocationwith8.8.8.8 - Call
get_ip_geolocationwith1.1.1.1 - Return merged table with both records
Success Criteria
- Every valid input IP returns one result row.
- Invalid targets are explicitly marked with reason.
- No inferred or fabricated geographic values.
- Response is readable for both Chinese and English users.
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!