{
  "server": {
    "name": "IPIPAI MCP Server",
    "version": "2.0.0",
    "protocolVersion": "2025-06-18",
    "transport": "Streamable HTTP",
    "endpoint": "https://ipipai.com/mcp",
    "description": "IP intelligence, network diagnostics, and AI service availability tools for AI agents. Implements MCP (Model Context Protocol) over JSON-RPC 2.0."
  },
  "capabilities": {
    "tools": { "listChanged": false }
  },
  "tools": [
    {
      "name": "lookup_ip",
      "title": "IP Intelligence Lookup",
      "description": "Query complete IP intelligence: geolocation, ISP, ASN, IP type (residential/datacenter/mobile/VPN/proxy/Tor), risk score, and IPIPAI composite score (0-100 with grade A+ to D). This is the primary tool for IP analysis.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ip": { "type": "string", "description": "IPv4 or IPv6 address (e.g. \"8.8.8.8\" or \"2606:4700:4700::1111\")" },
          "check_services": { "type": "boolean", "description": "If true, also check AI service accessibility (ChatGPT, Claude, Gemini, Copilot)", "default": false },
          "lang": { "type": "string", "enum": ["en", "zh"], "description": "Response language", "default": "en" }
        },
        "required": ["ip"]
      }
    },
    {
      "name": "check_ip_reputation",
      "title": "IP Reputation Check",
      "description": "Check IP reputation: proxy/VPN detection, Tor exit node, blacklist status, hosting/datacenter classification. Returns a verdict (Safe / Low / Medium / High / Critical Risk) with pass/fail checks.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ip": { "type": "string", "description": "IP address to check" }
        },
        "required": ["ip"]
      }
    },
    {
      "name": "check_service_access",
      "title": "Service Accessibility Check",
      "description": "Check if a specific service (ChatGPT, Claude, Netflix, Disney+, etc.) is accessible from a given IP location. Useful for diagnosing \"why can't I access X?\" questions.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ip": { "type": "string", "description": "IP address to check from" },
          "service": { "type": "string", "enum": ["chatgpt","claude","gemini","copilot","netflix","disney","youtube","spotify","tiktok","google","github","twitter"], "description": "Service ID to check" }
        },
        "required": ["ip", "service"]
      }
    },
    {
      "name": "rate_ip_node",
      "title": "IP Node Rating",
      "description": "Comprehensive rating for VPS, proxy nodes, and datacenter IPs. Returns overall score (0-100), grade (A+ to D), 5-star ratings for AI/streaming/stability/security/network, recommended use cases, and warnings.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ip": { "type": "string", "description": "IP address to rate" }
        },
        "required": ["ip"]
      }
    },
    {
      "name": "lookup_ip_location",
      "title": "IP Geolocation (OpenIPAPI)",
      "description": "Quick IP geolocation lookup via OpenIPAPI. Returns country and city for an IP address. Lightweight and fast — no API key required.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ip": { "type": "string", "description": "IP address to geolocate" }
        },
        "required": ["ip"]
      }
    },
    {
      "name": "resolve_dns",
      "title": "DNS Resolution",
      "description": "Resolve a domain name to its A (IPv4) and AAAA (IPv6) DNS records.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "domain": { "type": "string", "description": "Domain name to resolve (e.g. \"example.com\")" }
        },
        "required": ["domain"]
      }
    },
    {
      "name": "ping_host",
      "title": "Ping Test",
      "description": "Send ICMP ping packets to a host and measure latency. Returns min/avg/max latency and packet loss percentage.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "target": { "type": "string", "description": "IP address or hostname to ping" },
          "count": { "type": "number", "description": "Number of ping packets to send", "default": 4 }
        },
        "required": ["target"]
      }
    },
    {
      "name": "trace_route",
      "title": "Traceroute",
      "description": "Trace the network path from the server to a target host. Returns hop-by-hop IP, hostname, and latency for each hop.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "target": { "type": "string", "description": "IP address or hostname to trace" },
          "max_hops": { "type": "number", "description": "Maximum number of hops", "default": 30 }
        },
        "required": ["target"]
      }
    },
    {
      "name": "lookup_domain_whois",
      "title": "WHOIS Lookup",
      "description": "Query WHOIS registration info for a domain name or IP address. Returns registrar, creation date, expiry date, nameservers, and registrant info (if public).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": { "type": "string", "description": "Domain name or IP address to look up" }
        },
        "required": ["query"]
      }
    },
    {
      "name": "lookup_mac_vendor",
      "title": "MAC Address Vendor Lookup",
      "description": "Identify the manufacturer of a network device by its MAC address using the OUI database.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "mac": { "type": "string", "description": "MAC address (e.g. \"00:1A:2B:3C:4D:5E\" or \"001A2B3C4D5E\")" }
        },
        "required": ["mac"]
      }
    },
    {
      "name": "check_website_availability",
      "title": "Website Availability Check",
      "description": "Check if major websites (Google, GitHub, YouTube, Wikipedia, etc.) are accessible from the server location. Useful for censorship and network restriction detection.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": []
      }
    }
  ]
}
