Local-only Chrome and Edge control for MCP clients through an origin-scoped extension.
Newton Browser is a local MCP browser-control product for agents. Each session launches an isolated Chrome or Edge process and controls it through inherited private CDP pipes. By default browser traffic uses Chromium's normal networking with no Newton proxy, origin allowlist, request interception, or resource filtering.
The default runtime requires no browser extension, relay, daemon, debug TCP port, database, telemetry, hosted service, or model-provider integration.
The default source runtime now uses the replacement shared engine, with isolated workers from a shared Newton login source and an optional thin existing-browser adapter. Native actions, precise editing, contextual controls, records/documents, screenshots, tab ownership and update foundations are implemented. This is an unreleased development checkpoint, not completed real-world acceptance.
The legacy direct runtime is retired (2026-09-25): the session engine is the only action, receipt and ref authority. Build, typecheck, boundary lint and the full suite pass. Feedback/reading refinements, platform and authenticated task QA, and three unchanged packed release gates remain open. See the current progress ledger, remaining roadmap and consolidation record.
Version 0.7.2 is published as a GitHub prerelease tarball verified on macOS Chrome; Windows and Linux receipts for it remain open. No npm or browser-store release exists.
Newton implements only stateless MCP 2026-07-28 over newline-delimited stdio JSON.
Clients send protocol version and capabilities in every request. Newton exposes no legacy
handshake or framing mode.
2026-07-28, local stdio servers, and image content.pnpm install --frozen-lockfile
pnpm build
node apps/mcp-server/dist/index.js doctor --live
That is enough for ephemeral sessions: Newton discovers Chrome or Edge and creates a fresh isolated identity per session. Optional setup only selects a default browser:
node apps/mcp-server/dist/index.js setup --browser chrome
Every owned session is an isolated copy of a shared login source (default unless the
session names another). To sign in once for later sessions, open the source's visible
browser, sign in personally, and confirm:
node apps/mcp-server/dist/index.js source login --id default --browser chrome
Newton never asks an agent to enter or retrieve credentials. The published sign-in becomes the source's next generation; running sessions keep their own copies, and nothing a session does is merged back.
{
"mcpServers": {
"newton-browser": {
"command": "node",
"args": ["C:\\absolute\\path\\newton-browser\\apps\\mcp-server\\dist\\index.js"]
}
}
}
The local installer can update Codex configuration or print a generic entry:
node apps/mcp-server/dist/index.js install codex --dry-run
node apps/mcp-server/dist/index.js install generic
Codex installation enables Codex's mcp_2026_07_28 feature, pins
CODEX_MCP_PROTOCOL_VERSION=2026-07-28, and verifies the exact candidate's live
stateless discovery, self-reported package version, and required browser-tool catalog
before atomically replacing its configuration. The resulting entrypoint/version pair is
pinned; incompatible or stale candidates cannot displace a working install.
Tools (tools/list is authoritative): browser.session.start, browser.observe,
browser.act, browser.command, browser.document.read, browser.document.continue,
browser.screenshot, browser.console, browser.network, browser.pages.list,
browser.page.select, browser.sessions.list, browser.session.stop, and the
operator-selected existing-browser tools browser.existing.discover and
browser.existing.setup.
A normal loop:
browser.session.start with a complete URL returns the session, its first page and
nextCommandId.browser.observe returns bounded controls with refs; records mode reads links, tables
and forms; browser.document.read reads text with a continuation cursor.browser.act performs one typed action or a sequence and returns a receipt: dispatch,
postcondition, and the next state when it changed. Reuse a commandId only for the
identical command; after an uncertain receipt, reconcile with browser.command rather
than replaying.browser.session.stop ends the session independently of its queue.Popups and new tabs are attached as session pages without changing the selected page;
browser.pages.list and browser.page.select move between them. A hung renderer is
reopened on the same page and the receipt says so. Console and network recording is
opt-in because enabling it is visible to pages.
Identities are the store's opaque browser profiles; login sources and session copies are built on them. Operator utilities:
newton-browser identity create --browser chrome
newton-browser identity list
newton-browser identity lease-inspect --id nbi_<opaque-id>
newton-browser identity lease-recover --id nbi_<opaque-id>
newton-browser identity delete --id nbi_<opaque-id>
newton-browser identity import --browser chrome `
--user-data-root "C:\path\to\User Data" `
--profile-directory Default
Import byte-copies a narrow allowlist of authentication-bearing files from a closed, stable local profile and never modifies the source. Passwords, autofill, history, downloads, extensions, sessions, service workers, and caches are excluded. Browser encryption may prevent copied authentication from remaining usable; Newton does not bypass that protection.
NEWTON_BROWSER_EGRESS=public); otherwise networking is ordinary Chromium networking.See Security, Privacy, and MCP clients.
pnpm build
pnpm lint
pnpm typecheck
pnpm test
pnpm eval
pnpm eval:agent-cost
pnpm pack:check
pnpm eval:real-sites
pnpm release:check
Run pnpm eval:real-sites once per required browser/platform. Release then requires
pnpm release:check to pass from the exact packed candidate three consecutive times on
Windows and Linux with no skipped critical tests, plus the pinned Linux Chrome for Testing
matrix and matching cross-platform tarball hashes.
apps/mcp-server/ stateless stdio MCP host and owned-browser runtime
packages/core/ schemas, redaction, provenance, and safety policy
packages/driver/ strict TypeScript CDP driver
scripts/ builds, release checks, and live harnesses
skills/newton-browser agent operating guidance
test/ fixtures, regressions, and bounded evidence
The source is licensed under the MIT License. Publishing or distributing a Newton Browser release remains a separate maintainer-controlled action.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y newton-browserMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-koala-studios-newton-browser": {
"command": "npx",
"args": [
"-y",
"newton-browser"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencenewton-browsernpmio.github.Koala-Studios/newton-browser works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.