Hermes Browser MCP Server
by leemind-q
README.md
# Hermes Browser V12
**AI-powered Electron browser with MCP-First architecture for engineers.**
> **Status (2026-07-11)**: V12 complete. **157 unit PASS + 46/46 eval + 49 MCP tools + 10 LLM providers + Cowork for engineers.** Real production-ready.
[]()
[]()
[]()
---
## π― V12 Three Differentiators
### 1. **MCP-First Architecture**
Everything exposed as MCP tools (49 total). External AI agents (Claude, GPT, Hermes AI, etc.) can fully control the browser via HTTP bridge or stdio server.
```
Browser navigation, click, fill, autofill, search
Content extraction: page text, tables, forms, links, search results
File management: list, read, search, grep, stat (Cowork)
Network: search Naver, search DDG, extract via URL
Vision: prints PDF, downloads, find text in page
Multimedia: browse screenshots, capture form fields
```
### 2. **Local-First + BYOK**
Local LLM support + 10 cloud providers. **No provider lock-in.** BYOK (Bring Your Own Key) for all cloud providers.
| Provider | Type | Use case |
|---|---|---|
| mock | OpenAI-compat | Local mock (opencode-go proxy) |
| LM Studio | OpenAI-compat | Local inference (:1234) |
| Ollama | OpenAI-compat | Local inference (:11434) |
| OpenAI | OpenAI-compat | gpt-4o-mini default |
| Anthropic | Native `/v1/messages` | Claude 3.5 Haiku |
| Google | Native REST | Gemini 2.5 Flash |
| OpenRouter | OpenAI-compat | Aggregator |
| MiniMax | Anthropic-compat `/anthropic` | M3 |
| BrowserOS | OpenAI-compat | Local fork (:8765) |
| OpenAI-compatible | OpenAI-compat | Custom URL |
### 3. **Cowork for Engineers**
Files + browser + AI ν΅ν©. **BrowserOS Coworkμ κ°ν λ²μ ** β νλ‘ λλ©μΈ νΉν.
```
cowork_list β list files by pattern
cowork_read β read text (max 5MB, binary β metadata)
cowork_grep β regex search across files (cross-platform)
cowork_search β by name OR content pattern
cowork_stat β metadata (size, mtime, mime)
```
**Default workspace**: `C:\Users\qqwer\Hermes-Workspace\`
---
## π¦ 30-Second Quick Start
### Test & Run
```bash
cd /mnt/c/Users/qqwer/Desktop/Hermes/hermes-browser
npm test # 157 unit + 46 eval PASS (~3 sec)
npm start # Launch Electron (Miraecle window)
```
### Live Verification
Hermes Browser auto-starts **HTTP bridge on port 8780**. Connect from external AI agents:
```bash
TOKEN=$(curl -s http://127.0.0.1:8780/auth/token | jq -r .token)
# Call any of 49 tools
curl -X POST http://127.0.0.1:8780/mcp/tool \
-H "Authorization: Bearer $TOKEN" \
-d '{"name":"cowork_list","args":{"dir":"demo-circuits"}}'
```
### Use with Claude Code / Cursor / Cline
Add to `~/.claude.json` (stdλ‘ MCP μ¬μ©):
```json
{
"mcpServers": {
"hermes-browser": {
"command": "node",
"args": ["C:/Users/qqwer/Desktop/Hermes/hermes-browser/mcp-server/server.js"]
}
}
}
```
---
## ποΈ Architecture (V12)
```
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Renderer (src/chrome.html) β
β - Tabs, sidebar, chat UI, settings popover β
β - Light/dark theme (Space Grotesk + DM Sans) β
β - Spring motion (--ease-spring) β
ββββββββ¬ββββββββββββββββββββββββββββββββββββββ¬ββββββββββββ
β IPC β
β β
ββββββββΌββββββββββββββ βββββββββββββΌβββββββββββ
β Main Process β β MCP Bridge β
β (main.js) βββββββββββββΊβ (HTTP :8780) β
β - nativeTheme β β 49 tools exposed β
β - syncNativeTh.. β β localhost only β
β - Cowork attach β β Token auth β
ββββββββ¬ββββββββββββββ ββββββββββββββββββββββββ
β
ββββββββΌββββββββββββββββββββββ
β Agent Service β
β (src/agent/index.js) β
β - Plan/Mode/Approval β
β - ReadingList/Workspace β
β - Session Recorder β
β - CredentialVault β
β - CoworkService (V12) β
β - Provider abstraction β
β - Scheduler β
ββββββββββββββββββββββββββββββ
```
### Key Files
| File | Purpose |
|---|---|
| `main.js` | Electron main, theme sync, IPC, MCP bridge attach |
| `src/chrome.html` | UI shell with glass + light/dark + spring motion |
| `src/agent/index.js` | AgentService (single API entry point) |
| `src/agent/cowork.js` | V12 Cowork: files + browser + AI integration |
| `src/mcp-bridge.js` | HTTP server exposing 49 tools on port 8780 |
| `tests/cowork.test.js` | 6 unit tests for cross-platform path handling |
| `tests/{agent,credentials,...}.test.js` | 157 unit tests total |
| `eval/runner.js` | 46 integration scenarios |
---
## π V12 Features (Day 1-5)
### Day 1: OS Theme Sync
- `nativeTheme.themeSource = 'system'`
- OS λ³κ²½ μ chrome.html `data-theme="dark"` μλ μ ν
- κ²μ¦: light 100% `#f5f5f7`, dark 100% `#121212`
### Day 2: BYOK + 10 LLM Providers
- Provider presets μλ μ±μ°κΈ° (URL/model)
- 3 endpoint νμ
dispatch (OpenAI-compat / Anthropic native / Google native)
- λΌμ΄λΈ κ²μ¦: λͺ¨λ 10κ° provider endpoint λλ¬
### Day 3: MiniMax Endpoint Fix
- base_url = `https://api.minimax.io/anthropic`
- endpoint = `{base}/v1/messages`
- Header = `X-Api-Key` (capitalized)
- κ²μ¦: 401 "login fail: Please carry the API secret key" (endpoint OK)
### Day 4: Cowork + 49 Tools + UI Spring Motion
- `src/agent/cowork.js` 240+ lines (V12 day 1)
- 5 public Cowork methods + 13 V12 tools (browser/web extensions)
- `--ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1)` + 7 keyframes
- Spring-in/slide/sidebar/chat/pulse/focus animations
### Day 5: Cross-Platform Path Fix + νλ‘ Demo
- `_safePath` cross-platform (Windows path β WSL β `/mnt/...`)
- Electron path λͺ¨λ (Windows mode) μλ
- BD69730FV νλ‘ demo (BOM 18 parts, Gerber, datasheet)
- 5/5 cowork e2e ν΅κ³Ό
---
## π οΈ Build & Verification
```bash
# Run all tests
npm test
# Quick unit-only run
node tests/agent.test.js
node tests/cowork.test.js
# Eval scenarios (46 total)
node eval/runner.js
# Live MCP call examples
curl -s http://127.0.0.1:8780/mcp/tools | jq '.tools | length'
# Open live window
npm start
```
---
## π License
AGPL-3.0 (no BrowserOS code copy, safeStorage-based credential vault)
---
## π¨ Design Choices
- **Light theme**: `#f5f5f7` background, white cards + box-shadow, gold `#fbbf24` accent
- **Dark theme**: `#0f0f1e` background, glass black 0.72 + blur 24px
- **Fonts**: Space Grotesk + DM Sans
- **Spring motion**: tagu requested "μ«λν" easing β `cubic-bezier(0.34, 1.56, 0.64, 1)`
- **Glass**: `backdrop-filter: blur(24px)` for panels/popovers
---
## π€ Acknowledgements
Inspired by [browserOS-ai](https://github.com/browseros-ai/BrowserOS) (AGPL-3) for the MCP-first + cowork architecture. **Safe fork** β no code copied, all implementation original.
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues