MCP Server with a headless Chrome browser based on Capybara and Selenium. Works with SSE and STDIO
MCPpedia last refreshed this data
Headless Browser Tool is an MCP server that MCP Server with a headless Chrome browser based on Capybara and Selenium. Works with SSE and STDIO. Its tool list has not been published yet over stdio, sse and http, requires no API key, and scores 64/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"headless-browser-tool": {
"command": "<see-readme>",
"args": []
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
A headless browser control tool that provides an MCP (Model Context Protocol) server with tools to control a headless browser using Capybara and Selenium. Features multi-session support, session persistence, and both HTTP and stdio communication modes.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in browser
Chrome DevTools for coding agents
Monitor browser logs directly from Cursor and other MCP compatible IDEs.
🔥 Official Firecrawl MCP Server - Adds powerful web scraping and search to Cursor, Claude and any other LLM clients.
MCP server paired with a browser extension that enables AI agents to control the user's browser.
MCP Security Weekly
Get CVE alerts and security updates for Headless Browser Tool and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
A headless browser control tool that provides an MCP (Model Context Protocol) server with tools to control a headless browser using Capybara and Selenium. Features multi-session support, session persistence, and both HTTP and stdio communication modes.
Add this line to your application's Gemfile:
gem 'headless_browser_tool'
And then execute:
bundle install
Or install it yourself as:
gem install headless_browser_tool
You need to have Chrome/Chromium browser installed on your system. The gem will use Chrome in headless mode by default.
The hbt command provides three main commands:
hbt start - Start HTTP Server ModeStarts the MCP server as an HTTP server with SSE (Server-Sent Events) support:
hbt start [OPTIONS]
Options:
--port PORT - Port for the MCP server (default: 4567)--headless / --no-headless - Run browser in headless mode (default: true)--single-session - Use single shared browser session instead of multi-session mode--session-id SESSION_ID - Enable session persistence for single session mode (requires --single-session)--show-headers - Show HTTP request headers for debugging session issuesExamples:
# Start with default settings (multi-session, headless, port 4567)
hbt start
# Start in non-headless mode for debugging
hbt start --no-headless
# Start in single session mode (legacy compatibility)
hbt start --single-session
# Start in single session mode with persistence
hbt start --single-session --session-id my-app-session
# Start with request header logging
hbt start --show-headers
hbt stdio - Start Stdio Server ModeStarts the MCP server in stdio mode for direct integration with tools that spawn subprocesses:
hbt stdio [OPTIONS]
Options:
--headless / --no-headless - Run browser in headless mode (default: true)Notes:
.hbt/logs/PID.log instead of stdout to avoid interfering with MCP protocolHBT_SESSION_ID environment variableSession Persistence in Stdio Mode:
You can enable session persistence by setting the HBT_SESSION_ID environment variable:
# First run - creates and saves session
HBT_SESSION_ID=my-editor-session hbt stdio
# Later run - restores previous session state
HBT_SESSION_ID=my-editor-session hbt stdio
When HBT_SESSION_ID is set:
.hbt/sessions/{session_id}.json on exitThis is useful for editor integrations that want to maintain browser state across multiple tool invocations.
Examples:
# Start in stdio mode (headless by default, no persistence)
hbt stdio
# Start with session persistence
HBT_SESSION_ID=vsc
... [View full README on GitHub](https://github.com/parruda/headless-browser-tool#readme)