Skip to main content
Glama
conradkoh
by conradkoh
README.md
# Browser MCP

This is a fork of [@browsermcp/mcp](https://www.npmjs.com/package/@browsermcp/mcp) that fixes some reliability issues.

## Installation

Add this to the mcp.json file

```json
{
  "mcpServers": {
    "browsermcp": {
      "command": "npx",
      "args": ["@conradkoh/browsermcp@latest"]
    }
  }
}
```

## Finding Logs

The Browser MCP server logs its activity to a temporary file. When the server exits or crashes, the full path to this log file will be printed to `stderr`.

To find and view the logs:

1.  Look for a message on `stderr` (your terminal output) like:
    `Exiting. Full logs available at: /var/folders/.../browsermcp-YYYY-MM-DDTHH-MM-SS-PID.log`
    or
    `FATAL ERROR: ... Full logs available at: /var/folders/.../browsermcp-YYYY-MM-DDTHH-MM-SS-PID.log`

2.  To view the most recent logs in real-time, you can use the following command (this might take a few seconds):

    ```bash
    tail -f $(find /var/folders /tmp -name "browsermcp-*.log" 2>/dev/null -print0 | xargs -0 ls -t | head -n 1)
    ```

    (The `2>/dev/null` directly on the `find` command will suppress "Permission denied" and other errors from `find` itself.)

3.  To view the entire content of the most recent log file:
    ```bash
    cat $(find /var/folders /tmp -name "browsermcp-*.log" 2>/dev/null -print0 | xargs -0 ls -t | head -n 1)
    ```

## Improvements

1.  **Improved logging:** Logs are now more reliably written to a temporary directory.
2.  **Enhanced exit code handling:** Implemented a finite state machine for better management of exit codes.
3.  **(WIP) Browser Gateway for multi-instance stability:** A browser gateway has been added to resolve conflicts when multiple MCP servers connect to the browser, preventing crashes that previously required server restarts.

TDQS

A3.6/5.0

Scored across 12 tools

Disambiguation5/5

Each tool has a distinct action (click, hover, type, navigate, etc.) with no overlap. Even similar actions like go_back and go_forward are clearly differentiated by direction.

Naming Consistency5/5

All tools follow a consistent `browser_<verb>` pattern in snake_case. The verbs are intuitive and match the action (e.g., browser_navigate, browser_type).

Tool Count5/5

12 tools is appropriate for browser automation, covering navigation, interaction, screenshots, and debugging without being overwhelming or sparse.

Completeness4/5

The set covers core browsing interactions and debugging. Missing a refresh or scroll action, but most essential workflows are possible.

Maintenance

ActivityInactive
ResponsivenessNo issues