Firefox DevTools MCP vs Noncelogic MCP
A side-by-side look at the Firefox DevTools MCP and Noncelogic MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Firefox DevTools MCP for browser automation work as a local process; choose Noncelogic MCP for browser automation as a local process. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose Firefox DevTools MCP when
- You need dedicated capabilities in the Browser Automation domain.
- You prefer a local stdio subprocess transport.
- Its auth model fits you: No auth required.
- You want tools like
list_pages, new_page, navigate_page.
Choose Noncelogic MCP when
- You need dedicated capabilities in the Browser Automation domain.
- You prefer a local stdio subprocess transport.
- You have the keys it needs:
ROVE_API_KEY. - You want tools like
navigate, interact, extract_schema.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Browser Automation | Browser Automation |
| Quality signal | 72/100 · Great | 59/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | No auth required | Not declared |
| Pricing | Free | Not declared |
| Required env vars | None listed | ROVE_API_KEY |
| Verified owner | Community listing | Community listing |
| GitHub stars | 556 | 0 |
| Directory activity | 10 views 0 installs 0 upvotes | 3 views 0 installs 0 upvotes |
| Tools | 35 | 31 |
| Full listing | View Firefox DevTools MCP | View Noncelogic MCP |
Tools & capabilities
Firefox DevTools MCP tools 35
list_pagesList open tabs (index, title, URL). Selected tab is marked.new_pageOpen new tab at URL. Returns tab index.navigate_pageNavigate selected tab to URL.select_pageSelect active tab by index, URL, or title. Index takes precedence.close_pageClose tab by index.get_page_textGet the visible text of the page (document.body.innerText). Caps at maxLength (default 20000 chars); saveTo saves the full text to a file.take_snapshotCapture DOM snapshot with stable UIDs. A UID stays valid across snapshots until its element is removed or the page navigates. Output caps at maxLines (default 100); scope with selector or dump the full tree with saveTo.resolve_uid_to_selectorResolve UID to CSS selector. Fails if the element is gone.clear_snapshotClear snapshot UIDs. Usually not needed.click_by_uidClick element by UID. Set dblClick for double-click.hover_by_uidHover over element by UID.fill_by_uidFill text input/textarea by UID.- +23 more on the listing page
Noncelogic MCP tools 31
navigateNavigate to a URL in a hosted Chromium browser and return the page title and final URL after redirects. Creates a new browser session automatically if no session_id is provided. Use this as the first step in any browser automation workflow. Use stealth mode when visiting public websites that may block automated browsers. Use action_delay_ms to add human-like jitter between subsequent actions in the same session.interactPerform a click or fill action on a page element in an active browser session. Use "click" to click buttons, links, checkboxes, or any clickable element by CSS selector. Use "fill" to type text into input fields, textareas, or contenteditable elements — pass the target CSS selector and the text value in params. Requires an active session created by the navigate tool. Do not use this for navigation — use the navigate tool instead.extract_schemaExtract structured data from a web page according to a JSON schema. Navigates to the given URL, renders the page in a headless browser, and returns data matching your schema definition. Use this instead of navigate + get_a11y_tree when you need specific structured fields (e.g. product name, price, rating) rather than a full page snapshot. Each key in the schema should map to a CSS selector or description of the data to extract.screenshotCapture a PNG screenshot of a web page. Operates in two modes: (1) Pass a session_id to screenshot the current page in an active session — use this when you need to see the visual state after interactions. (2) Pass a url without session_id to take a one-shot screenshot without creating a persistent session — use this for quick visual checks. Returns a URL to the screenshot image. Prefer get_a11y_tree over screenshot when you need to read page content, as it uses 77% fewer tokens.get_a11y_treeGet a structured accessibility tree snapshot of the current page in an active browser session. Returns a hierarchical representation of all visible elements including their roles, names, values, and states — similar to what a screen reader sees. Use this as the primary way to read page content, as it uses 77% fewer tokens than a screenshot. Use this after navigate to understand page structure, find interactive elements by their accessible names, or verify that an action changed the page state. Requires a session created by navigate.close_sessionClose a browser session and release its server-side resources (browser context, memory, and any open pages). Call this when you are done with a browser session to free resources and avoid hitting session limits. If the closed session is the currently active session, the internal session reference is cleared — subsequent tool calls will need a new navigate to create a fresh session.clickClick an element on the page by CSS selector, accessible label or a11y tree ref. Use this to interact with buttons, links, checkboxes, and other clickable elements. In a supervised session, a click that opens a popup makes the popup the current page.fillType text into a form field. By default clears any existing value first, then types the new value.get_textExtract the text content of an element on the page. Useful for reading specific values like prices, headings, or status messages.scrollScroll the page in a given direction, or scroll a specific scrollable element. Useful for loading lazy content or reaching elements below the fold.evaluateExecute arbitrary JavaScript in the browser page context. Returns the result of the expression. Use for advanced DOM queries, custom extraction logic, or page manipulation.list_pagesList the pages open in this session's browser, with page ids, opener, URL, title and status, and which page is current. Popups the page opened appear here. Does not count as a fresh observation.- +19 more on the listing page
Ready-to-paste client configs
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
Firefox DevTools MCP
{
"mcpServers": {
"firefox-devtools-mcp": {
"command": "npx",
"args": [
"-y",
"@mozilla/firefox-devtools-mcp@latest"
]
}
}
}
Noncelogic MCP
{
"mcpServers": {
"mcp-313": {
"command": "npx",
"args": [
"-y",
"@roveapi/mcp"
],
"env": {
"ROVE_API_KEY": "YOUR_ROVE_API_KEY_HERE"
}
}
}
}
Frequently asked questions
Firefox DevTools MCP is categorized under Browser Automation and uses a local stdio subprocess. Noncelogic MCP belongs to Browser Automation and uses a local stdio subprocess. Pick Firefox DevTools MCP for browser automation work and Noncelogic MCP for browser automation.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.
Firefox DevTools MCP is listed as free. Auth: no auth required. Noncelogic MCP has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add firefox-devtools-mcp and mcp-313 as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, Firefox DevTools MCP has a quality signal of 72/100 (Great) with 10 views, 0 installs and 556 GitHub stars. Noncelogic MCP has 59/100 (Good) with 3 views, 0 installs and 0 GitHub stars.