chromiumfish_mcp
Enables MCP clients to control a ChromiumFish browser for web automation, including page management, navigation, interaction, and content extraction.
README
chromiumfish_mcp
chromiumfish_mcp is an independent Model Context Protocol (MCP) server for ChromiumFish. It lets Claude Code, Claude Desktop, Cursor, and other MCP clients drive a ChromiumFish browser through structured tools.
It uses the official ChromiumFish npm package and ships no Chromium source or binaries — on the first tool call that needs a page, the upstream SDK downloads and caches the matching browser build. See docs/USAGE.md for detailed tool usage.
Requirements
- Node.js 20 or later.
- An OS and architecture supported by ChromiumFish.
- Network access for the initial browser download. If no prebuilt asset matches your platform, build ChromiumFish locally and point to it with
--chrome-pathorCHROME_BIN.
Install
npm install --global github:LowOrbitLab/chromiumfish_mcp
chromiumfish_mcp --persona-seed alice
Or run without installing: npx --yes github:LowOrbitLab/chromiumfish_mcp --persona-seed alice.
Configure
Add the server to your MCP client config:
{
"mcpServers": {
"chromiumfish": {
"command": "chromiumfish_mcp",
"args": ["--persona-seed", "alice"]
}
}
}
To run from GitHub instead of a global install, set "command": "npx" and prepend "--yes", "github:LowOrbitLab/chromiumfish_mcp" to args. On Windows, use npx.cmd if your client cannot resolve npx.
Tools
| Tool | Purpose |
|---|---|
list_pages, open_page, select_page, close_page |
Manage pages by stable pageId |
navigate, navigate_back, navigate_forward, reload |
Navigate and use page history |
snapshot |
List visible interactive elements with e1/e2 references |
get_text, take_screenshot |
Retrieve page or frame content |
click, hover, type_text, select_option, set_checked, press_key, scroll, wait_for |
Interact with the page |
click_at |
Click absolute coordinates (for widgets snapshot cannot see) |
list_frames |
List frames/iframes with stable IDs |
find_challenge, solve_challenge |
Detect and clear interstitial / framed challenges |
evaluate |
Run arbitrary JavaScript — requires --allow-eval |
run_task |
Native ChromiumFish agent — requires --allow-native-agent |
Snapshot references, frame-aware interaction, waiting, and the cross-origin challenge workflow are covered in docs/USAGE.md.
Command-line options
--persona-seed VALUE Use a stable browser fingerprint persona
--chrome-path PATH Use a local ChromiumFish executable
--browser-version VERSION Select an upstream ChromiumFish build version
--headed Show the browser window
--window-size WIDTHxHEIGHT Set the browser window size
--timezone ZONE Use an IANA time zone or auto
--proxy URL Route browser traffic through a proxy
--allowed-host HOST Allow top-level navigation to a host and its subdomains; repeatable
--max-text-chars N Set the hard limit for text and snapshot output
--allow-eval Enable arbitrary JavaScript execution
--allow-native-agent Enable the native ChromiumFish browser agent
Proxy credentials can be embedded in the proxy URL, but are then exposed in the client config. Never commit config files containing proxy passwords, cookies, or API keys.
Security
- stdio only — do not expose the Chromium DevTools endpoint to the public internet.
evaluateand the native agent are disabled by default; enable them only in trusted environments.--allowed-host example.comrestricts top-level HTTP/HTTPS navigation (redirects, links, form posts, popups) to a host and its subdomains. Third-party subframes and page assets remain reachable — it is a navigation guard, not a network egress filter.- Clients can click and type with real side effects. Keep human confirmation for purchases, publishing, deletion, and permission changes.
- Each process runs an independent browser context; this is not a shared multi-tenant service.
Development
npm ci
npm test
node dist/index.js --help
The suite uses an in-memory MCP transport to verify tool discovery, dangerous-tool opt-in, and results. It does not download or launch a browser.
License
MIT. ChromiumFish code and trademarks belong to their respective contributors; see NOTICE for attribution. This is an independent wrapper, not an official ChromiumFish release.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.