About io.github.JayQuan-McCleary/zenlink-mcp
io.github.JayQuan-McCleary/zenlink-mcp is an MCP server in the Browser category: browser automation for MCP clients via Zen Browser or Firefox.
Install
uvx zenlink-mcppip install zenlink-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about io.github.JayQuan-McCleary/zenlink-mcp
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
ZenLink MCP
MCP server for browser automation via ZenLink — gives Claude Desktop and other MCP clients native browser control through Zen Browser (Firefox-based).
Installation
pip install zenlink-mcp
Requirements
- ZenLink browser extension installed in Zen Browser
- ZenLink bridge running (
python native/bridge.py)
Tools
| Tool | Description |
|---|---|
zen_status |
Check if ZenLink bridge and extension are connected |
zen_navigate |
Navigate to a URL |
zen_page_text |
Extract all readable text from the current page |
zen_page_info |
Get page URL, title, dimensions, scroll position |
zen_tabs |
List all open browser tabs |
zen_new_tab |
Open a new tab |
zen_close_tab |
Close a tab by ID |
zen_switch_tab |
Switch to a tab by ID |
zen_click |
Click an element by CSS selector or coordinates |
zen_type |
Type text into an input field |
zen_fill |
Set a form field value directly (faster than typing) |
zen_scroll |
Scroll the page |
zen_hover |
Hover over an element |
zen_find |
Find elements using natural language |
zen_js |
Execute JavaScript in the page context |
zen_highlight |
Highlight an element with a visual overlay |
zen_screenshot |
Capture a screenshot |
zen_dom |
Get the accessibility tree of interactive elements |
zen_forms |
Get all form fields with labels and values |
zen_wait_for_element |
Wait for a CSS selector to appear (replaces fixed sleep timers) |
zen_wp_html |
Extract HTML widget content from a WordPress Elementor page |
zen_batch |
Run multiple commands in a single request for speed |
zen_wait_for_element
Waits for a CSS selector to appear and become visible on the page. Returns immediately when found rather than sleeping a fixed duration — use this instead of sleep when waiting for dynamic/JS-rendered content.
{"action": "waitForElement", "selector": ".tracking-events", "timeout": 10000}
| Parameter | Type | Default | Description |
|---|---|---|---|
selector |
string | required | CSS selector to wait for |
timeout |
int | 10000 | Max wait time in milliseconds |
poll_interval |
int | 200 | How often to check in milliseconds |
Returns { ok: true, found: true, elapsed: 342, ref: "r12", tag: "div" } on success, or { ok: false, found: false, error: "Timed out after 10000ms" } on timeout.
zen_batch
Run multiple commands in one request. Supports all actions including waitForElement and sleep:
[
{"action": "navigate", "url": "https://example.com"},
{"action": "waitForElement", "selector": ".results", "timeout": 8000},
{"action": "pageText"}
]
Claude Desktop Setup
Add to your claude_desktop_config.json:
{
"mcpServers": {
"zenlink": {
"command": "zenlink-mcp"
}
}
}
Changelog
1.1.0
- Added
zen_wait_for_elementtool — polls DOM until selector appears instead of fixed sleep timers - Added
waitForElementas a batch action - Bridge: new
/api/wait-for-elementendpoint with auto-extended timeout - Content script bumped to v6
1.0.3
- Initial public release
Links
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.