// Copyright 2025 The Go MCP SDK Authors. All rights reserved. // Use of this source code is governed by the license // that can be found in the LICENSE file. package util import ( "net" "net/netip" "strings" ) func IsLoopback(addr string) bool { host, _, err := net.SplitHostPort(addr) if err != nil { // If SplitHostPort fails, it might be just a host without a port. host = strings.Trim(addr, "[]") } if host == "localhost" { return true } ip, err := netip.ParseAddr(host) if err != nil { return false } return ip.IsLoopback() }