Provides an authenticated web content fetching tool for GitHub Copilot in VS Code, enabling access to authentication-protected pages by reusing the user's signed-in Chrome session
MCPBrowser (MCP fetch tool with authenticated Chrome)
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.
Prereqs
Chrome or Edge installed.
Node 18+.
Install
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 withCHROME_PATH,CHROME_USER_DATA_DIR, orCHROME_REMOTE_DEBUG_PORT.The old
scripts/start-all.ps1launcher 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):
Or manually:
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.
Use as a Copilot custom agent/tool (MCP server)
This repo includes an MCP server exposing
load_and_extractfor GitHub Copilot in VS Code (loading is built-in). Copilot starts it automatically once registered.Optional manual start (not required when Copilot is configured):
Attach in VS Code settings (
github.copilot.chat.modelContextProtocolServers). Example entry (stored in%APPDATA%\Code\User\mcp.jsonon Windows or~/.config/Code/User/mcp.jsonon Linux/Mac):
In Copilot Chat, you should see the
MCPBrowserserver; ask it to load a URL and it will drive your signed-in Chrome session.
How it works
Tool
load_and_extract(inside the MCP server) drives your live Chrome (DevTools Protocol) so it inherits your auth cookies, returningtextandhtml(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.
Auth-assisted fetch flow
Copilot can call with just the URL, or with no params if you set an env default (
DEFAULT_FETCH_URLorMCP_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: falseto close immediately on success.Optional fields (
authWaitSelector,waitForSelector,waitForUrlPattern, etc.) are available but not required.
Configuration
.env: optional overrides forCHROME_WS_ENDPOINT,CHROME_REMOTE_DEBUG_HOST/PORT,CHROME_PATH,CHROME_USER_DATA_DIR.To use a specific WS endpoint: set
CHROME_WS_ENDPOINTfrom Chromechrome://versionDevTools 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: falseto 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
waitForSelectorto ensure post-login content appears before extraction.