Skip to main content
Glama
README.md
# mailnotmilk


Bridge **any browser AI** (ChatGPT, DeepSeek web, Gemini, Copilot, Claude.ai) with **Claude Code / Cursor / OpenCode** — MCP mailbox + Chrome/Firefox automation 

## Install 

**Linux / macOS / WSL**
```bash
./install.sh              # MCP + skills + browsers + auto Chrome extension
./run.sh                  # after one Chrome restart — any AI site
./run.sh --site deepseek --peer claude
```

**Windows native**
```bat
install.cmd
install.cmd --run
run.cmd
```
```powershell
.\install.ps1 --run
.\run.ps1 --site chatgpt
```

Install **automatically**:
- MCP into Cursor / Claude Code / OpenCode / …
- Skills (`mailnotmilk-bridge`, `browser-relay`) project + user-level
- **Playwright + Chromium / Firefox / WebKit** (no manual `npx playwright install`)

| Platform | Entrypoint | Browsers |
|----------|------------|----------|
| Linux native | `./install.sh` | chromium, firefox, webkit + `install-deps` (best-effort) |
| Windows WSL | `./install.sh` | same (+ WSLg note for headed UI) |
| macOS | `./install.sh` | chromium, firefox, webkit |
| Windows native | `install.cmd` / `install.ps1` | chromium, firefox, webkit |

Skip browsers: `--skip-browsers`. Browsers only: `mailnotmilk install --browsers-only`.
Skip OS libs: `--skip-deps`. Force OS libs: `--with-deps`.

## Browser AI ↔ coding agent

```bash
mailnotmilk hub &
mailnotmilk relay --site deepseek --peer claude --browser chrome --wait 20000
# or firefox: --browser firefox
```

Flow:

1. Playwright opens DeepSeek/ChatGPT/… (Chrome or Firefox)
2. Extracts chat turns from the page
3. Forwards into a mailnotmilk chat for Claude/Cursor/OpenCode
4. When the coding agent replies, types it back into the browser composer

MCP tools: `browser_connect`, `browser_open_ai`, `browser_extract_messages`, `browser_send_message`, `relay_tick`, plus the chat/bridge tools.

Skills installed: `mailnotmilk-bridge`, `browser-relay`.

## DeepSeek-in-Cursor → Claude Code (paste)

Still works when the “browser” is Cursor itself:

```bash
mailnotmilk bridge -t "fix auth" -m "help me" --open
```

Paste the block into Claude Code.

## License

MIT

TDQS

C2.7/5.0

Scored across 36 tools

Disambiguation2/5

Multiple tools have unclear boundaries: post_message vs chat_say vs browser_send_message all send messages but to different targets; check_inbox, list_history, and chat_history all retrieve messages but with different scopes. The many list/send variants make it hard for an agent to pick the right tool.

Naming Consistency3/5

There are consistent clusters (e.g., browser_* prefixed tools, verb_noun like check_inbox, read_message), but the overall set mixes conventions: chat_link and chat_history are noun phrases, mailbox_stats is noun_noun, and relay_tick is noun_verb. Still readable, but not uniform.

Tool Count2/5

With 36 tools, the server is overloaded, far beyond the typical well-scoped range. Even though it covers messaging, browser automation, and presence, the sheer number makes it unwieldy and suggests too many responsibilities for a single MCP server.

Completeness3/5

The messaging and presence lifecycle is fairly complete (send, read, reply, search, archive, react, status), but missing obvious operations like editing or deleting messages. Chat management is also thin (no leave/delete/rename), and browser automation is limited to AI pages. Notable gaps exist, but core workflows work.

Maintenance

ActivitySlowing
ResponsivenessNo issues