Overview
What it does
IPInfo MCP Server provides comprehensive IP intelligence including geolocation, network data, security insights, and abuse detection. Make informed decisions about traffic, enhance security, and personalize experiences based on visitor location and network characteristics.Key Features:
- IP geolocation (country, city, region, coordinates)
- Network intelligence (ASN, carrier, company info)
- Privacy detection (VPN, proxy, Tor, hosting)
- Abuse and threat intelligence
- Batch processing up to 500,000 IPs
- WHOIS lookups (IP, domain, ASN)
- Hosted domains and IP range discovery
- Visual IP mapping
Use Cases
Business Scenarios:
- Fraud Detection: Identify suspicious IPs from VPNs, proxies, or known abuse networks
- Content Personalization: Show localized content, pricing, and language options
- Network Security: Monitor and block traffic from high-risk sources
- Access Control: Enforce geographic restrictions and compliance requirements
- Analytics Enhancement: Enrich visitor data with location and network context
- Customer Support: Provide geographic context for better assistance
- B2B Lead Qualification: Identify enterprise visitors by company and network
- Compliance: Meet GDPR, export controls, and licensing requirements
Quick Start
1
Get Your Access Token
Sign up for an IPInfo account at ipinfo.io/signupFree Tier Includes:
- 50,000 requests per month
- Core IP data (location, ASN, company)
- City-level geolocation
- No credit card required
- Verify your email address
- Log in to your IPInfo account
- Go to your Dashboard
- Copy your access token
- The token will look like:
abc123def456
IPInfo offers Free, Basic, Standard, and Business tiers. The Free tier provides 50,000 requests/month - perfect for getting started and many production use cases.
2
Add to NimbleBrain Studio
In NimbleBrain Studio:
- Navigate to MCP Servers in the sidebar
- Click Add Server
- Search for “IPInfo” in the server registry
- Click Configure
- Paste your access token in the IPINFO_API_TOKEN field
- Click Save & Enable
The server will automatically connect and become available in your AI assistant within seconds.
3
Test the Connection
In your Studio chat, try this prompt:You should see detailed information about Google’s DNS server including:
- Location: Mountain View, California, United States
- Organization: Google LLC
- ASN: AS15169
Available Tools
get_ip_info
get_ip_info
Get comprehensive information about an IP address including location, network, company, privacy, and abuse data.Parameters:
Returns:Example Usage:
| Parameter | Type | Required | Description |
|---|---|---|---|
| ip | string | No | IP address to lookup (if omitted, returns current IP info) |
get_account_info
get_account_info
View your IPInfo account information, API limits, and available features.Parameters:
None required.Returns:Example Usage:
batch_lookup
batch_lookup
Look up multiple IP addresses in a single request (more efficient than sequential lookups).Parameters:
Returns:Example Usage:
| Parameter | Type | Required | Description |
|---|---|---|---|
| ips | array | Yes | List of IP addresses to lookup (can include field paths like “8.8.8.8/city”) |
summarize_ips
summarize_ips
Analyze a list of IP addresses and get summary statistics with geographic distribution.Parameters:
Returns:Example Usage:
| Parameter | Type | Required | Description |
|---|---|---|---|
| ips | array | Yes | List of IP addresses to summarize (up to 500,000) |
Perfect for analytics reports and understanding your traffic patterns. Supports up to 500,000 IPs in one request.
map_ips
map_ips
Create a visual map showing the geographic locations of IP addresses.Parameters:
Returns:Example Usage:
| Parameter | Type | Required | Description |
|---|---|---|---|
| ips | array | Yes | List of IP addresses to map (up to 500,000) |
get_asn_info
get_asn_info
Get detailed information about an Autonomous System Number (ASN) including network prefixes and peering relationships.Parameters:
Returns:Example Usage:
| Parameter | Type | Required | Description |
|---|---|---|---|
| asn | integer | Yes | ASN number (without ‘AS’ prefix, e.g., 15169 for Google) |
Useful for understanding network infrastructure, identifying hosting providers, and analyzing peering relationships.
get_company_info
get_company_info
Get company information associated with an IP address.Parameters:
Returns:Type Values: isp, business, education, hosting, inactiveExample Usage:
| Parameter | Type | Required | Description |
|---|---|---|---|
| ip | string | Yes | IP address to lookup |
get_carrier_info
get_carrier_info
Get mobile carrier information for an IP address.Parameters:
Returns:Example Usage:
| Parameter | Type | Required | Description |
|---|---|---|---|
| ip | string | Yes | IP address to lookup |
MCC (Mobile Country Code) and MNC (Mobile Network Code) help identify the specific carrier network. Useful for mobile traffic analysis.
get_privacy_info
get_privacy_info
Detect if an IP is using privacy services like VPN, proxy, Tor, or hosting providers.Parameters:
Returns:Example Usage:
| Parameter | Type | Required | Description |
|---|---|---|---|
| ip | string | Yes | IP address to check |
get_abuse_contact
get_abuse_contact
Get abuse contact information for reporting malicious activity from an IP address.Parameters:
Returns:Example Usage:
| Parameter | Type | Required | Description |
|---|---|---|---|
| ip | string | Yes | IP address to lookup |
get_hosted_domains
get_hosted_domains
Get a list of domains hosted on a specific IP address.Parameters:
Returns:Example Usage:
| Parameter | Type | Required | Description |
|---|---|---|---|
| ip | string | Yes | IP address to lookup |
| page | integer | No | Page number (starts at 0) |
| limit | integer | No | Results per page (max 1000, default 100) |
Useful for investigating shared hosting, identifying all sites on a server, or detecting malicious domains sharing infrastructure.
get_ip_ranges
get_ip_ranges
Get IP ranges owned by a domain or organization.Parameters:
Returns:Example Usage:
| Parameter | Type | Required | Description |
|---|---|---|---|
| domain | string | Yes | Domain name to lookup |
whois_lookup_by_ip
whois_lookup_by_ip
Perform WHOIS lookup for an IP address or IP range.Parameters:
Returns:Example Usage:
| Parameter | Type | Required | Description |
|---|---|---|---|
| ip | string | Yes | IP address or range to lookup |
| page | integer | No | Page number for paginated results |
| source | string | No | Filter by WHOIS source (arin, ripe, afrinic, apnic, lacnic) |
WHOIS data provides official registration information including network ownership, allocation dates, and administrative contacts.
whois_lookup_by_domain
whois_lookup_by_domain
Perform WHOIS lookup for an organization by domain name.Parameters:
Returns:Example Usage:
| Parameter | Type | Required | Description |
|---|---|---|---|
| domain | string | Yes | Domain name to lookup |
| page | integer | No | Page number for paginated results |
| source | string | No | Filter by WHOIS source (arin, ripe, afrinic, apnic, lacnic) |
whois_lookup_by_asn
whois_lookup_by_asn
Perform WHOIS lookup for an Autonomous System Number.Parameters:
Returns:Example Usage:
| Parameter | Type | Required | Description |
|---|---|---|---|
| asn | integer | Yes | ASN number to lookup |
| page | integer | No | Page number for paginated results |
| source | string | No | Filter by WHOIS source (arin, ripe, afrinic, apnic, lacnic) |
get_ip_city
get_ip_city
Get just the city for an IP address (faster than full lookup).Parameters:
Returns:
String with city name, e.g.,
| Parameter | Type | Required | Description |
|---|---|---|---|
| ip | string | No | IP address (if omitted, returns current city) |
"Mountain View"Example Usage:get_ip_country
get_ip_country
Get just the country code for an IP address.Parameters:
Returns:
String with two-letter country code (ISO-3166), e.g.,
| Parameter | Type | Required | Description |
|---|---|---|---|
| ip | string | No | IP address (if omitted, returns current country) |
"US"Example Usage:get_ip_region
get_ip_region
Get just the region/state for an IP address.Parameters:
Returns:
String with region or state name, e.g.,
| Parameter | Type | Required | Description |
|---|---|---|---|
| ip | string | No | IP address (if omitted, returns current region) |
"California"Example Usage:get_ip_location
get_ip_location
Get just the coordinates for an IP address.Parameters:
Returns:
String with latitude,longitude coordinates, e.g.,
| Parameter | Type | Required | Description |
|---|---|---|---|
| ip | string | No | IP address (if omitted, returns current location) |
"37.4056,-122.0775"Example Usage:get_ip_postal
get_ip_postal
Get just the postal/ZIP code for an IP address.Parameters:
Returns:
String with postal or ZIP code, e.g.,
| Parameter | Type | Required | Description |
|---|---|---|---|
| ip | string | No | IP address (if omitted, returns current postal code) |
"94043"Example Usage:get_ip_timezone
get_ip_timezone
Get just the timezone for an IP address.Parameters:
Returns:
String with IANA timezone, e.g.,
| Parameter | Type | Required | Description |
|---|---|---|---|
| ip | string | No | IP address (if omitted, returns current timezone) |
"America/Los_Angeles"Example Usage:get_ip_hostname
get_ip_hostname
Get just the hostname (reverse DNS) for an IP address.Parameters:
Returns:
String with hostname, e.g.,
| Parameter | Type | Required | Description |
|---|---|---|---|
| ip | string | No | IP address (if omitted, returns current hostname) |
"dns.google"Example Usage:get_ip_org
get_ip_org
Get just the organization/ASN for an IP address.Parameters:
Returns:
String with ASN and organization name, e.g.,
| Parameter | Type | Required | Description |
|---|---|---|---|
| ip | string | No | IP address (if omitted, returns current organization) |
"AS15169 Google LLC"Example Usage:Authentication
Access Token Required: This server requires an IPInfo access token to function.
Getting Your Access Token
- Visit ipinfo.io/signup
- Click Sign Up or Log In
- Choose your plan:
- Free: 50,000 requests/month, no credit card required
- Basic: 150,000 requests/month + privacy detection ($49/mo)
- Standard: 250,000 requests/month + ASN details ($99/mo)
- Business: 500,000+ requests/month, full API access (custom pricing)
- Verify your email address
- Log in to your dashboard
- Copy your access token from the dashboard
- The token will look like:
abc123def456ghi789
Rate Limits & Pricing
| Plan | Requests/Month | Key Features | Price |
|---|---|---|---|
| Free | 50,000 | Core IP data, geolocation, ASN, company | $0 |
| Basic | 150,000 | + Privacy detection (VPN, proxy, Tor) | $49/mo |
| Standard | 250,000 | + Detailed ASN, domains, IP ranges | $99/mo |
| Business | 500,000+ | Full API access, bulk data, priority support | Custom |
- Each single IP lookup = 1 request
- Batch lookups count per IP in the batch
- Failed requests (errors) don’t count toward your limit
- Limits reset on the 1st of each month
Managing Your Token in Studio
Your access token is securely stored in NimbleBrain Studio. To update it:- Go to Settings → MCP Servers
- Find “IPInfo” in your server list
- Click Edit Configuration
- Update your IPINFO_API_TOKEN field
- Click Save
Studio automatically manages server connections - no manual restarts required. Changes take effect immediately.
Example Workflows
- Fraud Detection
- Content Personalization
- Network Intelligence
- Security Monitoring
- Customer Support
- Compliance & Geo-Blocking
- Analytics Enhancement
- VPN & Proxy Detection
- Bulk IP Analysis
Scenario: Identify suspicious login attempts and prevent account takeoverPrompt:What happens:
- Looks up IP geolocation (country, city, region)
- Checks privacy detection (VPN, proxy, Tor, hosting)
- Retrieves abuse contact information
- Identifies network type and reputation
- Returns comprehensive threat assessment
- IP is from: Amsterdam, Netherlands
- Privacy: VPN detected (NordVPN)
- Hosting: Yes (datacenter IP)
- Risk Level: Medium-High
- Recommendation: Require additional authentication
All examples work in NimbleBrain Studio’s natural language interface - no code required!
Troubleshooting
Rate Limit Exceeded
Rate Limit Exceeded
Error Message:Cause: You’ve exceeded your monthly request limit (50,000 for Free tier)Solutions:
-
Check your current usage:
- Use Studio: “How many IPInfo requests have I used?”
- Or check the IPInfo dashboard
-
Wait for limit reset:
- Limits reset on the 1st of each month
- Check exact reset date in your dashboard
-
Upgrade your plan:
- Visit ipinfo.io/account
- Basic: 150K requests/mo ($49)
- Standard: 250K requests/mo ($99)
- Business: 500K+ requests/mo (custom)
-
Optimize usage:
- Cache frequently looked-up IPs (24-hour cache recommended)
- Use batch endpoints instead of sequential lookups
- Remove duplicate IPs before lookup
- Use single-field tools when you only need one piece of data
- Filter private IPs before API calls (10.x, 192.168.x, 127.x)
Invalid Access Token
Invalid Access Token
Error Message:Cause: Access token is incorrect, expired, or improperly configuredSolutions:
-
Verify your access token:
- Log in to ipinfo.io
- Go to your Dashboard
- Copy your access token exactly (no extra spaces)
-
Update in Studio:
- Go to Settings → MCP Servers
- Find “IPInfo” in the list
- Click Edit Configuration
- Paste the correct token in IPINFO_API_TOKEN field
- Click Save
-
Check account status:
- Ensure your IPInfo account is active
- Verify email address if newly registered
- Check for any account suspension notices
-
Token format:
- Should be a long alphanumeric string
- No special characters or prefixes
- Example:
abc123def456ghi789
Invalid IP Address
Invalid IP Address
Error Message:Cause: IP address format is invalid or not publicly routableSolutions:
-
Verify IP format:
- IPv4:
xxx.xxx.xxx.xxx(e.g.,8.8.8.8) - IPv6: full notation (e.g.,
2001:4860:4860::8888)
- IPv4:
-
Common mistakes:
- Remove protocol prefixes: ❌
http://8.8.8.8→ ✅8.8.8.8 - Remove port numbers: ❌
8.8.8.8:80→ ✅8.8.8.8 - Remove paths: ❌
8.8.8.8/path→ ✅8.8.8.8 - Check for typos: missing dots, extra digits
- Remove protocol prefixes: ❌
-
Private IPs not supported:
- Cannot lookup: 10.x.x.x, 192.168.x.x, 172.16-31.x.x
- Cannot lookup: 127.x.x.x (localhost)
- Only public, routable IPs work
- ✅
8.8.8.8(Google DNS) - ✅
1.1.1.1(Cloudflare DNS) - ✅
2001:4860:4860::8888(IPv6)
IPInfo cannot look up private network IPs (RFC 1918 ranges). These are only meaningful within local networks and don’t have geographic data.
Bogon IP Address
Bogon IP Address
Error Message:Cause: Trying to lookup a reserved, invalid, or unallocated IP rangeWhat are Bogons?
Bogon IPs are addresses from reserved, unallocated, or invalid ranges that should not appear on the public internet.Solutions:
-
Verify IP is publicly routable:
- Not a private IP (10.x, 192.168.x, 172.16-31.x)
- Not loopback (127.x.x.x)
- Not link-local (169.254.x.x)
- Not multicast (224-239.x.x.x)
-
Check for special ranges:
- Test networks: 192.0.2.x, 198.51.100.x, 203.0.113.x
- Benchmark: 198.18.x.x, 198.19.x.x
- Reserved: 240.x.x.x - 255.x.x.x
-
Validate source data:
- Check logs for corrupted IP entries
- Verify IP extraction from headers
- Filter out 0.0.0.0 and 255.255.255.255
- Loopback: 127.0.0.0/8 (localhost)
- Private: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16
- Link-local: 169.254.0.0/16 (DHCP failure)
- Multicast: 224.0.0.0/4 (group communications)
- Documentation: 192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24
- Benchmark: 198.18.0.0/15 (network testing)
Incomplete Data Returned
Incomplete Data Returned
Issue: Some fields are missing from the responseThis is usually normal, not an error:Reasons for missing data:
-
Plan tier limitations:
- Privacy detection (vpn, proxy, tor): Requires Basic tier or higher
- Detailed ASN data: Requires Standard tier or higher
- Domains and IP ranges: Requires Standard tier or higher
- Full abuse contacts: Requires higher tiers
-
Data legitimately unavailable:
- Some IPs don’t have city-level data (only country)
- Some networks don’t publish company information
- Some IPs don’t have reverse DNS (hostname)
- Mobile carrier data only available for mobile IPs
- Check what’s included in your tier:
- Country, region, city
- Coordinates (loc)
- Postal code
- Timezone
- Organization/ASN
- Basic company info
- Privacy detection
- VPN/proxy/Tor identification
- Detailed ASN data
- Hosted domains
- IP ranges
- Full WHOIS data
- Bulk downloads
- Priority support
Server Not Responding
Server Not Responding
Error Message:orCause: Network connectivity issue or service temporarily unavailableSolutions:
-
Check your internet connection:
- Verify you can access other websites
- Test with: “Look up IP 8.8.8.8”
-
Verify server status in Studio:
- Go to Settings → MCP Servers
- Find “IPInfo” in the list
- Check if status shows “Active” or “Inactive”
-
Try toggling the server:
- Click “IPInfo” in your server list
- Toggle it Off, wait 5 seconds
- Toggle it On again
-
Check IPInfo API status:
- Visit status.ipinfo.io
- Check Twitter/X @ipinfoio for announcements
-
Check Studio status:
- Verify NimbleBrain Studio is fully operational
- Check for any maintenance notifications
Studio manages all server infrastructure automatically - there’s no local setup or Docker containers to troubleshoot. If issues persist after toggling, check API status or contact support.
Slow Response Times
Slow Response Times
Issue: IP lookups taking longer than expectedExpected performance:
- Single lookup: < 500ms
- Batch (10 IPs): 1-2 seconds
- Batch (100 IPs): 3-5 seconds
- Summarize/Map (500+ IPs): 5-15 seconds
-
Check network latency:
- Test your internet speed
- IPInfo servers are globally distributed
- Geographic distance affects latency
-
Optimize requests:
- Use batch endpoints for multiple IPs (much faster)
- Use single-field tools (get_ip_city) instead of full lookup
- Cache frequently looked-up IPs
- Remove duplicate IPs before batch lookup
-
Check API status:
- Visit status.ipinfo.io
- Higher tiers get priority processing
- Free tier may be slower during peak times
-
Reduce payload size:
- Don’t request fields you don’t need
- Use field paths in batch:
["8.8.8.8/city", "1.1.1.1/country"] - Smaller responses = faster transfers
Studio automatically handles request optimization and retry logic. Consistent slow responses may indicate network issues or high API load.
Batch Lookup Failed
Batch Lookup Failed
Error Message:Cause: Batch request format issue or contains invalid IPsSolutions:
-
Verify batch format:
- Must be an array of IP strings
- Example:
["8.8.8.8", "1.1.1.1", "208.67.222.222"] - Maximum 1,000 IPs per batch request
-
Check for invalid IPs:
- Remove private IPs (10.x, 192.168.x, 172.16-31.x)
- Remove bogon IPs
- Validate each IP format before batch
- One invalid IP can fail the entire batch
-
Split large batches:
- If you have >1,000 IPs, split into multiple batches
- Process in chunks of 500-1,000
- Use summarize_ips for very large lists (up to 500K)
-
Remove duplicates:
- Deduplicate your IP list first
- Saves API calls and improves performance
Privacy Detection Not Working
Privacy Detection Not Working
Issue: VPN/proxy detection returning no data or always falseCause: Privacy detection requires Basic tier or higherSolutions:
-
Check your plan tier:
- Free tier: Does not include privacy detection
- Basic tier and higher: Includes VPN, proxy, Tor detection
- Upgrade at ipinfo.io/account
-
Verify in dashboard:
- Log in to ipinfo.io
- Check “Available Features” section
- Should show “Privacy Detection: Enabled”
-
Use the right tool:
- Use
get_privacy_info(ip)for privacy detection - Not included in basic
get_ip_info()on Free tier
- Use
-
Known limitations:
- Privacy detection is not 100% accurate
- New VPN services may not be detected immediately
- Residential proxies are harder to detect
Best Practices
For Optimal Performance
- Cache frequently looked-up IPs (24-hour TTL recommended)
- Use batch endpoints for multiple IPs (10x faster)
- Use single-field tools when you only need one data point
- Pre-filter private IPs (10.x, 192.168.x) before API calls
- Deduplicate IP lists before batch processing
- Implement retry logic for timeout errors
For Cost Optimization
- Monitor usage with
get_account_infotool - Implement aggressive caching (IPs rarely change location)
- Use batch endpoints to reduce per-IP cost
- Filter out private/bogon IPs before lookup
- Cache negative results (invalid IPs) to prevent retries
- Consider bulk data downloads for very high volume
For Security & Fraud Prevention
- Enable privacy detection (requires Basic tier)
- Flag hosting/datacenter IPs as high-risk
- Monitor for VPN/proxy usage patterns
- Track geographic anomalies (country hopping)
- Check abuse contacts for reported IPs
- Combine with user behavior analysis
- Implement progressive risk scoring
For Compliance & Privacy
- Document your use of IP data in privacy policy
- Only collect/store necessary IP information
- Implement data retention policies
- Anonymize IPs in logs after processing
- Comply with GDPR (EU) and CCPA (California) requirements
- Provide opt-out mechanisms where required
- Secure API tokens with encryption
Links & Resources
GitHub Repository
View source code, report issues, and contribute
IPInfo API Documentation
Official IPInfo API reference and guides
Get Access Token
Sign up for IPInfo API (Free or paid tiers)
NimbleBrain Studio
Access your Studio workspace
Report Issues
Found a bug? Submit an issue on GitHub
IPInfo Dashboard
Manage your API keys and monitor usage
Related MCP Servers
OpenWeatherMap
Location-based weather data
Google Maps
Geocoding and mapping
Salesforce
Enrich CRM with location data
Google Analytics
Enhanced visitor analytics
Stripe
Location-based payment fraud
Cloudflare
Network security and DDoS protection
Need help? Join the NimbleBrain Discord or email [email protected]