# sh6drack/zen-mcp [Health: Active]

**Category:** 📂 Browser Automation  
**Repository:** https://github.com/sh6drack/zen-mcp  
**GitHub Stars:** 28  
**Views:** 2  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/sh6drack-zen-mcp

## Description
Zen Browser automation via WebDriver BiDi. 20 tools for navigation, form filling, screenshots, and JavaScript evaluation. No Selenium or Playwright required.

## Claude Desktop Quick Installation
No generated config for this server: it installs through its own setup steps.

The project's own setup steps (from https://github.com/sh6drack/zen-mcp), copied verbatim. Run them in order; they are not an mcpServers config.

1. Install:

```sh
npm install -g zen-mcp
```

2. Install:

```sh
git clone https://github.com/sh6drack/zen-mcp.git && cd zen-mcp && npm install
```

## Documentation

## What sh6drack/zen-mcp MCP server does

The sh6drack/zen-mcp MCP server exposes Zen Browser automation through MCP. It is designed for clients such as Claude Code and Cursor, while also working with other MCP clients that can launch a stdio server. The server gives an agent control over browser tabs, pages, forms, and page-level JavaScript.

Its 20 tools cover four areas:

- Browsing: navigate to URLs, list open tabs, select a tab, create tabs, and close tabs.
- Page inspection: capture screenshots, read page titles, URLs, and text, inspect page structure, and list form fields.
- Interaction: click elements, fill inputs, choose dropdown values, toggle checkboxes or radio buttons, send keyboard input, fill several fields, and scroll.
- Utilities: evaluate JavaScript, wait for a duration, wait for text or an element, and reconnect to Zen.

This fits the Browser Automation category for agents that need to operate an existing Zen Browser instance, extract visible page content, or interact with web forms.

## How it works

The MCP client communicates with `zen-mcp` over stdio. The server then connects to Zen Browser over WebSocket and uses the WebDriver BiDi protocol. Zen must be launched with its remote debugging port enabled, using port 9222 by default.

Form filling uses browser-native value updates and dispatches `input` and `change` events. This is intended to support applications built with React, Vue, and Angular. Page snapshots can be filtered to all content, interactive elements, or form elements, which helps an agent identify usable selectors before acting.

The server includes connection retries, exponential-backoff reconnects, recovery checks for abandoned sessions, and shutdown handling for SIGINT and SIGTERM. The `zen_reconnect` tool can request a fresh connection when the browser connection becomes unreliable.

## Setup and configuration

Install the package globally with npm, or clone the repository and install its dependencies. A global installation exposes the `zen-mcp` command. A cloned installation can launch the server with Node.js and the path to `server.mjs`.

Start Zen with `--remote-debugging-port 9222`, then register the command in the MCP client's configuration. Start a new client session after adding the server so the `zen_*` tools become available.

`ZEN_DEBUG_PORT` controls the remote debugging port and defaults to `9222`. Requirements are Zen Browser and Node.js 20 or newer.

## Limitations and notes

The sh6drack/zen-mcp MCP server depends on Firefox's WebDriver BiDi implementation in Zen. Advanced BiDi commands available in Chrome may not yet be available in Zen. File uploads and drag-and-drop are not supported because of limitations in the BiDi specification.

If Zen cannot be reached, start it with the remote debugging flag. A maximum-active-sessions error may require restarting Zen because abandoned BiDi sessions cannot be cleared independently of their connection. Repeated connection failures can be addressed with `zen_reconnect`.

The project is released under the MIT license.

_Full upstream README: https://allmcps.com/mcp/sh6drack-zen-mcp/readme_

