Skip to main content
Glama
kamkozlowski

dev-browser-mcp

by kamkozlowski

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DEV_BROWSER_BINNoOverride the bundled dev-browser CLI path
DEV_BROWSER_BROWSERNoNamed daemon browser instancedefault
DEV_BROWSER_CONNECTNoauto / true to attach to Chrome, or a CDP URL
DEV_BROWSER_TIMEOUTNoScript timeout in seconds30
DEV_BROWSER_HEADLESSNotrue to launch Chromium without a window
DEV_BROWSER_IDLE_TIMEOUTNoClose idle launched browsers, e.g. 5m
DEV_BROWSER_SKIP_CHROMIUMNotrue to skip postinstall / auto Chromium setup
DEV_BROWSER_IGNORE_HTTPS_ERRORSNotrue for self-signed certs

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
dev_browser_runA

Run a sandboxed JavaScript script against a persistent browser (SawyerHood/dev-browser).

This is the main tool. Prefer it whenever you need more than a single navigation/click/fill.

Sandbox is QuickJS, not Node.js: no require/import/fs/fetch/process. Available: browser.getPage(nameOrId), browser.newPage(), browser.listPages(), browser.closePage(name) saveScreenshot(buf, name), writeFile(name, data), readFile(name), console.*, setTimeout Pages are Playwright Page objects (goto, click, fill, locator, evaluate, screenshot, snapshotForAI, getByRef, getByRole, waitForSelector, waitForURL, cua, domCua).

Write small scripts. Named pages persist. End with console.log of the next-decision state. On local dev servers use { waitUntil: "domcontentloaded" }.

dev_browser_list_pagesA

List named pages and open browser tabs: [{id, url, title, name}].

dev_browser_page_openA

Get or create a named page (or attach to a tab by targetId from list_pages) and return url/title.

dev_browser_close_pageB

Close and unregister a named page.

dev_browser_gotoA

Navigate a named page to a URL. Prefer waitUntil=domcontentloaded for local dev servers.

dev_browser_snapshotB

Return an AI-friendly accessibility snapshot. Use refs like e12 with getByRef in a later run, or pass snapshotRef to click/fill/type.

dev_browser_screenshotA

Take a PNG screenshot of a named page and return the image plus the saved path under ~/.dev-browser/tmp/.

dev_browser_clickC

Click an element by CSS selector or snapshotRef from dev_browser_snapshot (e.g. e12).

dev_browser_fillB

Fill an input by CSS selector or snapshotRef. Replaces existing value.

dev_browser_typeC

Type into an element character by character, by CSS selector or snapshotRef.

dev_browser_evaluateB

Evaluate JavaScript in the page. Pass a browser-side expression or statements.

dev_browser_wait_for_selectorC

Wait until a selector reaches the given state on a named page.

dev_browser_statusA

Show the dev-browser daemon status, idle timeout, and managed browsers.

dev_browser_browsersA

List daemon-managed browser instances and their named pages.

dev_browser_stopA

Stop the dev-browser daemon and close every browser it launched.

dev_browser_installA

Install the Playwright Chromium build used by daemon-launched browsers.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
script-apiSandbox globals, Playwright helpers, and recommended script patterns.

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/kamkozlowski/dev-browser-mcp'

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