canonicalResourceUri function

String canonicalResourceUri(
  1. String url
)

The canonical URI of an MCP server (RFC 8707 resource indicator): lower-case scheme and host, no fragment, no trailing slash.

Implementation

String canonicalResourceUri(String url) {
  final u = Uri.parse(url);
  if (!u.hasScheme || !u.hasAuthority) {
    throw ArgumentError.value(url, 'url', 'is not an absolute URI');
  }
  var path = u.path;
  while (path.endsWith('/')) {
    path = path.substring(0, path.length - 1);
  }
  final port = u.hasPort ? ':${u.port}' : '';
  return '${u.scheme.toLowerCase()}://${u.host.toLowerCase()}$port$path${u.hasQuery ? '?${u.query}' : ''}';
}