Skip to main content
Glama
danespinosa

edge-favorites-mcp

by danespinosa

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_favorites

Search bookmarks by keyword (matches name, URL, and folder)

list_favorites

List all bookmarks, optionally filtered by folder

list_folders

List all unique folder paths

Related MCP server: Chrome History & Bookmarks MCP Server

Installation

From GitHub Release

  1. Download the latest -bundled.tar.gz from Releases

  2. Extract it somewhere on your machine

  3. Add to your MCP config (see below)

From Source

git clone https://github.com/danespinosa/edge-favorites-mcp.git
cd edge-favorites-mcp
npm install

MCP 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\Bookmarks

License

MIT

Available Tools

4 tools
list_favoritesB

List all Edge browser favorites, optionally filtered by folder path.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax number of results to return (default 50)
folderNoFilter by folder path (case-insensitive substring match)

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL of the favorite to fetch
maxLengthNoMax characters of content to return (default 5000)

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch keyword (case-insensitive)

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 4 tool updatesv1.0.0
    • First observedlist_favorites
    • First observedlist_folders
    • First observedread_favorite_content
    • First observedsearch_favorites

TDQS

A3.9/5.0

Scored across 4 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    1
    Apache 2.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to access and search local browser history, bookmarks, open tabs, and downloads for personalized context.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to organize and manage Chrome/Edge bookmarks through natural language, with user-controlled permissions, privacy filters, and safety mechanisms.
    Apache 2.0