microsoft-edge-mcp

microsoft-edge-mcp

A native TypeScript/Node.js MCP server providing low-level, high-performance control over Microsoft Edge via raw CDP WebSockets, bypassing heavy automation layers like Playwright or Puppeteer.

Category
Visit Server

README

Microsoft Edge MCP Server (microsoft-edge-mcp)

A native TypeScript/Node.js Model Context Protocol (MCP) server that provides low-level, high-performance control over the Microsoft Edge browser. Built using raw WebSockets (ws) to talk directly to Edge's Chrome DevTools Protocol (CDP) port, bypassing heavy automation layers like Playwright or Puppeteer.


Features

🌟 Core CDP Capabilities

Full parity with chrome-devtools-mcp but optimized for Edge:

  • Navigation: navigate_page (url, back, forward, reload)
  • Interaction: click, fill, fill_form (multi-field), hover, drag, press_key, type_text
  • Page Management: list_pages, new_page, select_page (reconnects active target), close_page
  • Observation: take_screenshot (viewport/full page/element clip), take_snapshot (Accessibility Tree + lightweight DOM outline fallback)
  • Execution: evaluate_script (JS execution in page context)
  • Console & Network: list_console_messages, get_console_message, list_network_requests, get_network_request (captures response bodies)
  • Tracing & Performance: performance_start_trace, performance_stop_trace, performance_analyze_insight

šŸŒ€ Edge-Exclusive Capabilities

