Hermes Agent
Hermes Agent is NousResearch's open-source AI agent. This guide configures Browserless as its browser: managed cloud sessions with stealth, automatic CAPTCHA solving, residential proxies, and cascading scrape strategies, through one MCP server and one API token.
- A Browserless API token from your account dashboard
- Hermes Agent installed with MCP support (included in the standard install script)
Why Browserless as Hermes's browser
Most automation targets use bot detection, login walls, or CAPTCHAs. Browserless handles these by default, so one configuration works on protected sites and permissive ones alike:
browserless_smartscraperruns cascading strategies on every request: direct fetch, then proxy, then headless browser, then CAPTCHA solving, until the content returns.browserless_agentkeeps one browser session alive across tool calls, preserving cookies and page state through logins, multi-step forms, and pagination.- The browsers run on Browserless's cloud rather than the machine running Hermes. A single API token covers stealth, residential proxies, and CAPTCHA solving; there are no separate provider accounts to set up.
- The same server exposes nine tools covering scraping, search, crawling, exports, Lighthouse audits, and file downloads.
Hermes's built-in browser tools work for public, permissive pages. We recommend Browserless for automation workloads because the unblocking, proxying, and solving are built into every request instead of configured per site.
Step 1: Add the server to your config
Hermes configures MCP servers in ~/.hermes/config.yaml. The Browserless server is remote, so it needs only a URL and your token. Put the token in ~/.hermes/.env so it stays out of the config file:
# Add to ~/.hermes/.env
BROWSERLESS_API_TOKEN=YOUR_API_TOKEN_HERE
Then reference it from the config. Hermes expands ${VAR} in server entries from .env or the process environment:
mcp_servers:
browserless:
url: "https://mcp.browserless.io/mcp"
headers:
Authorization: "Bearer ${BROWSERLESS_API_TOKEN}"
The hosted server speaks the Streamable HTTP transport, which is what Hermes uses for URL-based servers. No local process, Node, or Docker is required.
Step 2: Verify the tools loaded
Start Hermes from the terminal and ask it what it can do:
hermes chat
Tell me which MCP-backed tools are available right now.
The reply should list the Browserless tools. Hermes prefixes MCP tools with the server name, so they appear as mcp__browserless__browserless_agent, mcp__browserless__browserless_smartscraper, and so on. If you edited the config while Hermes was running, reload it with /reload-mcp. See the full tool list in the MCP server reference.
Step 3: Try it on a real task
Give Hermes a task its built-in browser tends to get blocked on:
Use the Browserless tools to scrape https://www.browserless.io/pricing
and list each plan with its unit allowance, then tell me which strategy
the scraper used.
Use the Browserless agent to open https://docs.browserless.io, navigate
to the BaaS quickstart, and summarize the setup steps.
Optional: Limit which tools load
The server exposes nine tools. If you want a smaller surface, use Hermes's tool filtering to whitelist just the ones you need:
mcp_servers:
browserless:
url: "https://mcp.browserless.io/mcp"
headers:
Authorization: "Bearer ${BROWSERLESS_API_TOKEN}"
tools:
include: [browserless_agent, browserless_smartscraper]
browserless_agent plus browserless_smartscraper covers most workflows: one stateful browser for interaction, one stateless scraper for content.
FAQ & Troubleshooting
Can I point Hermes's /browser connect at a Browserless CDP endpoint instead?
No. /browser connect is built for local Chromium-family browsers: its readiness probe requests /json/version without preserving the URL's query string, so an authenticated endpoint like wss://production-sfo.browserless.io?token=... fails the check. Use the MCP route on this page, which authenticates properly and exposes richer tools than raw CDP.
Hermes doesn't list any Browserless tools
Run /reload-mcp if you changed config.yaml during a session, and check the Hermes logs for a connection error. The usual causes are a URL typo (the endpoint must be exactly https://mcp.browserless.io/mcp), an expired token, or BROWSERLESS_API_TOKEN not being set in ~/.hermes/.env — Hermes leaves an unset ${VAR} as its literal placeholder text, so the server receives a header of Bearer ${BROWSERLESS_API_TOKEN} and rejects it.
What do MCP sessions cost?
Each tool call opens a browser session that consumes units based on session time, plus proxy traffic and CAPTCHA solving if used. See unit consumption for the breakdown.