get_most_visited
Retrieve your most frequently visited websites from browser history to identify browsing patterns and commonly accessed resources across major browsers like Chrome, Firefox, Safari, and Edge.
Instructions
Get the most frequently visited sites from browser history.
Args: limit: Maximum number of results to return (default: 20, max: 100) browser: Which browser to query ("brave", "safari", "chrome", "firefox", "edge", "arc", "opera", or "duckduckgo")
Returns: Formatted list of most visited sites with visit counts
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| browser | No | brave |
Implementation Reference
- mcp_server.py:737-865 (handler)The @mcp.tool decorated function that implements the get_most_visited tool. It queries the browser's history database for sites with visit_count > 1, ordered by visit count descending, handles browser-specific schemas and decryption for DuckDuckGo on macOS, converts timestamps appropriately, and returns a formatted list of top visited sites.@mcp.tool def get_most_visited(limit: int = 20, browser: Literal["brave", "safari", "chrome", "firefox", "edge", "arc", "opera", "duckduckgo"] = "brave") -> str: """ Get the most frequently visited sites from browser history. Args: limit: Maximum number of results to return (default: 20, max: 100) browser: Which browser to query ("brave", "safari", "chrome", "firefox", "edge", "arc", "opera", or "duckduckgo") Returns: Formatted list of most visited sites with visit counts """ if limit > 100: limit = 100 if browser == "duckduckgo": if is_duckduckgo_encrypted(): # DuckDuckGo macOS - encrypted database schema query = """ SELECT ZURLENCRYPTED, ZTITLEENCRYPTED, ZNUMBEROFTOTALVISITS, ZNUMBEROFTRACKERSBLOCKED, ZLASTVISIT FROM ZHISTORYENTRYMANAGEDOBJECT WHERE ZURLENCRYPTED IS NOT NULL AND ZNUMBEROFTOTALVISITS > 1 ORDER BY ZNUMBEROFTOTALVISITS DESC LIMIT ? """ results = query_duckduckgo_db(query, (limit,)) else: # DuckDuckGo Windows - Chromium-based query = """ SELECT url, title, visit_count, last_visit_time FROM urls WHERE visit_count > 1 AND url NOT LIKE 'https://static.ddg.local/%' ORDER BY visit_count DESC LIMIT ? """ results = query_history_db(query, (limit,), browser) elif browser == "safari": # Safari database schema query = """ SELECT history_items.url as url, history_visits.title as title, COUNT(history_visits.id) as visit_count, MAX(history_visits.visit_time) as last_visit_time FROM history_items JOIN history_visits ON history_items.id = history_visits.history_item GROUP BY history_items.url HAVING visit_count > 1 ORDER BY visit_count DESC LIMIT ? """ elif browser == "firefox": # Firefox database schema (places.sqlite) query = """ SELECT url, title, visit_count, last_visit_date as last_visit_time FROM moz_places WHERE hidden = 0 AND visit_count > 1 ORDER BY visit_count DESC LIMIT ? """ else: # Chromium-based browsers (Brave/Chrome/Edge) database schema query = """ SELECT url, title, visit_count, last_visit_time FROM urls WHERE visit_count > 1 ORDER BY visit_count DESC LIMIT ? """ # Query databases (DuckDuckGo already queried above) if browser != "duckduckgo": results = query_history_db(query, (limit,), browser) if not results: return f"No frequently visited sites found in {browser.capitalize()}" output = [f"Top {len(results)} most visited {browser.capitalize()} sites:\n"] for i, entry in enumerate(results, 1): title = entry['title'] or "No title" url = entry['url'] visit_count = entry['visit_count'] if browser == "duckduckgo": if is_duckduckgo_encrypted(): # macOS encrypted version has trackers blocked last_visit = cocoa_timestamp_to_datetime(entry['last_visit_time']) trackers_blocked = entry.get('trackers_blocked', 0) output.append(f"{i}. {title}") output.append(f" URL: {url}") output.append(f" Visits: {visit_count} | Trackers blocked: {trackers_blocked} | Last visited: {last_visit}") output.append("") else: # Windows Chromium version last_visit = chrome_timestamp_to_datetime(entry['last_visit_time']) output.append(f"{i}. {title}") output.append(f" URL: {url}") output.append(f" Visits: {visit_count} | Last visited: {last_visit}") output.append("") elif browser == "safari": last_visit = safari_timestamp_to_datetime(entry['last_visit_time']) output.append(f"{i}. {title}") output.append(f" URL: {url}") output.append(f" Visits: {visit_count} | Last visited: {last_visit}") output.append("") elif browser == "firefox": last_visit = firefox_timestamp_to_datetime(entry['last_visit_time']) output.append(f"{i}. {title}") output.append(f" URL: {url}") output.append(f" Visits: {visit_count} | Last visited: {last_visit}") output.append("") else: last_visit = chrome_timestamp_to_datetime(entry['last_visit_time']) output.append(f"{i}. {title}") output.append(f" URL: {url}") output.append(f" Visits: {visit_count} | Last visited: {last_visit}") output.append("") return "\n".join(output)
- mcp_server.py:737-737 (registration)The @mcp.tool decorator registers the get_most_visited function as an MCP tool with FastMCP.@mcp.tool
- mcp_server.py:738-748 (schema)Input schema defined by function parameters with type annotations and documentation docstring describing args and return type.def get_most_visited(limit: int = 20, browser: Literal["brave", "safari", "chrome", "firefox", "edge", "arc", "opera", "duckduckgo"] = "brave") -> str: """ Get the most frequently visited sites from browser history. Args: limit: Maximum number of results to return (default: 20, max: 100) browser: Which browser to query ("brave", "safari", "chrome", "firefox", "edge", "arc", "opera", or "duckduckgo") Returns: Formatted list of most visited sites with visit counts """