File size: 1,014 Bytes
e67ab0e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/**
 * Generates a Google favicon URL for the given server URL
 * @param serverUrl - The MCP server URL (e.g., "https://mcp.exa.ai/mcp")
 * @param size - The size of the favicon in pixels (default: 64)
 * @returns The Google favicon service URL
 */
export function getMcpServerFaviconUrl(serverUrl: string, size: number = 64): string {
	try {
		const parsed = new URL(serverUrl);
		// Extract root domain (e.g., "exa.ai" from "mcp.exa.ai")
		// Google's favicon service needs the root domain, not subdomains
		const hostnameParts = parsed.hostname.split(".");
		const rootDomain =
			hostnameParts.length >= 2 ? hostnameParts.slice(-2).join(".") : parsed.hostname;
		const domain = `${parsed.protocol}//${rootDomain}`;
		return `https://www.google.com/s2/favicons?sz=${size}&domain_url=${encodeURIComponent(domain)}`;
	} catch {
		// If URL parsing fails, just use the raw serverUrl - Google will handle it
		return `https://www.google.com/s2/favicons?sz=${size}&domain_url=${encodeURIComponent(serverUrl)}`;
	}
}