Ruby MCP server for AI-driven browser automation with stealth mode to evade bot detection, powered by Ferrum
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"crucible": {
"args": [
"--config",
"~/.config/crucible/config.yml"
],
"command": "crucible"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
A Ruby MCP (Model Context Protocol) server for browser automation using Ferrum and headless Chrome. Provides 29 tools that AI agents can use to control browsers, with built-in stealth mode to evade bot detection.
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
Browser automation with Puppeteer for web scraping and testing
🔥 Official Firecrawl MCP Server - Adds powerful web scraping and search to Cursor, Claude and any other LLM clients.
MCP server for Firecrawl — search, scrape, and interact with the web. Supports both cloud and self-hosted instances. Features include web search, scraping, page interaction, batch processing, and LLM-powered content analysis.
The Apify MCP server enables your AI agents to extract data from social media, search engines, maps, e-commerce sites, or any other website using thousands of ready-made scrapers, crawlers, and automation tools available on the Apify Store.
MCP Security Weekly
Get CVE alerts and security updates for Crucible and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
A Ruby MCP (Model Context Protocol) server for browser automation using Ferrum and headless Chrome. Provides 29 tools that AI agents can use to control browsers, with built-in stealth mode to evade bot detection.
gem install crucible
Or from source:
git clone https://github.com/joshfng/crucible.git
cd crucible
bundle install
# Run with defaults (headless, 1280x720 viewport, 30s timeout)
crucible
# Run with visible browser
crucible --no-headless
# Full options
crucible \
--no-headless \
--width 1920 \
--height 1080 \
--timeout 60 \
--chrome /usr/bin/chromium \
--error-level debug
| Option | Description | Default |
|---|---|---|
-c, --config FILE | Path to YAML configuration file | auto-detect |
--[no-]headless | Run browser in headless mode | true |
-w, --width WIDTH | Viewport width in pixels | 1280 |
-h, --height HEIGHT | Viewport height in pixels | 720 |
--chrome PATH | Path to Chrome/Chromium executable | auto-detect |
-t, --timeout SECONDS | Default timeout in seconds | 30 |
--error-level LEVEL | Logging level (debug/info/warn/error) | warn |
--screenshot-format FMT | Default screenshot format (png/jpeg/base64) | png |
--content-format FMT | Default content format (html/text) | html |
--[no-]stealth | Enable/disable stealth mode | true |
--stealth-profile PROFILE | Stealth profile (minimal/moderate/maximum) | moderate |
--stealth-locale LOCALE | Browser locale for stealth mode | en-US,en |
gem install crucible
Add to your Claude Code MCP settings (~/.claude/settings.json):
{
"mcpServers": {
"crucible": {
"command": "crucible",
"args": ["--config", "~/.config/crucible/config.yml"]
}
}
}
| Tool | Description |
|---|---|
navigate | Navigate browser to a URL |
wait_for | Wait for an element to appear |
back | Navigate back in history |
forward | Navigate forward in history |
refresh | Refresh the current page |
| Tool | Description |
|---|---|
click | Click an element (supports double-click, right-click) |
type | Type text into an input (with optional clear/submit) |
fill_form | Fill multiple form fields at once |
select_option | Select option from dropdown |
scroll | Scroll page or element into view |
hover | Hover over an element |
| Tool | Description |
|---|---|
screenshot | Take screenshot (viewport, full page, or element); save to file or return base64 |
get_content | Get page content (HTML or text) |
pdf | Generate PDF of the page; save to file or return base64 |
evaluate | Execute JavaScript and return result |
get_url | Get current page URL |