Hermes Browser MCP Server
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 fields2. 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 | Claude 3.5 Haiku |
Native REST | Gemini 2.5 Flash | |
OpenRouter | OpenAI-compat | Aggregator |
MiniMax | Anthropic-compat | 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
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:
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 μ¬μ©):
{
"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 |
| Electron main, theme sync, IPC, MCP bridge attach |
| UI shell with glass + light/dark + spring motion |
| AgentService (single API entry point) |
| V12 Cowork: files + browser + AI integration |
| HTTP server exposing 49 tools on port 8780 |
| 6 unit tests for cross-platform path handling |
| 157 unit tests total |
| 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/anthropicendpoint =
{base}/v1/messagesHeader =
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.js240+ 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 keyframesSpring-in/slide/sidebar/chat/pulse/focus animations
Day 5: Cross-Platform Path Fix + νλ‘ Demo
_safePathcross-platform (Windows path β WSL β/mnt/...)Electron path λͺ¨λ (Windows mode) μλ
BD69730FV νλ‘ demo (BOM 18 parts, Gerber, datasheet)
5/5 cowork e2e ν΅κ³Ό
π οΈ Build & Verification
# 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:
#f5f5f7background, white cards + box-shadow, gold#fbbf24accentDark theme:
#0f0f1ebackground, glass black 0.72 + blur 24pxFonts: 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 (AGPL-3) for the MCP-first + cowork architecture. Safe fork β no code copied, all implementation original.