Dedicated integration hooks exploiting Microsoft Edge's unique feature set:

  • edge_open_sidebar — Opens specific sidebar panels (e.g., Copilot, Tools, Shopping) using internal Edge hooks or keyboard shortcuts.
  • edge_toggle_ie_mode — Toggles Internet Explorer mode for legacy compatibility testing.
  • edge_list_sleeping_tabs / edge_wake_tab — Exposes Edge's sleeping/discarded tab management states.
  • edge_add_to_collections — Adds the current page to the user's Edge Collections.
  • edge_add_to_reading_list — Integrates with Edge's reading list.
  • edge_web_capture — Triggers Edge's native web clipping tool (Ctrl+Shift+S).
  • edge_open_settings — Direct deep-links to browser internal settings page (edge://settings/<path>).
  • edge_check_compat — Inspects the active document for IE/EdgeHTML compatibility meta tags and rendering modes.

Enforced Design Principles (Ponytail senior dev style)

  • Zero Automation Wrappers: No Puppeteer, Playwright, or Selenium. Automation goes through raw CDP JSON-RPC over WebSockets.
  • Binary Search Sequence: Finds Edge by searching EDGE_PATH env var āž”ļø OS Registry (Windows) āž”ļø OS-specific default paths āž”ļø which msedge.
  • Dynamic Port Allocation: Launches debugging on port 9222. If busy, it automatically increments to 9223, using isolated port-specific user-data profiles to avoid locking conflicts.
  • Best-Effort Edge Tools: Where Edge lacks native CDP hooks for UI features, fallback keyboard shortcut injections (Input.dispatchKeyEvent) or Runtime.evaluate scripts are used, marked cleanly with ponytail: comments mapping ceilings and upgrade paths.

File Structure

microsoft-edge-mcp/
ā”œā”€ā”€ package.json
ā”œā”€ā”€ tsconfig.json
ā”œā”€ā”€ README.md
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ index.ts           # MCP server entry, stdio transport, tool registrations
│   ā”œā”€ā”€ edge.ts            # Binary detection + auto-launch + port scanning
│   ā”œā”€ā”€ cdp.ts             # Raw WebSocket CDP client & connection utilities
│   └── tools/
│       ā”œā”€ā”€ navigation.ts  # navigate_page
│       ā”œā”€ā”€ interaction.ts # click, hover, drag, press_key, type_text
│       ā”œā”€ā”€ capture.ts     # take_screenshot, take_snapshot
│       ā”œā”€ā”€ evaluate.ts    # evaluate_script
│       ā”œā”€ā”€ network.ts     # list_network_requests, get_network_request
│       ā”œā”€ā”€ console.ts     # list_console_messages, get_console_message
│       ā”œā”€ā”€ pages.ts       # list_pages, new_page, select_page, close_page
│       ā”œā”€ā”€ forms.ts       # fill, fill_form
│       ā”œā”€ā”€ perf.ts        # performance_*
│       └── edge/          # Edge-exclusive tool handlers
│           ā”œā”€ā”€ sidebar.ts
│           ā”œā”€ā”€ ie_mode.ts
│           ā”œā”€ā”€ sleeping_tabs.ts
│           ā”œā”€ā”€ collections.ts
│           ā”œā”€ā”€ reading_list.ts
│           ā”œā”€ā”€ web_capture.ts
│           ā”œā”€ā”€ settings.ts
│           └── compat.ts
└── self-check.ts          # Dependency-free integration tests

Installation & Setup

Prerequisites

  • Node.js (Latest LTS recommended)
  • Microsoft Edge installed on the host machine

One-Line Auto-Install (Via GitHub)

To automatically download, compile, and configure this MCP server inside your Antigravity and Claude Desktop config files in a single command, run:

npx -y github:RawKnuck/microsoft-edge-mcp --install

Local Installation & Registration (Cloned)

If you have cloned the repository locally, you can build the project and auto-register it with both Antigravity and Claude Desktop by running:

npm run configure

Alternatively, to manually build and test:

  1. Install dependencies:
    npm install
    
  2. Compile TypeScript:
    npm run build
    
  3. Run Automated Self-Checks:
    node build/self-check.js
    

Agent Setup & Compatibility

This MCP server is built using standard Model Context Protocol stdio transport, ensuring compatibility with all major agentic platforms.

1. Antigravity (Google DeepMind Agentic IDE)

  • Automatic Configuration: Run the one-line install command above. It automatically registers the server in ~/.gemini/config/mcp_config.json.
  • Manual Configuration: Open your ~/.gemini/config/mcp_config.json (or select "Manage MCP Servers" -> "View raw config" in the agent panel) and add:
    {
      "servers": {
        "microsoft-edge-mcp": {
          "command": "npx",
          "args": ["-y", "github:RawKnuck/microsoft-edge-mcp"]
        }
      }
    }
    

2. Claude Desktop

  • Automatic Configuration: Run the one-line install command above. It automatically registers the server in your claude_desktop_config.json.
  • Manual Configuration: Add the following to your claude_desktop_config.json:
    {
      "mcpServers": {
        "microsoft-edge-mcp": {
          "command": "npx",
          "args": ["-y", "github:RawKnuck/microsoft-edge-mcp"]
        }
      }
    }
    

3. Cursor

  1. Go to Settings > Features > MCP.
  2. Click + Add New MCP Server.
  3. Fill in the following fields:
    • Name: microsoft-edge-mcp
    • Type: command
    • Command: npx -y github:RawKnuck/microsoft-edge-mcp
  4. Click Save.

4. Windsurf

  1. Go to Settings > Advanced > MCP.
  2. Click Add Server.
  3. Fill in the following fields:
    • Name: microsoft-edge-mcp
    • Type: command
    • Command: npx -y github:RawKnuck/microsoft-edge-mcp
  4. Click Save.

5. Cline / Roo Code (VS Code Extensions)

Open your extension settings file (e.g., cline_mcp_settings.json or roo_code_mcp_settings.json) and append:

{
  "mcpServers": {
    "microsoft-edge-mcp": {
      "command": "npx",
      "args": ["-y", "github:RawKnuck/microsoft-edge-mcp"]
    }
  }
}

6. Aider

Create or update your .aider.conf.yml file to include:

mcp-servers:
  microsoft-edge-mcp:
    command: npx
    args: ["-y", "github:RawKnuck/microsoft-edge-mcp"]

7. Claude Code (CLI Agent)

Run the following command in your terminal to register the server:

/plugin add github:RawKnuck/microsoft-edge-mcp

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured