Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion extension/PRIVACY.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

## Overview

WebMCP Bridge is an open-source Chrome extension that connects tools registered on web pages (via the `navigator.modelContext` browser API) to local AI assistants through Model Context Protocol (MCP). It does not collect, store, or transmit any personal data.
WebMCP Bridge is an open-source Chrome extension that connects tools registered on web pages (via the `document.modelContext` browser API) to local AI assistants through Model Context Protocol (MCP). It does not collect, store, or transmit any personal data.

## What data does the extension access?

Expand Down
6 changes: 3 additions & 3 deletions extension/README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# WebMCP Bridge Server Chrome Extension

A Chrome extension that bridges tools registered on `navigator.modelContext` to desktop AI clients (Claude Code, Cursor, etc.) via MCP.
A Chrome extension that bridges tools registered on `document.modelContext` to desktop AI clients (Claude Code, Cursor, etc.) via MCP.

> Note: This extension is a workaround for now. Once Chrome natively supports some bridge solution, I'll deprecate this extension.

## How it works

Your React app registers tools using `webmcp-react`. The extension picks them up from `navigator.modelContext`, aggregates tools across all active tabs, and exposes them through a local MCP server that clients connect to over stdio.
Your React app registers tools using `webmcp-react`. The extension picks them up via `navigator.modelContextTesting`, aggregates tools across all active tabs, and exposes them through a local MCP server that clients connect to over stdio.

![Extension architecture](./extension-architecture.svg)

Expand Down Expand Up @@ -97,7 +97,7 @@ After rebuilding, click the reload button on `chrome://extensions/` to pick up c
```
src/
├── background.ts # Service worker — manages tabs, tools, WebSocket
├── content-main.ts # Main world script — reads navigator.modelContext
├── content-main.ts # Main world script — reads navigator.modelContextTesting
├── content-isolated.ts # Isolated world script — bridges messages
├── types.ts # Shared type definitions
├── popup/
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
"dev:nextjs": "pnpm --filter webmcp-react-nextjs-example dev",
"build:extension": "pnpm --filter webmcp-bridge-extension build",
"typecheck:extension": "pnpm --filter webmcp-bridge-extension typecheck",
"prepublishOnly": "pnpm build",
"prepare": "husky"
},
"peerDependencies": {
Expand Down
Loading