edge-favorites-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@edge-favorites-mcpsearch for bookmarks with 'typescript' in them"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Edge Favorites MCP Server
A local MCP (Model Context Protocol) server that reads your Microsoft Edge browser favorites and lets you search them via an AI agent.
Tools
Tool | Description |
| Search bookmarks by keyword (matches name, URL, and folder) |
| List all bookmarks, optionally filtered by folder |
| List all unique folder paths |
Related MCP server: Chrome History & Bookmarks MCP Server
Installation
From GitHub Release
Download the latest
-bundled.tar.gzfrom ReleasesExtract it somewhere on your machine
Add to your MCP config (see below)
From Source
git clone https://github.com/danespinosa/edge-favorites-mcp.git
cd edge-favorites-mcp
npm installMCP Configuration
Add this to your MCP client config (e.g. ~/.copilot/mcp-config.json):
{
"mcpServers": {
"edge-favorites": {
"command": "node",
"args": ["/path/to/edge-favorites-mcp/index.js"]
}
}
}How It Works
The server reads the Edge Bookmarks JSON file and exposes search/list tools over the MCP stdio protocol. Bookmarks are read fresh on each request so new favorites are always picked up.
By default, it reads bookmarks from:
%LOCALAPPDATA%\Microsoft\Edge\User Data\Default\BookmarksLicense
MIT
Available Tools
4 toolslist_favoritesB
List all Edge browser favorites, optionally filtered by folder path.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max number of results to return (default 50) | |
| folder | No | Filter by folder path (case-insensitive substring match) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It implies a read operation ('List') but does not explicitly confirm no side effects, nor does it disclose pagination behavior (despite a 'limit' parameter in schema). Return format or sorting order is omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundant words. Every word contributes to understanding the tool's core function. Highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with 2 optional params, but no output schema exists. The description does not hint at return fields (e.g., URL, name, folder). For a basic list tool, this is minimally adequate but lacks completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% with both parameters described. The description adds no new semantic value beyond restating the folder filter (already in schema). Baseline 3 is appropriate given high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' and identifies the resource 'all Edge browser favorites', along with an optional filter by folder path. This clearly distinguishes it from sibling tools like 'search_favorites' (which searches) and 'list_folders' (which lists folders).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only mentions optional filtering, but provides no explicit guidance on when to use this tool versus alternatives (e.g., when to use 'search_favorites' for keyword searches or 'list_folders' for folder enumeration). No 'when not to use' or prerequisite conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_foldersA
List all unique folder paths in Edge favorites.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description only states the action. Does not disclose whether it is read-only, requires authentication, or any side effects. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence delivering complete functionality without waste. Front-loaded with verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple zero-param tool, but lacks output format details (e.g., array of strings vs objects). With no output schema, slightly more context would help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; description adds no parameter info, but baseline for 0 parameters is 4 per guidelines.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists all unique folder paths in Edge favorites, distinguishing it from siblings like list_favorites (likely lists all favorites) and read_favorite_content (reads a specific favorite).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like list_favorites or search_favorites. Agent must infer context from name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_favorite_contentA
Fetch the content of a favorite's URL to get more context about the page. Best effort: may fail for pages requiring authentication. Returns extracted text content.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL of the favorite to fetch | |
| maxLength | No | Max characters of content to return (default 5000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It discloses that the fetch is best-effort and may fail for authenticated pages, and that output is extracted text. However, it does not cover error handling, rate limits, or specific failure behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loads the action, and contains no extraneous information. Every sentence provides necessary context efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and no output schema, the description covers the main purpose, behavioral caveats, and return type. It could be slightly more complete by mentioning error cases or format expectations, but overall it is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear parameter descriptions. The tool description adds no additional parameter-level information beyond what the schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Fetch the content of a favorite's URL') and the purpose ('to get more context about the page'). It distinguishes from sibling tools (list_favorites, list_folders, search_favorites) that deal with listing or searching metadata rather than fetching content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a caveat about best-effort and potential failure for authenticated pages, which provides some usage guidance. However, it does not explicitly compare this tool to its siblings or state when to prefer it over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_favoritesA
Search Edge browser favorites/bookmarks by keyword. Matches against name, URL, and folder path. Tip: after getting results, use read_favorite_content on interesting URLs to get more context about what each link contains.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search keyword (case-insensitive) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It describes the search operation and match fields but does not explicitly state that it is read-only or has no side effects. This leaves uncertainty for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences. The first provides the core purpose, and the second adds a helpful tip. No unnecessary words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity with one parameter and no output schema, the description adequately covers the search behavior and match fields. The tip about using read_favorite_content adds workflow context. However, it does not describe the return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage for the single parameter is 100%, so the baseline is 3. The description adds value by explaining that the query matches against name, URL, and folder path, which is not in the schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches favorites/bookmarks by keyword, specifying it matches against name, URL, and folder path. This effectively distinguishes it from sibling tools like list_favorites and list_folders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (search by keyword) and includes a tip about next actions, but does not explicitly state when not to use it or how it differs from alternative tools like list_favorites for browsing all items.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v1.0.0- First observed
list_favorites - First observed
list_folders - First observed
read_favorite_content - First observed
search_favorites
TDQS
Scored across 4 tools
Each tool has a clear, distinct purpose: listing favorites (optionally filtered by folder), listing folders, reading content of a favorite's URL, and searching favorites. There is no ambiguity or overlap between them.
All tool names follow a consistent verb_noun pattern in snake_case (list_favorites, list_folders, read_favorite_content, search_favorites), making it easy for an agent to infer functionality.
With 4 tools, the server is well-scoped for browsing and searching Edge favorites. Each tool serves a distinct need without unnecessary redundancy or missing essential operations for the stated purpose.
The tools cover core exploration use cases (list, search, read content) but lack editing capabilities (add, delete, update favorites). For a read-only exploration server, this is a minor gap; however, full CRUD would be more complete.
Maintenance
Related MCP Connectors
Web search, browser automation, scraping, crawling and CAPTCHA solving for AI agents.
Web search and page-reading for AI agents. One-click OAuth connect, or a Caesar API key.
Search companies, enrich contacts, and reveal emails and phones from your AI agent.
SEO & marketing toolkit for AI agents: GA4, Search Console, AdSense, GTM, PageSpeed, Trends.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables semantic search across browser bookmarks from Chrome, Firefox, Edge, Opera, and other browsers using natural language queries. Extracts and indexes bookmark content and metadata into a vector database for intelligent retrieval.1Apache 2.0
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to search and analyze Chrome browser history and bookmarks data locally, including keyword searches, date range filtering, recent browsing activity, and usage statistics across all platforms.2-

blackmount-mcpofficial
AlicenseNot gradedqualityAmaintenanceEnables AI assistants to access and search local browser history, bookmarks, open tabs, and downloads for personalized context.MIT- AlicenseNot gradedqualityCmaintenanceEnables AI agents to organize and manage Chrome/Edge bookmarks through natural language, with user-controlled permissions, privacy filters, and safety mechanisms.Apache 2.0