Skip to main content
Glama
menoxz
by menoxz
README.md
# brave-mcp

Wrapper MCP local pour piloter le navigateur **Brave** (et Chrome/Edge) via
[`chrome-devtools-mcp`](https://github.com/ChromeDevTools/chrome-devtools-mcp),
avec gestion multi-navigateurs, sessions utilisateur réelles et reconnexion automatique.

Ce serveur ne crée **pas** de profil isolé : il se connecte au navigateur natif
avec votre **profil utilisateur** (sessions, cookies, comptes déjà connectés).

## Fonctionnement

`start.js` démarre un serveur MCP qui s'appuie sur la librairie officielle
`chrome-devtools-mcp` (Puppeteer) pour les ~29 outils standards de navigation,
et ajoute des outils de gestion du cycle de vie du navigateur :

| Outil | Rôle |
|-------|------|
| `browser_list` | Liste les navigateurs Chromium installés (Chrome, Brave, Edge) avec leur statut CDP |
| `browser_launch` | Lance un navigateur natif avec CDP et votre profil utilisateur |
| `browser_use` | Bascule la connexion vers un autre navigateur (sans redémarrage du serveur) |
| `browser_status` | Statut détaillé de la connexion CDP et pages ouvertes |
| `browser_restart` | Ferme un navigateur et le relance avec CDP + profil |

Caractéristiques notables :

- **Sessions utilisateur** : le navigateur est lancé avec `--remote-debugging-port`
  sur son profil réel — pas de profil jetable.
- **Port CDP dédié par navigateur** : Chrome `9222`, Brave `9223`, Edge `9224`.
- **Reconnexion à chaud** : `browser_use` met à jour la cible sans redémarrer le serveur.
- **Health-check** : toutes les 30 s, reconnexion automatique si le navigateur tombe.
- **Anti-corruption du TUI** : toute sortie `console.log`/`debug` est redirigée vers
  `stderr` pour garder `stdout` propre pour le protocole MCP (JSON-RPC).

## Prérequis

- **Node.js >= 20** (vérifié au démarrage par `start.js`)
- Windows (détection des navigateurs via chemins standard, registre et `where`)
- Chrome, Brave ou Edge installé (au moins un)

## Installation

```bash
git clone https://github.com/menoxz/brave-mcp.git
cd brave-mcp
npm install
npm start
```

## Configuration MCP

### opencode

Ajoutez dans votre `opencode.json` (fichier de config utilisateur ou projet) :

```jsonc
{
  "mcp": {
    "web-browser": {
      "type": "local",
      "command": [
        "node",
        "C:\\chemin\\vers\\brave-mcp\\start.js",
        "--usageStatistics=false",
        "--performanceCrux=false"
      ],
      "environment": {
        "DEBUG": ""
      },
      "enabled": true
    }
  }
}
```

### Claude Desktop / autres clients MCP

```json
{
  "mcpServers": {
    "web-browser": {
      "command": "node",
      "args": ["C:\\chemin\\vers\\brave-mcp\\start.js", "--usageStatistics=false", "--performanceCrux=false"]
    }
  }
}
```

### Lancement manuel du navigateur

Le serveur peut lancer le navigateur lui-même (`browser_launch`), mais vous pouvez
aussi le démarrer à la main :

```powershell
# Brave sur le port 9222 (profil utilisateur)
.\launch-brave.ps1

# Chrome, Brave ou Edge (détection automatique)
.\launch-browser.ps1 -Browser Brave
```

## Outils exposés

- Les outils standards de `chrome-devtools-mcp` (navigation, onglets, DOM,
  captures, etc. — ~29 outils).
- Les outils `browser_*` listés ci-dessus.

## Licence

[MIT](LICENSE) — Jean-Luc KOUMAGLO (menoxz), 2026.

Le serveur s'appuie sur [`chrome-devtools-mcp`](https://github.com/ChromeDevTools/chrome-devtools-mcp)
(Google), distribué sous licence Apache-2.0.

TDQS

B3.1/5.0

Scored across 34 tools

Disambiguation3/5

Several tools have overlapping purposes: fill, fill_form, and type_text all handle text input; browser_launch and browser_restart are nearly identical; browser_list and browser_status both report on browser state. While descriptions provide some clarification, an agent could easily misselect between these pairs.

Naming Consistency3/5

The majority of tools follow a verb_noun pattern (list_pages, close_page, take_screenshot, navigate_page), but several browser management tools reverse this (browser_list, browser_launch, browser_status) and some tools are single verbs (click, hover, fill, drag). The mixed ordering and occasional vague names (emulate) create an inconsistent but still readable pattern.

Tool Count2/5

With 34 tools spanning page interaction, form handling, performance tracing, network/console inspection, and browser management, the server is heavily overloaded. While the domain is broad, the count exceeds the 25+ threshold and many tools could be consolidated (e.g., merging fill and type_text, or combining browser_list/status).

Completeness4/5

The toolset covers a comprehensive browser automation lifecycle: navigation, page selection, interaction, form filling, file upload, screenshots, snapshots, performance traces, and network/console inspection. Minor gaps include lack of explicit cookie management or request interception, but these can be worked around via evaluate_script.

Maintenance

ActivitySlowing
ResponsivenessNo issues