Skip to main content
Glama
README.md•7.14 kB
# MCPBrowser (MCP fetch tool with authenticated Chrome) [![npm version](https://img.shields.io/npm/v/mcpbrowser.svg)](https://www.npmjs.com/package/mcpbrowser) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) An MCP server that exposes an authenticated page fetch tool for GitHub Copilot. It drives your signed-in Chrome/Edge via DevTools, reusing your profile to read restricted pages. ## 🚀 Installation Options ### Option 1: VS Code Extension (Easiest - One Click) **From VS Code Marketplace:** ```bash code --install-extension cherchyk.mcpbrowser ``` Or search "MCPBrowser" in VS Code Extensions view. **From GitHub Release:** Download from [GitHub Releases](https://github.com/cherchyk/MCPBrowser/releases): ```bash code --install-extension mcpbrowser-0.1.1.vsix ``` The extension automatically: - Detects if MCPBrowser is configured - Prompts you to configure it on first startup - Adds the correct `mcp.json` configuration - Keeps your configuration up to date 📦 [View on Marketplace](https://marketplace.visualstudio.com/items?itemName=cherchyk.mcpbrowser) ### Option 2: npm Package (Recommended for Manual Setup) Published on npm as [mcpbrowser](https://www.npmjs.com/package/mcpbrowser) v0.2.1. Add to your `mcp.json`: ```jsonc "MCPBrowser": { "type": "stdio", "command": "npx", "args": ["-y", "mcpbrowser@latest"], "description": "Loads authenticated web pages using your Chrome session" } ``` **mcp.json Location:** - Windows: `%APPDATA%\Code\User\mcp.json` - Mac/Linux: `~/.config/Code/User/mcp.json` ### Option 3: MCP Registry Available in the [MCP Registry](https://registry.modelcontextprotocol.io/) as `io.github.cherchyk/browser` v0.2.1. Search for "browser" in the registry to find configuration instructions. ### Option 4: Clone from GitHub (Development) ```bash git clone https://github.com/cherchyk/MCPBrowser.git cd MCPBrowser npm install copy .env.example .env # optional: set Chrome overrides ``` Add to `mcp.json`: ```jsonc "MCPBrowser": { "type": "stdio", "command": "node", "args": ["<PATH_TO_MCPBROWSER>/src/mcp-browser.js"], "description": "Loads authenticated web pages using your Chrome session" } ``` ## Prereqs - Chrome or Edge installed. - Node 18+. ## Run (automatic via Copilot) - Add the MCP server entry to VS Code settings (`github.copilot.chat.modelContextProtocolServers`, see below). Copilot will start the server automatically when it needs the tool—no manual launch required. - On first use, the server auto-launches Chrome/Edge with remote debugging if it cannot find an existing DevTools endpoint. Defaults: port `9222`, user data dir `%LOCALAPPDATA%/ChromeAuthProfile`. Override with `CHROME_PATH`, `CHROME_USER_DATA_DIR`, or `CHROME_REMOTE_DEBUG_PORT`. - The old `scripts/start-all.ps1` launcher was removed; Chrome startup is handled inside the MCP server. ## Manual start (optional) Only if you want to run it yourself (Copilot already starts it when configured): ```bash npm run mcp ``` Or manually: ```powershell & "C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir="$env:LOCALAPPDATA\ChromeAuthProfile" ``` Set `CHROME_PATH` if auto-detect fails; override profile with `CHROME_USER_DATA_DIR`, port with `CHROME_REMOTE_DEBUG_PORT`. ## (Optional) Local runner There is no local LLM runner now; Copilot provides the LLM and calls this MCP tool. If you need a standalone agent later, we can add one that reuses the fetch logic. ## How it works - Tool `load_and_extract` (inside the MCP server) drives your live Chrome (DevTools Protocol) so it inherits your auth cookies, returning `text` and `html` (truncated up to 2M chars per field) for analysis. - **Domain-aware tab reuse**: Automatically reuses the same tab for URLs on the same domain, preserving authentication session. Different domains open new tabs. - **Automatic page loading**: Waits for network idle (`networkidle0`) by default, ensuring JavaScript-heavy pages (SPAs, dashboards) fully load before returning content. - **Automatic auth detection**: Detects ANY authentication redirect (domain changes, login/auth/sso/oauth URLs) and waits for you to complete sign-in, then returns to target page. - **Universal compatibility**: Works with Microsoft, GitHub, AWS, Google, Okta, corporate SSO, or any authenticated site. - **Smart timeouts**: 60s default for page load, 10 min for auth redirects. Tabs stay open indefinitely for reuse (no auto-close). - GitHub Copilot's LLM invokes this tool via MCP; this repo itself does not run an LLM. ## Distribution MCPBrowser is available through three channels: 1. **VS Code Extension** (easiest): [cherchyk.mcpbrowser](https://marketplace.visualstudio.com/items?itemName=cherchyk.mcpbrowser) - One-click configuration 2. **npm**: [mcpbrowser](https://www.npmjs.com/package/mcpbrowser) v0.2.1 - Use with npx 3. **MCP Registry**: [io.github.cherchyk/browser](https://registry.modelcontextprotocol.io/) v0.2.1 - Discoverable in registry All three methods configure the same underlying MCP server that drives Chrome via DevTools Protocol. ## Auth-assisted fetch flow - Copilot can call with just the URL, or with no params if you set an env default (`DEFAULT_FETCH_URL` or `MCP_DEFAULT_FETCH_URL`). By default tabs stay open indefinitely for reuse (domain-aware). - First call opens the tab and leaves it open so you can sign in. No extra params needed. - After you sign in, call the same URL again; tab stays open for reuse. Set `keepPageOpen: false` to close immediately on success. - Optional fields (`authWaitSelector`, `waitForSelector`, `waitForUrlPattern`, etc.) are available but not required. ## Configuration - `.env`: optional overrides for `CHROME_WS_ENDPOINT`, `CHROME_REMOTE_DEBUG_HOST/PORT`, `CHROME_PATH`, `CHROME_USER_DATA_DIR`. - To use a specific WS endpoint: set `CHROME_WS_ENDPOINT` from Chrome `chrome://version` DevTools JSON. ## Tips - **Universal auth**: Works with ANY authenticated site (Microsoft, GitHub, AWS, Google, corporate intranets, SSO, OAuth, etc.) - **No re-authentication needed**: Automatically reuses the same tab for URLs on the same domain, keeping your auth session alive across multiple page fetches - **Automatic page loading**: Tool waits for pages to fully load (default 60s timeout, waits for network idle). Copilot should trust the tool and not retry manually. - **Auth redirect handling**: Auto-detects auth redirects by monitoring domain changes and common login URL patterns (`/login`, `/auth`, `/signin`, `/sso`, `/oauth`, `/saml`) - **Tabs stay open**: By default tabs remain open indefinitely for reuse. Set `keepPageOpen: false` to close immediately after successful fetch. - **Smart domain switching**: When switching domains, automatically closes the old tab and opens a new one to prevent tab accumulation - If you hit login pages, verify Chrome instance is signed in and the site opens there. - Use a dedicated profile directory to avoid interfering with your daily Chrome. - For heavy pages, add `waitForSelector` to ensure post-login content appears before extraction.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cherchyk/MCPBrowser'

If you have feedback or need assistance with the MCP directory API, please join our Discord server